diff --git a/src/js/service/service.js b/src/js/service/service.js index 7eb289d..f397f58 100644 --- a/src/js/service/service.js +++ b/src/js/service/service.js @@ -991,9 +991,15 @@ module.exports = class Service { try { response = this.computeAdminRequest(request); } catch(error) { - LOGGER.error("Erreur lors de l'exécution de la requête: " + error); + // C'est un cas particulier : on veut retrouver l'usage des controller d'APIs + // => comme c'est une requête, on fait du throw en cas d'erreur et c'est normal + // ce n'est pas une vraie erreur. Cependant, on veut renvoyer l'erreur au parent + // donc on copie le message + LOGGER.info("Erreur lors de l'exécution de la requête: " + error.message); error._uuid = request._uuid; - error._errorFlag = true + error._errorFlag = true; + error._message = error.message; + error._stack = error.stack; process.send(error); return false; } @@ -1005,7 +1011,9 @@ module.exports = class Service { // TODO : gestion plus fine du renvoi d'un message, il faudrait que l'administrateur vérifie l'état du canal LOGGER.error("Erreur lors de l'envoi de la réponse à la requête: " + error); error._uuid = request._uuid; - error._errorFlag = true + error._errorFlag = true; + error._message = error.message; + error._stack = error.stack; process.send(error); return false; } @@ -1134,15 +1142,15 @@ module.exports = class Service { // On doit utiliser les attributs avec _ car les méthodes ne sont pas disponible dans le cadre d'une communication IPC let projectionResponse = new ProjectionResponse(); - if ( !this._projectionManager.isProjectionLoaded(projectionRequest._projection)){ - throw errorManager.createError(`Can't find projection ${projectionRequest._projection}`, 404); - } - else{ + if (!this._projectionManager.isProjectionLoaded(projectionRequest._projection)) { + throw errorManager.createError(`Can't find projection ${projectionRequest._projection}`, 404); + } else { projectionResponse.id = projectionRequest._projection; } return projectionResponse; + } } diff --git a/src/js/service/serviceProcess.js b/src/js/service/serviceProcess.js index b0b8645..f513d0d 100644 --- a/src/js/service/serviceProcess.js +++ b/src/js/service/serviceProcess.js @@ -206,8 +206,8 @@ module.exports = class ServiceProcess extends ServiceAdministered { // On vérifie s'il s'agit d'une erreur if (response._errorFlag) { - // TODO : voir si on fait une fonction pour ajouter la récupération de la stack - throw errorManager.createError(response.error, response.status) + // TODO : voir ce qu'on fait de la stack dispo dans response._stack + throw errorManager.createError(response._message, response.status); } return response;