From ccfcb3de69728216e0b6f0577fe099dd10c63448 Mon Sep 17 00:00:00 2001 From: razzanYoni <13521087@mahasiswa.itb.ac.id> Date: Tue, 14 Nov 2023 10:15:01 +0700 Subject: [PATCH] feat : add auth validation --- src/services/auth-service.ts | 6 ++++++ src/validation/auth-validation.ts | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/validation/auth-validation.ts diff --git a/src/services/auth-service.ts b/src/services/auth-service.ts index 5b54ea3..09beb79 100644 --- a/src/services/auth-service.ts +++ b/src/services/auth-service.ts @@ -4,10 +4,14 @@ import prismaClient from "../cores/db"; import { ErrorType, StandardError } from "../errors/standard-error"; import { hashPassword, isPasswordValid } from "../utils/password"; import { generateAccessTokenAndFingerprint } from "../utils/token"; +import {validate} from "../validation/validation"; +import {loginSchema, signupSchema} from "../validation/auth-validation"; const signup = async ( data: Prisma.UserCreateInput, ): Promise<{ userId: number; username: string }> => { + validate(signupSchema, data); + // If username already exists throw error if ( (await prismaClient.user.findUnique({ @@ -39,6 +43,8 @@ const signup = async ( }; const login = async (data: { username: string; password: string }) => { + validate(loginSchema, data); + const user = await prismaClient.user.findUnique({ where: { username: data.username, diff --git a/src/validation/auth-validation.ts b/src/validation/auth-validation.ts new file mode 100644 index 0000000..4690055 --- /dev/null +++ b/src/validation/auth-validation.ts @@ -0,0 +1,16 @@ +import { z } from "zod"; + +const signupSchema = z.object({ + username: z.string().min(1).max(255), + password: z.string().min(1).max(255), +}); + +const loginSchema = z.object({ + username: z.string().min(1).max(255), + password: z.string().min(1).max(255), +}); + +export { + signupSchema, + loginSchema, +} \ No newline at end of file -- GitLab