1 | 'use strict';
|
2 |
|
3 | const extensionParser = require('mio-extensions');
|
4 | const i18n = require('mio-i18n')({path: 'i18n', defaultLocale: 'en'});
|
5 |
|
6 |
|
7 | function error(req, res, err){
|
8 | var errorCode = 406;
|
9 | const genericMessage = i18n.get('errors.generic.message');
|
10 | const genericHint = i18n.get('errors.generic.hint');
|
11 | var errorMessage;
|
12 |
|
13 | if(err){
|
14 | if(typeof err == 'number'){
|
15 | errorCode = parseInt(err);
|
16 | }else if(err.code){
|
17 | errorCode = err.code;
|
18 | }
|
19 |
|
20 | if(typeof err == 'string'){
|
21 | errorMessage = err;
|
22 | if(err.toLowerCase() == 'not found' || err.toLowerCase() == 'not found!'){
|
23 | errorCode = 404;
|
24 | }
|
25 | }else if (err.message){
|
26 | errorMessage = err.message;
|
27 | if(errorMessage.split(' ')[0]=='E11000'){
|
28 | errorMessage = 'Already Exist!';
|
29 | }
|
30 | }else{
|
31 | errorMessage = i18n.get('errors.'+errorCode+'.message', genericMessage);
|
32 | }
|
33 |
|
34 | }
|
35 |
|
36 | const errorHint = i18n.get('errors.'+errorCode+'.hint', genericHint);
|
37 | const ps = i18n.get('messages.nothingHere', 'Actually, there is nothing to see here...');
|
38 | const error = i18n.get('errors.error', 'Error');
|
39 |
|
40 | extensionParser.render(req, res, {
|
41 | status: errorCode,
|
42 | template: 'views/error.vash',
|
43 | data: {
|
44 | code: errorCode,
|
45 | message: errorMessage,
|
46 | hint: errorHint,
|
47 | ps: ps,
|
48 | error: error
|
49 | }
|
50 | });
|
51 | }
|
52 |
|
53 |
|
54 | module.exports = {
|
55 | error: error
|
56 | };
|