forked from Yara724/api
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import {
|
|
BadRequestException,
|
|
ForbiddenException,
|
|
UnauthorizedException,
|
|
} from "@nestjs/common";
|
|
|
|
export enum UserAuthErrorCode {
|
|
USER_NOT_FOUND = "USER_NOT_FOUND",
|
|
OTP_REQUIRED = "OTP_REQUIRED",
|
|
OTP_EXPIRED = "OTP_EXPIRED",
|
|
OTP_INVALID = "OTP_INVALID",
|
|
OTP_REQUEST_TOO_SOON = "OTP_REQUEST_TOO_SOON",
|
|
LINK_NOT_FOUND = "LINK_NOT_FOUND",
|
|
LINK_MOBILE_MISMATCH = "LINK_MOBILE_MISMATCH",
|
|
}
|
|
|
|
const messages: Record<UserAuthErrorCode, string> = {
|
|
[UserAuthErrorCode.USER_NOT_FOUND]: "کاربر یافت نشد",
|
|
[UserAuthErrorCode.OTP_REQUIRED]: "ابتدا درخواست کد یکبار مصرف دهید",
|
|
[UserAuthErrorCode.OTP_EXPIRED]: "کد یکبار مصرف منقضی شده است",
|
|
[UserAuthErrorCode.OTP_INVALID]: "کد یکبار مصرف نامعتبر است",
|
|
[UserAuthErrorCode.OTP_REQUEST_TOO_SOON]:
|
|
"لطفاً تا انقضای کد فعلی صبر کنید",
|
|
[UserAuthErrorCode.LINK_NOT_FOUND]: "لینک پیامکی یافت نشد",
|
|
[UserAuthErrorCode.LINK_MOBILE_MISMATCH]:
|
|
"این شماره موبایل مجاز به استفاده از این لینک نیست",
|
|
};
|
|
|
|
export function userAuthErrorBody(code: UserAuthErrorCode) {
|
|
return {
|
|
code,
|
|
message: messages[code],
|
|
};
|
|
}
|
|
|
|
export function throwUserAuthError(code: UserAuthErrorCode): never {
|
|
// if (code === UserAuthErrorCode.OTP_REQUEST_TOO_SOON) {
|
|
// throw new BadRequestException(userAuthErrorBody(code));
|
|
// }
|
|
|
|
if (code === UserAuthErrorCode.LINK_MOBILE_MISMATCH) {
|
|
throw new ForbiddenException(userAuthErrorBody(code));
|
|
}
|
|
|
|
throw new UnauthorizedException(userAuthErrorBody(code));
|
|
}
|