Merge branch 'features' into 'master'

Ajout des messages d'erreur pas défaut

See merge request color-recipes-explorer/frontend!18
This commit is contained in:
William Nolin 2021-04-17 23:54:25 +00:00
commit 5aff00a700
1 changed files with 16 additions and 16 deletions

View File

@ -7,22 +7,24 @@ import {AppState} from '../app-state'
})
export class ErrorService {
private static readonly UNKNOWN_ERROR_MESSAGE = 'Une erreur inconnue est survenue'
private defaultHandledErrorModels: ErrorHandler[] = [{
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 === 400,
consumer: error => console.error(error),
messageProducer: () => 'Certaines informations étaient invalides'
messageProducer: () => 'Les données envoyées n\'étaient pas valides'
}, {
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 +41,7 @@ export class ErrorService {
handleError(response: any) {
let matchingModels
if (this.isServerOfflineError(response)) {
if (isServerOfflineError(response)) {
this.appState.isServerOnline = false
return
}
@ -54,7 +56,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 +90,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 +116,6 @@ export class ErrorHandler {
}
}
const errorHandlers: ErrorHandler[] = []
function isServerOfflineError(response: any): boolean {
return response.status === 0 && response.statusText === 'Unknown Error'
}