UNPKG

@hellocoop/api

Version:

Client API for Hellō https://hello.dev

47 lines (46 loc) 1.95 kB
"use strict"; // 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;