a7cacf79254165666df717a624e5272206cf4a31
[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 _0xd679=['isEmpty','body','method','x-forwarded-for','headers','connection','remoteAddress','url','statusCode','responseTime','name','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','format','other','agent_id','agent_name','test','setupLoggers','fs-extra','lodash','express-winston','path','util','./loggers','fileLogger','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','/var','xcally','client','role','ensureDir','then','catch','log','user','no-user','data','timestamp','error','api','set','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s'];(function(_0x4af982,_0x57a0c7){var _0x3b649e=function(_0x4e240b){while(--_0x4e240b){_0x4af982['push'](_0x4af982['shift']());}};_0x3b649e(++_0x57a0c7);}(_0xd679,0x173));var _0x9d67=function(_0x390a13,_0x20ed2b){_0x390a13=_0x390a13-0x0;var _0x3b174e=_0xd679[_0x390a13];return _0x3b174e;};var fs=require(_0x9d67('0x0'));var _=require(_0x9d67('0x1'));var ewinston=require(_0x9d67('0x2'));var path=require(_0x9d67('0x3'));var util=require(_0x9d67('0x4'));var fileLogger=require(_0x9d67('0x5'))[_0x9d67('0x6')];var safeTemplate=require('./safe-template')[_0x9d67('0x7')];var maskSensitiveData=require(_0x9d67('0x8'))[_0x9d67('0x9')];function ClientSideLogger(){function _0x435bca(_0x1bd9b9){var _0x2d94d5=path[_0x9d67('0xa')](_0x9d67('0xb'),'log',_0x9d67('0xc'));var _0xee9a0b=path[_0x9d67('0xa')](_0x9d67('0xd'),_0x1bd9b9[_0x9d67('0xe')]+'-'+_0x1bd9b9['name']);return fs[_0x9d67('0xf')](path[_0x9d67('0xa')](_0x2d94d5,_0xee9a0b))[_0x9d67('0x10')](function(){var _0x5ece3a=fileLogger(_0x9d67('0xd'),path[_0x9d67('0xa')](_0x2d94d5,_0xee9a0b));return _0x5ece3a;})[_0x9d67('0x11')](function(_0x15f4ed){throw _0x15f4ed;});}this[_0x9d67('0x12')]=function(_0x4ccdc2,_0x52999d,_0xb5843f,_0x53154f){return _0x435bca(_0x4ccdc2[_0x9d67('0x13')])[_0x9d67('0x10')](function(_0x57763d){var _0x3f731d=_0x57763d[_0x52999d];return _0x3f731d;})[_0x9d67('0x10')](function(_0x2f6709){var _0x5df36c=_0x4ccdc2['user']?_0x4ccdc2[_0x9d67('0x13')]['id']:_0x9d67('0x14');var _0x3c2f32=_0x53154f[_0x9d67('0x15')];var _0x1d6179=_0x53154f[_0x9d67('0x16')];var _0x136290=new Date(Number(_0x1d6179));return _0x2f6709(_0x5df36c,_0x136290,_0xb5843f,_0x3c2f32);})[_0x9d67('0x11')](function(_0x5b2037){fileLogger(_0x9d67('0xd'))[_0x9d67('0x17')](_0x5b2037);});};}function setupLoggers(_0x397652){return new Promise(function(_0xcb0e0b){var _0xa0d5ff=new ClientSideLogger();var _0x539cdb=fileLogger(_0x9d67('0x18'));var _0xd85bb6=fileLogger('auth');_0x397652[_0x9d67('0x19')](_0x9d67('0x1a'),_0xa0d5ff);_0x397652['use'](ewinston[_0x9d67('0x1b')]({'winstonInstance':_0x539cdb,'meta':![],'statusLevels':!![],'msg':function(_0x54bfad,_0x546dc5){var _0x3db24a=_0x9d67('0x1c');if(!_[_0x9d67('0x1d')](_0x54bfad['body'])){_0x3db24a+='\x20body=%s';var _0x5ed31a=_0x54bfad[_0x9d67('0x1e')];maskSensitiveData(_0x5ed31a);}return safeTemplate(util['format'](_0x3db24a,_0x54bfad[_0x9d67('0x1f')],_0x54bfad['headers'][_0x9d67('0x20')]?_0x54bfad[_0x9d67('0x21')]['x-forwarded-for']:_0x54bfad[_0x9d67('0x22')][_0x9d67('0x23')]||_0x54bfad['ip'],_0x54bfad[_0x9d67('0x24')],_0x546dc5[_0x9d67('0x25')],_0x546dc5[_0x9d67('0x26')],_0x54bfad[_0x9d67('0x13')]?_0x54bfad['user']['id']:null,_0x54bfad[_0x9d67('0x13')]?_0x54bfad[_0x9d67('0x13')][_0x9d67('0x27')]:null,_0x54bfad[_0x9d67('0x13')]?_0x54bfad[_0x9d67('0x13')][_0x9d67('0xe')]:null,_0x5ed31a?util[_0x9d67('0x28')](_0x5ed31a,![],null):''));}}));_0x397652[_0x9d67('0x29')](ewinston[_0x9d67('0x1b')]({'winstonInstance':_0xd85bb6,'meta':![],'statusLevels':!![],'msg':function(_0x48bc04,_0x2429c8){var _0x5398e1=_0x9d67('0x2a');if(_0x48bc04[_0x9d67('0x1e')]&&_0x48bc04[_0x9d67('0x1e')][_0x9d67('0x2b')]&&_0x48bc04['body']['agent_id']){_0x5398e1='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x9d67('0x2c')](_0x5398e1,_0x48bc04[_0x9d67('0x1f')],_0x48bc04['headers']['x-forwarded-for']?_0x48bc04['headers'][_0x9d67('0x20')]:_0x48bc04[_0x9d67('0x22')][_0x9d67('0x23')]||_0x48bc04['ip'],_0x48bc04[_0x9d67('0x24')],_0x2429c8[_0x9d67('0x25')],_0x2429c8[_0x9d67('0x26')],_0x48bc04[_0x9d67('0x13')]?_0x48bc04[_0x9d67('0x13')]['id']:null,_0x48bc04['user']?_0x48bc04[_0x9d67('0x13')][_0x9d67('0x27')]:null,_0x48bc04[_0x9d67('0x13')]?_0x48bc04[_0x9d67('0x13')][_0x9d67('0xe')]:null,_0x48bc04['body']&&_0x48bc04[_0x9d67('0x1e')]['device']?_0x48bc04[_0x9d67('0x1e')]['device']:_0x9d67('0x2d'),_0x48bc04['body']&&_0x48bc04[_0x9d67('0x1e')][_0x9d67('0x2e')]?_0x48bc04[_0x9d67('0x1e')]['agent_id']:'',_0x48bc04[_0x9d67('0x1e')]&&_0x48bc04['body'][_0x9d67('0x2f')]?_0x48bc04['body']['agent_name']:'');},'ignoreRoute':function(_0x1e5b01){var _0x4fccca=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x4fccca[_0x9d67('0x30')](_0x1e5b01[_0x9d67('0x24')]);}}));return _0xcb0e0b();});}exports[_0x9d67('0x31')]=setupLoggers;