UNPKG

@mvp-rockets/namma-generator

Version:

A generator to generate mvp-rockets projects

31 lines (25 loc) 1.24 kB
const Route = require('route'); const { respond, logInfo, composeResult, uuid, whenResult } = require('lib'); const db = require('db/repository'); const CreateInitiateAuth = require("resources/cognito/services/create-and-initiate-auth-service"); const InitiateAuth = require("resources/cognito/services/initiate-auth-service"); const CreateOrFindUserQuery = require('resources/users/queries/create-or-find-user-query'); async function post(req) { const { email } = req.body; logInfo('Request to login with cognito email otp api ', { email }); const result = await composeResult( async ([user, isNew]) => { if (isNew) { return CreateInitiateAuth.createInitiateAuth({ email }) } return InitiateAuth.initiateAuth({ email }) }, () => db.executeWithValue(new CreateOrFindUserQuery({ where: { email: email.toLowerCase() }, defaults: { id: uuid.v4(), email: email.toLowerCase() } })), )(); return respond(result, 'Successfully auth started logging in with email!', 'Failed to login with email!'); } Route.withOutSecurity().noAuth().post('/login-with-cognito-email-otp', post).bind(); module.exports.post = post;