Correction: les gestionnaires d'erreurs par défaut n'étaient pas définis

This commit is contained in:
FyloZ 2021-04-17 17:37:01 -04:00
parent 04a8ba9246
commit 6b06c9ec13
1 changed files with 14 additions and 17 deletions

View File

@ -7,22 +7,21 @@ import {AppState} from '../app-state'
})
export class ErrorService {
private static readonly UNKNOWN_ERROR_MESSAGE = 'Une erreur inconnue est survenue'
private defaultHandledErrorModels: ErrorHandler[] = [{
filter: error => error.status === 400,
consumer: error => console.error(error),
messageProducer: () => 'Certaines informations étaient invalides'
private static readonly DEFAULT_ERROR_HANDLERS: ErrorHandler[] = [{
filter: error => error.type.startsWith('notfound'),
messageProducer: () => 'Une ressource demandée n\'a pas été trouvée'
}, {
filter: error => error.type.startsWith('exists'),
messageProducer: () => 'Un conflit avec une autre ressource s\'est produit'
}, {
filter: error => error.type.startsWith('cannotdelete'),
messageProducer: () => 'Une ressource n\'a pas pu être supprimée'
}, {
filter: error => error.status === 401,
messageProducer: () => 'Vous devez être connecté pour effectuer cette action'
}, {
filter: error => error.status === 403,
messageProducer: () => 'Vous n\'avez pas la permission d\'effectuer cette action'
}, {
filter: error => error.status === 404,
messageProducer: () => 'La resource demandée n\'a pas été trouvée'
}, {
filter: error => error.status === 409,
messageProducer: () => 'Un conflit avec une autre resource s\'est produit'
}, {
filter: error => error.status === 500,
messageProducer: () => ErrorService.UNKNOWN_ERROR_MESSAGE
@ -39,7 +38,7 @@ export class ErrorService {
handleError(response: any) {
let matchingModels
if (this.isServerOfflineError(response)) {
if (isServerOfflineError(response)) {
this.appState.isServerOnline = false
return
}
@ -54,7 +53,7 @@ export class ErrorService {
}
if (!matchingModels || matchingModels.length == 0) { // If none are found, search in defaults handlers
matchingModels = errorHandlers.filter(m => m.filter(error))
matchingModels = ErrorService.DEFAULT_ERROR_HANDLERS.filter(m => m.filter(error))
}
if (!matchingModels || matchingModels.length == 0) { // If still none are found, handle as an unknown error
@ -88,10 +87,6 @@ export class ErrorService {
set activeErrorHandler(handler: ErrorHandlerComponent) {
this.activeHandler = handler
}
private isServerOfflineError(response: any): boolean {
return response.status === 0 && response.statusText === 'Unknown Error'
}
}
/**
@ -118,4 +113,6 @@ export class ErrorHandler {
}
}
const errorHandlers: ErrorHandler[] = []
function isServerOfflineError(response: any): boolean {
return response.status === 0 && response.statusText === 'Unknown Error'
}