@hellocoop/helper-server
Version:
Hellō helper functions for server
44 lines (43 loc) • 1.6 kB
JavaScript
;
// creates an invite request URL for Hellō
Object.defineProperty(exports, "__esModule", { value: true });
exports.createInviteRequest = createInviteRequest;
const definitions_1 = require("@hellocoop/definitions");
function createInviteRequest(config) {
if (!config.inviter) {
throw new Error('inviter is required in the invite request.');
}
if (!config.client_id) {
throw new Error('client_id is required in the invite request.');
}
if (!config.initiate_login_uri) {
throw new Error('initiate_login_uri is required in the invite request.');
}
if (!config.return_uri) {
throw new Error('return_uri is required in the invite request.');
}
const url = new URL('/invite', config.wallet || definitions_1.PRODUCTION_WALLET);
url.searchParams.set('inviter', config.inviter);
url.searchParams.set('client_id', config.client_id);
url.searchParams.set('initiate_login_uri', config.initiate_login_uri);
url.searchParams.set('return_uri', config.return_uri);
if (config.app_name) {
url.searchParams.set('app_name', config.app_name);
}
if (config.prompt) {
url.searchParams.set('prompt', config.prompt);
}
if (config.role) {
url.searchParams.set('role', config.role);
}
if (config.tenant) {
url.searchParams.set('tenant', config.tenant);
}
if (config.state) {
url.searchParams.set('state', config.state);
}
if (config.events_uri) {
url.searchParams.set('events_uri', config.events_uri);
}
return { url: url.href };
}