diff --git a/src/helpers/error/handler/index.ts b/src/helpers/error/handler/index.ts index e6872b7..16cccbb 100644 --- a/src/helpers/error/handler/index.ts +++ b/src/helpers/error/handler/index.ts @@ -38,7 +38,7 @@ export const mainErrorHandler = (set: any, error: unknown) => { } if (error instanceof Prisma.PrismaClientInitializationError) { - return returnErrorResponse(set, 500, "Database initialization failed"); + return returnErrorResponse(set, 503, `Can't reach database server.`, error); } if (error instanceof Prisma.PrismaClientValidationError) { diff --git a/src/helpers/error/instances/forwarder.ts b/src/helpers/error/instances/forwarder.ts index 6fd301b..f3d511f 100644 --- a/src/helpers/error/instances/forwarder.ts +++ b/src/helpers/error/instances/forwarder.ts @@ -1,3 +1,4 @@ +import { Prisma } from "@prisma/client"; import { AppError } from "./app"; export function ErrorForwarder( @@ -5,7 +6,14 @@ export function ErrorForwarder( statusCode: number = 500, message: string = "Unexpected error" ): never { - if (cause instanceof AppError) { + if ( + cause instanceof AppError || + cause instanceof Prisma.PrismaClientKnownRequestError || + cause instanceof Prisma.PrismaClientUnknownRequestError || + cause instanceof Prisma.PrismaClientRustPanicError || + cause instanceof Prisma.PrismaClientInitializationError || + cause instanceof Prisma.PrismaClientValidationError + ) { throw cause; } diff --git a/src/modules/auth/controller/loginWithPassword.controller.ts b/src/modules/auth/controller/loginWithPassword.controller.ts index a4a0eba..b2b7509 100644 --- a/src/modules/auth/controller/loginWithPassword.controller.ts +++ b/src/modules/auth/controller/loginWithPassword.controller.ts @@ -27,7 +27,7 @@ export const loginWithPassword = async ( const jwtToken = await loginWithPasswordService(ctx.body, userHeaderInfo); // Set the authentication cookie with the JWT token - const cookie = setCookie(ctx.set, COOKIE_KEYS.AUTH, jwtToken); + setCookie(ctx.set, COOKIE_KEYS.AUTH, jwtToken); return returnWriteResponse( ctx.set, 200, diff --git a/src/modules/user/repositories/findUserByEmailOrUsername.repository.ts b/src/modules/user/repositories/findUserByEmailOrUsername.repository.ts index b894ce0..d9d8129 100644 --- a/src/modules/user/repositories/findUserByEmailOrUsername.repository.ts +++ b/src/modules/user/repositories/findUserByEmailOrUsername.repository.ts @@ -34,6 +34,6 @@ export const findUserByEmailOrUsernameRepo = async (identifier: string) => { if (!userData) return false; return userData; } catch (error) { - throw new AppError(500, "Database error", error); + throw error; } }; diff --git a/src/modules/userSession/repositories/insertUserSessionToDB.repository.ts b/src/modules/userSession/repositories/insertUserSessionToDB.repository.ts index ec6f783..acd659d 100644 --- a/src/modules/userSession/repositories/insertUserSessionToDB.repository.ts +++ b/src/modules/userSession/repositories/insertUserSessionToDB.repository.ts @@ -1,11 +1,12 @@ import { Prisma } from "@prisma/client"; import { userSessionModel } from "../userSession.model"; +import { AppError } from "../../../helpers/error/instances/app"; export const createUserSessionRepo = async ( data: Prisma.UserSessionUncheckedCreateInput ) => { try { - const newUserRole = await userSessionModel.create({ + const newUserSession = await userSessionModel.create({ data: data, include: { user: { @@ -24,7 +25,7 @@ export const createUserSessionRepo = async ( updatedAt: true, }, }); - return newUserRole; + return newUserSession; } catch (error) { throw error; } diff --git a/src/modules/userSession/services/createUserSession.service.ts b/src/modules/userSession/services/createUserSession.service.ts index 45e9530..754981b 100644 --- a/src/modules/userSession/services/createUserSession.service.ts +++ b/src/modules/userSession/services/createUserSession.service.ts @@ -1,6 +1,7 @@ import { createUserSessionServiceParams } from "../userSession.types"; import { createUserSessionRepo } from "../repositories/insertUserSessionToDB.repository"; import { storeUserSessionToCacheRepo } from "../repositories/storeUserSessionToCache.repository"; +import { ErrorForwarder } from "../../../helpers/error/instances/forwarder"; export const createUserSessionService = async ( data: createUserSessionServiceParams @@ -21,6 +22,6 @@ export const createUserSessionService = async ( return newUserSession; } catch (error) { - throw error; + ErrorForwarder(error); } };