You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
921 B

import { ApiException } from '../types/exceptions'
/**
* Classe générique qui sert à créer des erreurs HTTP (ici 400 et 404)
*
* On précise que notre classe doit correspondre à l'interface `ApiException`
*
* Les mots clés `readonly` servent de raccourci pour `this.propriété = valeur`,
* ils nous empêchent également de mofifier ces valeurs par la suite.
*
* Ici `this.error = error` et `this.status = status`
*/
class Exception implements ApiException {
constructor(readonly error: any, readonly status: number) {}
}
/**
* Création d'une 404
*/
export module Exceptions {
export class NotFoundException extends Exception {
constructor(error: any) {
super(error, 404)
}
}
/**
* Création d'une 400
*/
export class BadRequestException extends Exception {
constructor(error: any) {
super(error, 400)
}
}
}