UNPKG

@youngshand/payload-auth-plugin

Version:

A temporary fork for testing of Authentication plugin for Payload CMS, use @payload-auth-plugin

87 lines (75 loc) 2 kB
import { ErrorKind } from "../../types.js" const statusByKind = { [ErrorKind.NotFound]: 404, [ErrorKind.BadRequest]: 400, [ErrorKind.InternalServer]: 500, [ErrorKind.NotAuthenticated]: 401, [ErrorKind.NotAuthorized]: 403, [ErrorKind.Conflict]: 409, } export class AuthAPIError extends Response { constructor(message: string, kind: ErrorKind) { super( JSON.stringify({ message, kind, data: null, isSuccess: false, isError: true, }), { status: statusByKind[kind], }, ) } } export class MissingEmailAPIError extends AuthAPIError { constructor() { super("Missing email. Email is required", ErrorKind.BadRequest) } } export class UserNotFoundAPIError extends AuthAPIError { constructor() { super("User not found", ErrorKind.NotFound) } } export class EmailNotFoundAPIError extends AuthAPIError { constructor() { super("Now user found with this email", ErrorKind.BadRequest) } } export class PasskeyVerificationAPIError extends AuthAPIError { constructor() { super("Passkey verification failed", ErrorKind.BadRequest) } } export class InvalidAPIRequest extends AuthAPIError { constructor() { super("Invalid API request", ErrorKind.BadRequest) } } export class UnauthorizedAPIRequest extends AuthAPIError { constructor() { super("Unauthorized access", ErrorKind.NotAuthorized) } } export class AuthenticationFailed extends AuthAPIError { constructor() { super("Authentication Failed", ErrorKind.NotAuthenticated) } } export class InvalidCredentials extends AuthAPIError { constructor() { super("Invalid Credentials", ErrorKind.BadRequest) } } export class InvalidRequestBodyError extends AuthAPIError { constructor() { super("Wrong request body. Missing parameters", ErrorKind.BadRequest) } } export class EmailAlreadyExistError extends AuthAPIError { constructor() { super("Email is already taken", ErrorKind.Conflict) } }