UNPKG

@openinc/parse-server-opendash

Version:
51 lines (50 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.init = init; const __1 = require(".."); const transformLogin_1 = require("../helper/transformLogin"); const openinc_auth_common_1 = require("./openinc-auth.common"); async function init(name) { Parse.Cloud.define(name, async function (request) { const email = (0, transformLogin_1.transformLogin)(request.params.email); const urlTemplate = request.params.url; const user = await new Parse.Query(Parse.User) .equalTo("email", email) .first({ useMasterKey: true, }); if (!user) { throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, "User not found."); } const sessionToken = await (0, openinc_auth_common_1.createSessionToken)(user, request.installationId, { action: "login", provider: "openinc-auth-login-passwordless", }); const url = urlTemplate.replace("{{token}}", sessionToken); console.log(url); await (0, __1.sendTemplateEmail)({ template: "openinc-auth-login-passwordless", subject: "Passwordless Login", to: email, fallback: url, data: { link: url, }, }); return { success: true, }; }, { requireUser: false, fields: { url: { required: true, type: String, }, email: { required: true, type: String, }, }, }); }