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 user is nonexistant or refreshtoken is invalid. */ export class UserNonexistantOrRefreshtokenInvalidError extends UnauthorizedError { @IsString() name = "UserNonexistantOrRefreshtokenInvalidError" @IsString() message = "user is nonexistant or refreshtoken is invalid" } /** * 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 throw 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 throw 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 throw when no user could be found mating the provided credential. */ export class UserNotFoundError extends NotFoundError { @IsString() name = "UserNotFoundError" @IsString() message = "no user could be found for provided credential" } /** * Error to throw when no jwt token was provided (but one had to be). */ export class JwtNotProvidedError extends NotAcceptableError { @IsString() name = "JwtNotProvidedError" @IsString() message = "no jwt token was provided" } /** * Error to throw when user was not found or refresh token count was invalid. */ export class UserNotFoundOrRefreshTokenCountInvalidError extends NotAcceptableError { @IsString() name = "UserNotFoundOrRefreshTokenCountInvalidError" @IsString() message = "user was not found or refresh token count was invalid" } /** * Error to throw when refresh token count was invalid */ export class RefreshTokenCountInvalidError extends NotAcceptableError { @IsString() name = "RefreshTokenCountInvalidError" @IsString() message = "refresh token count was invalid" }