6bc1568f586fc3ef2fbd5e3c95202db3eb9888f7
[motion2.git] / server / utils / client-side-logger.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x26b4=['statusCode','responseTime','name','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','format','remoteAddress','other','agent_name','test','url','fs-extra','lodash','express-winston','path','util','./loggers','fileLogger','./safe-template','safeTemplate','./mask-sensitive-data','maskSensitiveData','/var','log','xcally','join','then','catch','user','no-user','data','timestamp','api','auth','set','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','\x20body=%s','body','method','headers','x-forwarded-for','connection'];(function(_0x342700,_0x569f75){var _0x53406f=function(_0x3b3c32){while(--_0x3b3c32){_0x342700['push'](_0x342700['shift']());}};_0x53406f(++_0x569f75);}(_0x26b4,0x1be));var _0x426b=function(_0x82129b,_0x484ae9){_0x82129b=_0x82129b-0x0;var _0x2ae5dc=_0x26b4[_0x82129b];return _0x2ae5dc;};var fs=require(_0x426b('0x0'));var _=require(_0x426b('0x1'));var ewinston=require(_0x426b('0x2'));var path=require(_0x426b('0x3'));var util=require(_0x426b('0x4'));var fileLogger=require(_0x426b('0x5'))[_0x426b('0x6')];var safeTemplate=require(_0x426b('0x7'))[_0x426b('0x8')];var maskSensitiveData=require(_0x426b('0x9'))[_0x426b('0xa')];function ClientSideLogger(){function _0x1c9f45(_0x17d16f){var _0xd5dc20=path['join'](_0x426b('0xb'),_0x426b('0xc'),_0x426b('0xd'));var _0x56d6bc=path[_0x426b('0xe')]('client',_0x17d16f['role']+'-'+_0x17d16f['name']);return fs['ensureDir'](path['join'](_0xd5dc20,_0x56d6bc))[_0x426b('0xf')](function(){var _0x485f64=fileLogger('client',path[_0x426b('0xe')](_0xd5dc20,_0x56d6bc));return _0x485f64;})[_0x426b('0x10')](function(_0x12a5ba){throw _0x12a5ba;});}this[_0x426b('0xc')]=function(_0x82d1ee,_0xd98b7d,_0x5128cc,_0x4b22f7){return _0x1c9f45(_0x82d1ee[_0x426b('0x11')])[_0x426b('0xf')](function(_0x57f04f){var _0x536400=_0x57f04f[_0xd98b7d];return _0x536400;})['then'](function(_0x132a48){var _0x15da36=_0x82d1ee['user']?_0x82d1ee['user']['id']:_0x426b('0x12');var _0x2c184b=_0x4b22f7[_0x426b('0x13')];var _0x3a21c0=_0x4b22f7[_0x426b('0x14')];var _0x5952b6=new Date(Number(_0x3a21c0));return _0x132a48(_0x15da36,_0x5952b6,_0x5128cc,_0x2c184b);})[_0x426b('0x10')](function(_0x1d5f17){fileLogger('client')['error'](_0x1d5f17);});};}function setupLoggers(_0x87ee72){return new Promise(function(_0x4c5077){var _0x538368=new ClientSideLogger();var _0x204705=fileLogger(_0x426b('0x15'));var _0x4493e3=fileLogger(_0x426b('0x16'));_0x87ee72[_0x426b('0x17')](_0x426b('0x18'),_0x538368);_0x87ee72['use'](ewinston[_0x426b('0x19')]({'winstonInstance':_0x204705,'meta':![],'statusLevels':!![],'msg':function(_0x20381b,_0x31bfa5){var _0x4e557d=_0x426b('0x1a');if(!_[_0x426b('0x1b')](_0x20381b['body'])){_0x4e557d+=_0x426b('0x1c');var _0x51fa87=_0x20381b[_0x426b('0x1d')];maskSensitiveData(_0x51fa87);}return safeTemplate(util['format'](_0x4e557d,_0x20381b[_0x426b('0x1e')],_0x20381b[_0x426b('0x1f')][_0x426b('0x20')]?_0x20381b[_0x426b('0x1f')][_0x426b('0x20')]:_0x20381b[_0x426b('0x21')]['remoteAddress']||_0x20381b['ip'],_0x20381b['url'],_0x31bfa5[_0x426b('0x22')],_0x31bfa5[_0x426b('0x23')],_0x20381b[_0x426b('0x11')]?_0x20381b[_0x426b('0x11')]['id']:null,_0x20381b['user']?_0x20381b[_0x426b('0x11')][_0x426b('0x24')]:null,_0x20381b[_0x426b('0x11')]?_0x20381b[_0x426b('0x11')]['role']:null,_0x51fa87?util['inspect'](_0x51fa87,![],null):''));}}));_0x87ee72[_0x426b('0x25')](ewinston[_0x426b('0x19')]({'winstonInstance':_0x4493e3,'meta':![],'statusLevels':!![],'msg':function(_0xc34bda,_0x207b37){var _0x2e8562=_0x426b('0x26');if(_0xc34bda['body']&&_0xc34bda[_0x426b('0x1d')][_0x426b('0x27')]&&_0xc34bda[_0x426b('0x1d')][_0x426b('0x28')]){_0x2e8562=_0x426b('0x29');}return util[_0x426b('0x2a')](_0x2e8562,_0xc34bda['method'],_0xc34bda['headers'][_0x426b('0x20')]?_0xc34bda['headers'][_0x426b('0x20')]:_0xc34bda[_0x426b('0x21')][_0x426b('0x2b')]||_0xc34bda['ip'],_0xc34bda['url'],_0x207b37[_0x426b('0x22')],_0x207b37[_0x426b('0x23')],_0xc34bda[_0x426b('0x11')]?_0xc34bda[_0x426b('0x11')]['id']:null,_0xc34bda[_0x426b('0x11')]?_0xc34bda[_0x426b('0x11')][_0x426b('0x24')]:null,_0xc34bda[_0x426b('0x11')]?_0xc34bda[_0x426b('0x11')]['role']:null,_0xc34bda['body']&&_0xc34bda[_0x426b('0x1d')][_0x426b('0x27')]?_0xc34bda[_0x426b('0x1d')]['device']:_0x426b('0x2c'),_0xc34bda['body']&&_0xc34bda[_0x426b('0x1d')][_0x426b('0x28')]?_0xc34bda['body'][_0x426b('0x28')]:'',_0xc34bda['body']&&_0xc34bda[_0x426b('0x1d')][_0x426b('0x2d')]?_0xc34bda[_0x426b('0x1d')][_0x426b('0x2d')]:'');},'ignoreRoute':function(_0x5992fc){var _0x322689=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x322689[_0x426b('0x2e')](_0x5992fc[_0x426b('0x2f')]);}}));return _0x4c5077();});}exports['setupLoggers']=setupLoggers;