abe204eac68c45176c97c812573b11c2b0ca65bf
[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 _0xd542=['format','method','headers','x-forwarded-for','connection','remoteAddress','url','statusCode','responseTime','inspect','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)','role','other','agent_name','test','fs-extra','express-winston','path','fileLogger','./safe-template','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','/var','xcally','client','name','ensureDir','catch','log','user','then','data','error','api','set','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s'];(function(_0x42175f,_0x4a5bfb){var _0x409c17=function(_0x133184){while(--_0x133184){_0x42175f['push'](_0x42175f['shift']());}};_0x409c17(++_0x4a5bfb);}(_0xd542,0x18b));var _0x2d54=function(_0x141408,_0xc0e883){_0x141408=_0x141408-0x0;var _0x35a485=_0xd542[_0x141408];return _0x35a485;};var fs=require(_0x2d54('0x0'));var _=require('lodash');var ewinston=require(_0x2d54('0x1'));var path=require(_0x2d54('0x2'));var util=require('util');var fileLogger=require('./loggers')[_0x2d54('0x3')];var safeTemplate=require(_0x2d54('0x4'))[_0x2d54('0x5')];var maskSensitiveData=require(_0x2d54('0x6'))[_0x2d54('0x7')];function ClientSideLogger(){function _0x5bc0d3(_0x1c0566){var _0x212704=path[_0x2d54('0x8')](_0x2d54('0x9'),'log',_0x2d54('0xa'));var _0x3fe28b=path[_0x2d54('0x8')](_0x2d54('0xb'),_0x1c0566['role']+'-'+_0x1c0566[_0x2d54('0xc')]);return fs[_0x2d54('0xd')](path[_0x2d54('0x8')](_0x212704,_0x3fe28b))['then'](function(){var _0x5cb446=fileLogger(_0x2d54('0xb'),path[_0x2d54('0x8')](_0x212704,_0x3fe28b));return _0x5cb446;})[_0x2d54('0xe')](function(_0x5a4e67){throw _0x5a4e67;});}this[_0x2d54('0xf')]=function(_0x4c3c54,_0x38a442,_0x502a82,_0x3cb8c3){return _0x5bc0d3(_0x4c3c54[_0x2d54('0x10')])['then'](function(_0x2c14f8){var _0x320b4f=_0x2c14f8[_0x38a442];return _0x320b4f;})[_0x2d54('0x11')](function(_0x491e64){var _0x361c81=_0x4c3c54[_0x2d54('0x10')]?_0x4c3c54['user']['id']:'no-user';var _0x5510f5=_0x3cb8c3[_0x2d54('0x12')];var _0x2eac4f=_0x3cb8c3['timestamp'];var _0x4f99b9=new Date(Number(_0x2eac4f));return _0x491e64(_0x361c81,_0x4f99b9,_0x502a82,_0x5510f5);})[_0x2d54('0xe')](function(_0x4b6d0e){fileLogger(_0x2d54('0xb'))[_0x2d54('0x13')](_0x4b6d0e);});};}function setupLoggers(_0x5f39e5){return new Promise(function(_0x227942){var _0x4b2975=new ClientSideLogger();var _0x6feab9=fileLogger(_0x2d54('0x14'));var _0xab3442=fileLogger('auth');_0x5f39e5[_0x2d54('0x15')](_0x2d54('0x16'),_0x4b2975);_0x5f39e5['use'](ewinston[_0x2d54('0x17')]({'winstonInstance':_0x6feab9,'meta':![],'statusLevels':!![],'msg':function(_0x17dd5c,_0x20161a){var _0x31bb05=_0x2d54('0x18');if(!_[_0x2d54('0x19')](_0x17dd5c[_0x2d54('0x1a')])){_0x31bb05+=_0x2d54('0x1b');var _0x5499a1=_0x17dd5c[_0x2d54('0x1a')];maskSensitiveData(_0x5499a1);}return safeTemplate(util[_0x2d54('0x1c')](_0x31bb05,_0x17dd5c[_0x2d54('0x1d')],_0x17dd5c[_0x2d54('0x1e')][_0x2d54('0x1f')]?_0x17dd5c[_0x2d54('0x1e')]['x-forwarded-for']:_0x17dd5c[_0x2d54('0x20')][_0x2d54('0x21')]||_0x17dd5c['ip'],_0x17dd5c[_0x2d54('0x22')],_0x20161a[_0x2d54('0x23')],_0x20161a[_0x2d54('0x24')],_0x17dd5c[_0x2d54('0x10')]?_0x17dd5c[_0x2d54('0x10')]['id']:null,_0x17dd5c[_0x2d54('0x10')]?_0x17dd5c['user'][_0x2d54('0xc')]:null,_0x17dd5c['user']?_0x17dd5c['user']['role']:null,_0x5499a1?util[_0x2d54('0x25')](_0x5499a1,![],null):''));}}));_0x5f39e5[_0x2d54('0x26')](ewinston[_0x2d54('0x17')]({'winstonInstance':_0xab3442,'meta':![],'statusLevels':!![],'msg':function(_0x156667,_0x3ae499){var _0x5c24cb=_0x2d54('0x27');if(_0x156667[_0x2d54('0x1a')]&&_0x156667['body'][_0x2d54('0x28')]&&_0x156667[_0x2d54('0x1a')][_0x2d54('0x29')]){_0x5c24cb=_0x2d54('0x2a');}return util[_0x2d54('0x1c')](_0x5c24cb,_0x156667[_0x2d54('0x1d')],_0x156667['headers'][_0x2d54('0x1f')]?_0x156667[_0x2d54('0x1e')]['x-forwarded-for']:_0x156667[_0x2d54('0x20')][_0x2d54('0x21')]||_0x156667['ip'],_0x156667['url'],_0x3ae499['statusCode'],_0x3ae499['responseTime'],_0x156667[_0x2d54('0x10')]?_0x156667['user']['id']:null,_0x156667[_0x2d54('0x10')]?_0x156667[_0x2d54('0x10')]['name']:null,_0x156667['user']?_0x156667['user'][_0x2d54('0x2b')]:null,_0x156667[_0x2d54('0x1a')]&&_0x156667[_0x2d54('0x1a')]['device']?_0x156667['body'][_0x2d54('0x28')]:_0x2d54('0x2c'),_0x156667[_0x2d54('0x1a')]&&_0x156667[_0x2d54('0x1a')]['agent_id']?_0x156667[_0x2d54('0x1a')][_0x2d54('0x29')]:'',_0x156667[_0x2d54('0x1a')]&&_0x156667[_0x2d54('0x1a')][_0x2d54('0x2d')]?_0x156667[_0x2d54('0x1a')][_0x2d54('0x2d')]:'');},'ignoreRoute':function(_0x2ee661){var _0x2dc23b=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x2dc23b[_0x2d54('0x2e')](_0x2ee661[_0x2d54('0x22')]);}}));return _0x227942();});}exports['setupLoggers']=setupLoggers;