@hellocoop/api
Version:
Client API for Hellō https://hello.dev
47 lines (46 loc) • 1.95 kB
JavaScript
// start an invite flow at /invite
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const auth_1 = require("../lib/auth");
const helper_server_1 = require("@hellocoop/helper-server");
const config_1 = __importDefault(require("../lib/config"));
// var callCount = 0 // DEBUG
const handleInvite = async (req, res) => {
const { target_uri, app_name, prompt, role, tenant, state, redirect_uri } = req.query;
const auth = await (0, auth_1.getAuthfromCookies)(req, res);
if (!auth.isLoggedIn)
return res.status(401).send('Not logged in');
if (!auth.sub)
return res.status(401).send('Missing sub in auth');
if (!auth.email)
return res.status(401).send('Missing email in auth');
if (!auth.name)
return res.status(401).send('Missing name in auth');
if (!app_name)
return res.status(400).send('Missing app_name');
const redirectURI = config_1.default.redirectURI || redirect_uri;
if (!redirectURI) {
console.log('Hellō: Discovering API RedirectURI route ...');
return res.send((0, helper_server_1.redirectURIBounce)());
}
const parsedRedirectURI = new URL(redirectURI);
const defaultTargetURI = parsedRedirectURI.origin + '/';
const defaultPrompt = `${auth.name} has invited you to join ${app_name}`;
const request = {
app_name: app_name,
prompt: prompt || defaultPrompt,
role: role,
tenant: tenant,
state: state,
inviter: auth.sub,
client_id: config_1.default.clientId,
initiate_login_uri: redirectURI,
return_uri: target_uri || defaultTargetURI,
};
const url = `${config_1.default.helloWallet}/invite?${new URLSearchParams(request)}`;
res.redirect(url);
};
exports.default = handleInvite;
;