import { IsString } from 'class-validator'; import { ForbiddenError, NotAcceptableError, NotFoundError, UnauthorizedError } from 'routing-controllers'; /** * Error to throw when a jwt is expired */ export class ExpiredJWTError extends UnauthorizedError { @IsString() name = "ExpiredJWTError" @IsString() message = "your provided jwt is expired" } /** * Error to throw when a jwt could not be parsed */ export class IllegalJWTError extends UnauthorizedError { @IsString() name = "IllegalJWTError" @IsString() message = "your provided jwt could not be parsed" } /** * Error to throw when provided credentials are invalid */ export class InvalidCredentialsError extends UnauthorizedError { @IsString() name = "InvalidCredentialsError" @IsString() message = "your provided credentials are invalid" } /** * Error to throw when a jwt does not have permission for this route/ action */ export class NoPermissionError extends ForbiddenError { @IsString() name = "NoPermissionError" @IsString() message = "your provided jwt does not have permission for this route/ action" } /** * Error to thow when no username and no email is set */ export class UsernameOrEmailNeededError extends NotAcceptableError { @IsString() name = "UsernameOrEmailNeededError" @IsString() message = "Auth needs to have email or username set! \n You provided neither." } /** * Error to thow when no password is provided */ export class PasswordNeededError extends NotAcceptableError { @IsString() name = "PasswordNeededError" @IsString() message = "no password is provided - you need to provide it" } /** * Error to thow when no user could be found for provided credential */ export class UserNotFoundError extends NotFoundError { @IsString() name = "UserNotFoundError" @IsString() message = "no user could be found for provided credential" }