UNPKG

fauth-template

Version:
39 lines (30 loc) 1.05 kB
import User from "@/models/user.model"; import { createSession } from "@/session/session"; import { IFormData } from "@/types/mongodb"; import { Request, Response } from "express"; import { generateFromEmail } from "unique-username-generator"; export async function oauthController(req: Request, res: Response) { const { email } = req.body as IFormData; const checkUserExists = await User.findOne({ email }); if (checkUserExists) { const payload = { username: checkUserExists.username, id: checkUserExists.id, }; await createSession({ res, payload }); res.status(200).json({ success: true, message: "user signed-in" }); return; } const username = generateFromEmail(email, 5); const newUser = new User({ email, username, }); const payload = { username, id: newUser.id, }; await Promise.all([newUser.save(), createSession({ res, payload })]); res.status(201).json({ success: true, message: "User created successfully" }); return }