From d05e03fe6fbde3f845a373b863aa0d193276d1c9 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Wed, 15 Nov 2023 14:37:07 +0700 Subject: [PATCH] refactor: validate before register --- src/handler/user/user.service.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/handler/user/user.service.ts b/src/handler/user/user.service.ts index d76009c..76edeb4 100644 --- a/src/handler/user/user.service.ts +++ b/src/handler/user/user.service.ts @@ -4,6 +4,7 @@ import {db} from "../../utils/db.server" type queryResult = User | null; export async function checkUsername(username : string) { + // TODO : SQL is using case insensitive comparison const result : queryResult = await db.user.findFirst({ where: { username : username @@ -25,6 +26,19 @@ export async function checkEmail(email : string) { export async function register(user : User) { let responseString = ""; + const usernameAvailable = await checkUsername(user.username); + const emailAvailable = await checkEmail(user.email); + + if(usernameAvailable === "exist") { + responseString = "username already exist"; + }else if(emailAvailable === "exist") { + responseString = "email already exist"; + } + + if(responseString !== "") { + return responseString; + } + try { const result : User = await db.user.create({ data : { @@ -36,15 +50,7 @@ export async function register(user : User) { }) responseString = "success"; }catch (err) { - const usernameAvailable = await checkUsername(user.username); - const emailAvailable = await checkEmail(user.email); - if(usernameAvailable === "exist") { - responseString = "username already exist"; - }else if(emailAvailable === "exist") { - responseString = "email already exist"; - }else { - responseString = "failed"; - } + responseString = "failed"; } return responseString; } -- GitLab