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
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)
|
|
}
|
|
}
|
|
}
|