52968e8d91e2e27e93e3d1ebcc69bfb23145469c
[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 _0xf69e=['log','client','name','ensureDir','then','catch','user','no-user','data','timestamp','api','auth','set','client-side-logger','logger','body','\x20body=%s','format','method','headers','x-forwarded-for','connection','remoteAddress','url','statusCode','responseTime','role','inspect','use','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)','agent_name','setupLoggers','fs-extra','lodash','express-winston','path','util','./loggers','fileLogger','./safe-template','maskSensitiveData','join','/var'];(function(_0x210b70,_0x1c67ef){var _0x11f396=function(_0x4b7fe1){while(--_0x4b7fe1){_0x210b70['push'](_0x210b70['shift']());}};_0x11f396(++_0x1c67ef);}(_0xf69e,0x15d));var _0xef69=function(_0xf5957d,_0x4fded8){_0xf5957d=_0xf5957d-0x0;var _0x13a1ae=_0xf69e[_0xf5957d];return _0x13a1ae;};var fs=require(_0xef69('0x0'));var _=require(_0xef69('0x1'));var ewinston=require(_0xef69('0x2'));var path=require(_0xef69('0x3'));var util=require(_0xef69('0x4'));var fileLogger=require(_0xef69('0x5'))[_0xef69('0x6')];var safeTemplate=require(_0xef69('0x7'))['safeTemplate'];var maskSensitiveData=require('./mask-sensitive-data')[_0xef69('0x8')];function ClientSideLogger(){function _0x55e4b3(_0xb3ad6e){var _0x537673=path[_0xef69('0x9')](_0xef69('0xa'),_0xef69('0xb'),'xcally');var _0x1d4af1=path['join'](_0xef69('0xc'),_0xb3ad6e['role']+'-'+_0xb3ad6e[_0xef69('0xd')]);return fs[_0xef69('0xe')](path[_0xef69('0x9')](_0x537673,_0x1d4af1))[_0xef69('0xf')](function(){var _0x5a99b0=fileLogger(_0xef69('0xc'),path[_0xef69('0x9')](_0x537673,_0x1d4af1));return _0x5a99b0;})[_0xef69('0x10')](function(_0x4fd319){throw _0x4fd319;});}this[_0xef69('0xb')]=function(_0x177e69,_0x145d2a,_0x3b7c08,_0x1d3fe9){return _0x55e4b3(_0x177e69[_0xef69('0x11')])[_0xef69('0xf')](function(_0x1286d3){var _0x55cf27=_0x1286d3[_0x145d2a];return _0x55cf27;})['then'](function(_0x53ac1f){var _0x4b0dcd=_0x177e69[_0xef69('0x11')]?_0x177e69[_0xef69('0x11')]['id']:_0xef69('0x12');var _0x5d827b=_0x1d3fe9[_0xef69('0x13')];var _0x379deb=_0x1d3fe9[_0xef69('0x14')];var _0x61c916=new Date(Number(_0x379deb));return _0x53ac1f(_0x4b0dcd,_0x61c916,_0x3b7c08,_0x5d827b);})[_0xef69('0x10')](function(_0x5aaaa9){fileLogger('client')['error'](_0x5aaaa9);});};}function setupLoggers(_0x4581ed){return new Promise(function(_0x65b80e){var _0x552330=new ClientSideLogger();var _0x50373e=fileLogger(_0xef69('0x15'));var _0x39f99e=fileLogger(_0xef69('0x16'));_0x4581ed[_0xef69('0x17')](_0xef69('0x18'),_0x552330);_0x4581ed['use'](ewinston[_0xef69('0x19')]({'winstonInstance':_0x50373e,'meta':![],'statusLevels':!![],'msg':function(_0x97efe2,_0x45eea8){var _0x1907a1='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_['isEmpty'](_0x97efe2[_0xef69('0x1a')])){_0x1907a1+=_0xef69('0x1b');var _0xf30741=_0x97efe2['body'];maskSensitiveData(_0xf30741);}return safeTemplate(util[_0xef69('0x1c')](_0x1907a1,_0x97efe2[_0xef69('0x1d')],_0x97efe2[_0xef69('0x1e')][_0xef69('0x1f')]?_0x97efe2[_0xef69('0x1e')]['x-forwarded-for']:_0x97efe2[_0xef69('0x20')][_0xef69('0x21')]||_0x97efe2['ip'],_0x97efe2[_0xef69('0x22')],_0x45eea8[_0xef69('0x23')],_0x45eea8[_0xef69('0x24')],_0x97efe2['user']?_0x97efe2[_0xef69('0x11')]['id']:null,_0x97efe2[_0xef69('0x11')]?_0x97efe2['user']['name']:null,_0x97efe2[_0xef69('0x11')]?_0x97efe2[_0xef69('0x11')][_0xef69('0x25')]:null,_0xf30741?util[_0xef69('0x26')](_0xf30741,![],null):''));}}));_0x4581ed[_0xef69('0x27')](ewinston[_0xef69('0x19')]({'winstonInstance':_0x39f99e,'meta':![],'statusLevels':!![],'msg':function(_0x1c06ea,_0x589eb8){var _0x2a5bc8='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x1c06ea[_0xef69('0x1a')]&&_0x1c06ea['body'][_0xef69('0x28')]&&_0x1c06ea[_0xef69('0x1a')][_0xef69('0x29')]){_0x2a5bc8=_0xef69('0x2a');}return util[_0xef69('0x1c')](_0x2a5bc8,_0x1c06ea[_0xef69('0x1d')],_0x1c06ea['headers'][_0xef69('0x1f')]?_0x1c06ea[_0xef69('0x1e')][_0xef69('0x1f')]:_0x1c06ea[_0xef69('0x20')]['remoteAddress']||_0x1c06ea['ip'],_0x1c06ea['url'],_0x589eb8[_0xef69('0x23')],_0x589eb8[_0xef69('0x24')],_0x1c06ea[_0xef69('0x11')]?_0x1c06ea[_0xef69('0x11')]['id']:null,_0x1c06ea[_0xef69('0x11')]?_0x1c06ea['user'][_0xef69('0xd')]:null,_0x1c06ea['user']?_0x1c06ea[_0xef69('0x11')]['role']:null,_0x1c06ea[_0xef69('0x1a')]&&_0x1c06ea[_0xef69('0x1a')][_0xef69('0x28')]?_0x1c06ea['body'][_0xef69('0x28')]:'other',_0x1c06ea['body']&&_0x1c06ea[_0xef69('0x1a')]['agent_id']?_0x1c06ea[_0xef69('0x1a')]['agent_id']:'',_0x1c06ea[_0xef69('0x1a')]&&_0x1c06ea[_0xef69('0x1a')][_0xef69('0x2b')]?_0x1c06ea[_0xef69('0x1a')][_0xef69('0x2b')]:'');},'ignoreRoute':function(_0x140134){var _0x319216=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x319216['test'](_0x140134[_0xef69('0x22')]);}}));return _0x65b80e();});}exports[_0xef69('0x2c')]=setupLoggers;