fix: add prisma to forwarder error instance
This commit is contained in:
@ -38,7 +38,7 @@ export const mainErrorHandler = (set: any, error: unknown) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (error instanceof Prisma.PrismaClientInitializationError) {
|
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) {
|
if (error instanceof Prisma.PrismaClientValidationError) {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { Prisma } from "@prisma/client";
|
||||||
import { AppError } from "./app";
|
import { AppError } from "./app";
|
||||||
|
|
||||||
export function ErrorForwarder(
|
export function ErrorForwarder(
|
||||||
@ -5,7 +6,14 @@ export function ErrorForwarder(
|
|||||||
statusCode: number = 500,
|
statusCode: number = 500,
|
||||||
message: string = "Unexpected error"
|
message: string = "Unexpected error"
|
||||||
): never {
|
): 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;
|
throw cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ export const loginWithPassword = async (
|
|||||||
const jwtToken = await loginWithPasswordService(ctx.body, userHeaderInfo);
|
const jwtToken = await loginWithPasswordService(ctx.body, userHeaderInfo);
|
||||||
|
|
||||||
// Set the authentication cookie with the JWT token
|
// 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(
|
return returnWriteResponse(
|
||||||
ctx.set,
|
ctx.set,
|
||||||
200,
|
200,
|
||||||
|
|||||||
@ -34,6 +34,6 @@ export const findUserByEmailOrUsernameRepo = async (identifier: string) => {
|
|||||||
if (!userData) return false;
|
if (!userData) return false;
|
||||||
return userData;
|
return userData;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new AppError(500, "Database error", error);
|
throw error;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
import { Prisma } from "@prisma/client";
|
import { Prisma } from "@prisma/client";
|
||||||
import { userSessionModel } from "../userSession.model";
|
import { userSessionModel } from "../userSession.model";
|
||||||
|
import { AppError } from "../../../helpers/error/instances/app";
|
||||||
|
|
||||||
export const createUserSessionRepo = async (
|
export const createUserSessionRepo = async (
|
||||||
data: Prisma.UserSessionUncheckedCreateInput
|
data: Prisma.UserSessionUncheckedCreateInput
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
const newUserRole = await userSessionModel.create({
|
const newUserSession = await userSessionModel.create({
|
||||||
data: data,
|
data: data,
|
||||||
include: {
|
include: {
|
||||||
user: {
|
user: {
|
||||||
@ -24,7 +25,7 @@ export const createUserSessionRepo = async (
|
|||||||
updatedAt: true,
|
updatedAt: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
return newUserRole;
|
return newUserSession;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { createUserSessionServiceParams } from "../userSession.types";
|
import { createUserSessionServiceParams } from "../userSession.types";
|
||||||
import { createUserSessionRepo } from "../repositories/insertUserSessionToDB.repository";
|
import { createUserSessionRepo } from "../repositories/insertUserSessionToDB.repository";
|
||||||
import { storeUserSessionToCacheRepo } from "../repositories/storeUserSessionToCache.repository";
|
import { storeUserSessionToCacheRepo } from "../repositories/storeUserSessionToCache.repository";
|
||||||
|
import { ErrorForwarder } from "../../../helpers/error/instances/forwarder";
|
||||||
|
|
||||||
export const createUserSessionService = async (
|
export const createUserSessionService = async (
|
||||||
data: createUserSessionServiceParams
|
data: createUserSessionServiceParams
|
||||||
@ -21,6 +22,6 @@ export const createUserSessionService = async (
|
|||||||
|
|
||||||
return newUserSession;
|
return newUserSession;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
ErrorForwarder(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user