add error helper class
This commit is contained in:
13
src/helpers/error/handler/index.ts
Normal file
13
src/helpers/error/handler/index.ts
Normal file
@ -0,0 +1,13 @@
|
||||
export class AppError extends Error {
|
||||
public readonly statusCode: number;
|
||||
public readonly details?: any;
|
||||
|
||||
constructor(statusCode = 400, message: string, details?: any) {
|
||||
super(message);
|
||||
this.name = "AppError";
|
||||
this.statusCode = statusCode;
|
||||
this.details = details;
|
||||
|
||||
Object.setPrototypeOf(this, AppError.prototype);
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,7 @@ import { loginWithPasswordService } from "../services/loginWithPassword.service"
|
||||
import { loginWithPasswordSchema } from "../auth.schema";
|
||||
import { returnErrorResponse } from "../../../helpers/callback/httpResponse";
|
||||
import { LoginWithPasswordRequest } from "../auth.types";
|
||||
import { AppError } from "../../../helpers/error/handler";
|
||||
|
||||
export const loginWithPassword = async (
|
||||
ctx: Context & { body: LoginWithPasswordRequest }
|
||||
@ -15,6 +16,13 @@ export const loginWithPassword = async (
|
||||
const result = await loginWithPasswordService(ctx.body);
|
||||
return result;
|
||||
} catch (error) {
|
||||
return error;
|
||||
if (error instanceof AppError) {
|
||||
return returnErrorResponse(
|
||||
ctx.set,
|
||||
error.statusCode,
|
||||
error.message,
|
||||
error.details
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { AppError } from "../../../helpers/error/handler";
|
||||
import { userModel } from "../user.model";
|
||||
|
||||
export const findUserByEmailOrUsernameRepo = async (identifier: string) => {
|
||||
@ -29,7 +30,6 @@ export const findUserByEmailOrUsernameRepo = async (identifier: string) => {
|
||||
},
|
||||
}));
|
||||
|
||||
if (!userData) throw "User not found";
|
||||
|
||||
if (!userData) throw new AppError(404, "User not exist");
|
||||
return userData;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user