#6613 - Translations should be in back #1908

Merged
jsegarra merged 4 commits from 6613_translations_in_back into dev 2024-01-19 12:31:31 +00:00
4 changed files with 14 additions and 6 deletions

View File

@ -1,10 +1,11 @@
const SalixError = require('../../util/salixError');
const UserError = require('../../util/user-error'); const UserError = require('../../util/user-error');
const logToConsole = require('strong-error-handler/lib/logger'); const logToConsole = require('strong-error-handler/lib/logger');
module.exports = function() { module.exports = function() {
return function(err, req, res, next) { return function(err, req, res, next) {
// Thrown user errors // Thrown user errors
if (err instanceof UserError) { if (err instanceof SalixError) {
err.message = req.__(err.message, ...err.translateArgs); err.message = req.__(err.message, ...err.translateArgs);
return next(err); return next(err);
} }
@ -13,7 +14,7 @@ module.exports = function() {
if (err.statusCode == 422) { if (err.statusCode == 422) {
try { try {
let code; let code;
let messages = err.details.messages; let {messages} = err.details;
for (code in messages) break; for (code in messages) break;
err.message = req.__(messages[code][0]); err.message = req.__(messages[code][0]);
return next(err); return next(err);

View File

@ -1,7 +1,8 @@
module.exports = class ForbiddenError extends Error { const SalixError = require('./salixError');
module.exports = class ForbiddenError extends SalixError {
constructor(message, code, ...translateArgs) { constructor(message, code, ...translateArgs) {
super(message); super(message);
this.name = 'ForbiddenError'; this.name = ForbiddenError.name;
this.statusCode = 403; this.statusCode = 403;
this.code = code; this.code = code;
this.translateArgs = translateArgs; this.translateArgs = translateArgs;

View File

@ -0,0 +1,5 @@
module.exports = class SalixError extends Error {
constructor(message) {
super(message);
}
};

View File

@ -4,10 +4,11 @@
* the final user, so they cannot contain sensitive data and must * the final user, so they cannot contain sensitive data and must
* be understandable by people who do not have a technical profile. * be understandable by people who do not have a technical profile.
*/ */
module.exports = class UserError extends Error { const SalixError = require('./salixError');
module.exports = class UserError extends SalixError {
constructor(message, code, ...translateArgs) { constructor(message, code, ...translateArgs) {
super(message); super(message);
this.name = 'UserError'; this.name = UserError.name;
this.statusCode = 400; this.statusCode = 400;
this.code = code; this.code = code;
this.translateArgs = translateArgs; this.translateArgs = translateArgs;