UNPKG

oralify-backend

Version:
40 lines (33 loc) 1.27 kB
import { Request, Response } from "express"; import { supabase } from "../supabase"; const generateUniqueIdentifier = async (fullName: string, speciality: string) => { let userName let num = 1; const nameLowerCase = fullName.toLowerCase() const words = nameLowerCase.split(" "); const name = words[0]; const initialLastName = words[1] ? words[1].charAt(0).toUpperCase() : ''; const baseUserName = speciality ? `${name}${initialLastName}${speciality}`: `${name}${initialLastName}`; userName = baseUserName while (true) { const { data } = await supabase .from('users') .select('username') .eq('username', userName); if (!data || data.length === 0) { return userName; } userName = `${baseUserName}${num}`; num++; } }; export const getUsername = async (req: Request, res: Response): Promise<void> => { try { const { fullName, speciality } = req.body; if (!fullName){ res.status(404).send('Fullname required'); return } const uniqueIdentifier = await generateUniqueIdentifier(fullName, speciality); res.status(200).json( uniqueIdentifier ); } catch (err) { res.status(500).json({ err }); } }