e1eb7c969eb24662e10f2e12aae8e7a786481cca
[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 _0x55a9=['remoteAddress','url','statusCode','responseTime','inspect','device','other','agent_id','agent_name','test','setupLoggers','fs-extra','lodash','path','util','fileLogger','./safe-template','./mask-sensitive-data','join','/var','xcally','client','role','name','ensureDir','then','catch','log','user','no-user','data','timestamp','error','set','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','body','format','method','headers','x-forwarded-for','connection'];(function(_0x5dc470,_0x5aa4b1){var _0x388032=function(_0xa47c76){while(--_0xa47c76){_0x5dc470['push'](_0x5dc470['shift']());}};_0x388032(++_0x5aa4b1);}(_0x55a9,0x1e4));var _0x955a=function(_0x5c629d,_0x140017){_0x5c629d=_0x5c629d-0x0;var _0x456e37=_0x55a9[_0x5c629d];return _0x456e37;};var fs=require(_0x955a('0x0'));var _=require(_0x955a('0x1'));var ewinston=require('express-winston');var path=require(_0x955a('0x2'));var util=require(_0x955a('0x3'));var fileLogger=require('./loggers')[_0x955a('0x4')];var safeTemplate=require(_0x955a('0x5'))['safeTemplate'];var maskSensitiveData=require(_0x955a('0x6'))['maskSensitiveData'];function ClientSideLogger(){function _0x24c4c5(_0x153697){var _0x488131=path[_0x955a('0x7')](_0x955a('0x8'),'log',_0x955a('0x9'));var _0x4d6fed=path[_0x955a('0x7')](_0x955a('0xa'),_0x153697[_0x955a('0xb')]+'-'+_0x153697[_0x955a('0xc')]);return fs[_0x955a('0xd')](path['join'](_0x488131,_0x4d6fed))[_0x955a('0xe')](function(){var _0x58adf1=fileLogger(_0x955a('0xa'),path['join'](_0x488131,_0x4d6fed));return _0x58adf1;})[_0x955a('0xf')](function(_0x5e50e5){throw _0x5e50e5;});}this[_0x955a('0x10')]=function(_0x32f58d,_0xd40dd4,_0x134024,_0x1ada00){return _0x24c4c5(_0x32f58d[_0x955a('0x11')])['then'](function(_0x492c8e){var _0x217899=_0x492c8e[_0xd40dd4];return _0x217899;})[_0x955a('0xe')](function(_0x30ba67){var _0x8be18e=_0x32f58d['user']?_0x32f58d[_0x955a('0x11')]['id']:_0x955a('0x12');var _0xf5a376=_0x1ada00[_0x955a('0x13')];var _0x27f153=_0x1ada00[_0x955a('0x14')];var _0x5801bd=new Date(Number(_0x27f153));return _0x30ba67(_0x8be18e,_0x5801bd,_0x134024,_0xf5a376);})[_0x955a('0xf')](function(_0x58f871){fileLogger(_0x955a('0xa'))[_0x955a('0x15')](_0x58f871);});};}function setupLoggers(_0x2563c){return new Promise(function(_0x3568f7){var _0x4d7b2d=new ClientSideLogger();var _0x200f8f=fileLogger('api');var _0x35ef46=fileLogger('auth');_0x2563c[_0x955a('0x16')](_0x955a('0x17'),_0x4d7b2d);_0x2563c['use'](ewinston[_0x955a('0x18')]({'winstonInstance':_0x200f8f,'meta':![],'statusLevels':!![],'msg':function(_0x34e79b,_0x2fac7b){var _0xd8abc1=_0x955a('0x19');if(!_['isEmpty'](_0x34e79b[_0x955a('0x1a')])){_0xd8abc1+='\x20body=%s';var _0x4c592d=_0x34e79b[_0x955a('0x1a')];maskSensitiveData(_0x4c592d);}return safeTemplate(util[_0x955a('0x1b')](_0xd8abc1,_0x34e79b[_0x955a('0x1c')],_0x34e79b['headers']['x-forwarded-for']?_0x34e79b[_0x955a('0x1d')][_0x955a('0x1e')]:_0x34e79b[_0x955a('0x1f')][_0x955a('0x20')]||_0x34e79b['ip'],_0x34e79b[_0x955a('0x21')],_0x2fac7b[_0x955a('0x22')],_0x2fac7b[_0x955a('0x23')],_0x34e79b[_0x955a('0x11')]?_0x34e79b['user']['id']:null,_0x34e79b[_0x955a('0x11')]?_0x34e79b[_0x955a('0x11')][_0x955a('0xc')]:null,_0x34e79b[_0x955a('0x11')]?_0x34e79b[_0x955a('0x11')][_0x955a('0xb')]:null,_0x4c592d?util[_0x955a('0x24')](_0x4c592d,![],null):''));}}));_0x2563c['use'](ewinston['logger']({'winstonInstance':_0x35ef46,'meta':![],'statusLevels':!![],'msg':function(_0x373774,_0x599da8){var _0x201d28='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x373774[_0x955a('0x1a')]&&_0x373774[_0x955a('0x1a')][_0x955a('0x25')]&&_0x373774[_0x955a('0x1a')]['agent_id']){_0x201d28='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x955a('0x1b')](_0x201d28,_0x373774[_0x955a('0x1c')],_0x373774[_0x955a('0x1d')][_0x955a('0x1e')]?_0x373774['headers']['x-forwarded-for']:_0x373774[_0x955a('0x1f')][_0x955a('0x20')]||_0x373774['ip'],_0x373774[_0x955a('0x21')],_0x599da8[_0x955a('0x22')],_0x599da8['responseTime'],_0x373774['user']?_0x373774[_0x955a('0x11')]['id']:null,_0x373774[_0x955a('0x11')]?_0x373774[_0x955a('0x11')][_0x955a('0xc')]:null,_0x373774[_0x955a('0x11')]?_0x373774[_0x955a('0x11')][_0x955a('0xb')]:null,_0x373774[_0x955a('0x1a')]&&_0x373774[_0x955a('0x1a')][_0x955a('0x25')]?_0x373774[_0x955a('0x1a')][_0x955a('0x25')]:_0x955a('0x26'),_0x373774[_0x955a('0x1a')]&&_0x373774[_0x955a('0x1a')][_0x955a('0x27')]?_0x373774['body']['agent_id']:'',_0x373774[_0x955a('0x1a')]&&_0x373774['body'][_0x955a('0x28')]?_0x373774[_0x955a('0x1a')]['agent_name']:'');},'ignoreRoute':function(_0x480c09){var _0x15fd15=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x15fd15[_0x955a('0x29')](_0x480c09[_0x955a('0x21')]);}}));return _0x3568f7();});}exports[_0x955a('0x2a')]=setupLoggers;