@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
text/typescript
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)
}
}