3810baaf6707e3a305859c147d01a8c40e831878
[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 _0xc511=['then','no-user','data','error','auth','set','client-side-logger','use','logger','body','format','headers','x-forwarded-for','remoteAddress','url','statusCode','responseTime','role','inspect','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','agent_name','setupLoggers','fs-extra','lodash','express-winston','path','./loggers','fileLogger','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','log','xcally','client','name','ensureDir','catch','user'];(function(_0x334da1,_0x1bb9f3){var _0x4b5cca=function(_0x37309d){while(--_0x37309d){_0x334da1['push'](_0x334da1['shift']());}};_0x4b5cca(++_0x1bb9f3);}(_0xc511,0x10e));var _0x1c51=function(_0x1f5a63,_0x511504){_0x1f5a63=_0x1f5a63-0x0;var _0x30bb7a=_0xc511[_0x1f5a63];return _0x30bb7a;};var fs=require(_0x1c51('0x0'));var _=require(_0x1c51('0x1'));var ewinston=require(_0x1c51('0x2'));var path=require(_0x1c51('0x3'));var util=require('util');var fileLogger=require(_0x1c51('0x4'))[_0x1c51('0x5')];var safeTemplate=require('./safe-template')[_0x1c51('0x6')];var maskSensitiveData=require(_0x1c51('0x7'))[_0x1c51('0x8')];function ClientSideLogger(){function _0x1ee7c8(_0x542819){var _0x3180f3=path[_0x1c51('0x9')]('/var',_0x1c51('0xa'),_0x1c51('0xb'));var _0x26186e=path[_0x1c51('0x9')](_0x1c51('0xc'),_0x542819['role']+'-'+_0x542819[_0x1c51('0xd')]);return fs[_0x1c51('0xe')](path[_0x1c51('0x9')](_0x3180f3,_0x26186e))['then'](function(){var _0x3aba16=fileLogger(_0x1c51('0xc'),path[_0x1c51('0x9')](_0x3180f3,_0x26186e));return _0x3aba16;})[_0x1c51('0xf')](function(_0x886ec6){throw _0x886ec6;});}this[_0x1c51('0xa')]=function(_0x56099c,_0x282b95,_0xc27420,_0xd02905){return _0x1ee7c8(_0x56099c[_0x1c51('0x10')])[_0x1c51('0x11')](function(_0x1e4ca8){var _0x26eb68=_0x1e4ca8[_0x282b95];return _0x26eb68;})['then'](function(_0xd43f68){var _0x1466b8=_0x56099c['user']?_0x56099c['user']['id']:_0x1c51('0x12');var _0x4c1d00=_0xd02905[_0x1c51('0x13')];var _0x3563a4=_0xd02905['timestamp'];var _0x55e977=new Date(Number(_0x3563a4));return _0xd43f68(_0x1466b8,_0x55e977,_0xc27420,_0x4c1d00);})['catch'](function(_0x50eab3){fileLogger('client')[_0x1c51('0x14')](_0x50eab3);});};}function setupLoggers(_0x110a5d){return new Promise(function(_0x41d8a4){var _0x357385=new ClientSideLogger();var _0xeef32a=fileLogger('api');var _0x20e71d=fileLogger(_0x1c51('0x15'));_0x110a5d[_0x1c51('0x16')](_0x1c51('0x17'),_0x357385);_0x110a5d[_0x1c51('0x18')](ewinston[_0x1c51('0x19')]({'winstonInstance':_0xeef32a,'meta':![],'statusLevels':!![],'msg':function(_0x4d4317,_0x420d98){var _0xa60ae0='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_['isEmpty'](_0x4d4317[_0x1c51('0x1a')])){_0xa60ae0+='\x20body=%s';var _0x18477a=_0x4d4317[_0x1c51('0x1a')];maskSensitiveData(_0x18477a);}return safeTemplate(util[_0x1c51('0x1b')](_0xa60ae0,_0x4d4317['method'],_0x4d4317[_0x1c51('0x1c')][_0x1c51('0x1d')]?_0x4d4317[_0x1c51('0x1c')]['x-forwarded-for']:_0x4d4317['connection'][_0x1c51('0x1e')]||_0x4d4317['ip'],_0x4d4317[_0x1c51('0x1f')],_0x420d98[_0x1c51('0x20')],_0x420d98[_0x1c51('0x21')],_0x4d4317[_0x1c51('0x10')]?_0x4d4317[_0x1c51('0x10')]['id']:null,_0x4d4317['user']?_0x4d4317['user'][_0x1c51('0xd')]:null,_0x4d4317['user']?_0x4d4317[_0x1c51('0x10')][_0x1c51('0x22')]:null,_0x18477a?util[_0x1c51('0x23')](_0x18477a,![],null):''));}}));_0x110a5d['use'](ewinston[_0x1c51('0x19')]({'winstonInstance':_0x20e71d,'meta':![],'statusLevels':!![],'msg':function(_0x483ec8,_0x4eb1b2){var _0x36b46b=_0x1c51('0x24');if(_0x483ec8[_0x1c51('0x1a')]&&_0x483ec8[_0x1c51('0x1a')][_0x1c51('0x25')]&&_0x483ec8['body'][_0x1c51('0x26')]){_0x36b46b='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x1c51('0x1b')](_0x36b46b,_0x483ec8['method'],_0x483ec8[_0x1c51('0x1c')][_0x1c51('0x1d')]?_0x483ec8[_0x1c51('0x1c')][_0x1c51('0x1d')]:_0x483ec8['connection'][_0x1c51('0x1e')]||_0x483ec8['ip'],_0x483ec8[_0x1c51('0x1f')],_0x4eb1b2['statusCode'],_0x4eb1b2[_0x1c51('0x21')],_0x483ec8['user']?_0x483ec8[_0x1c51('0x10')]['id']:null,_0x483ec8[_0x1c51('0x10')]?_0x483ec8[_0x1c51('0x10')][_0x1c51('0xd')]:null,_0x483ec8[_0x1c51('0x10')]?_0x483ec8[_0x1c51('0x10')][_0x1c51('0x22')]:null,_0x483ec8[_0x1c51('0x1a')]&&_0x483ec8[_0x1c51('0x1a')]['device']?_0x483ec8[_0x1c51('0x1a')]['device']:'other',_0x483ec8[_0x1c51('0x1a')]&&_0x483ec8[_0x1c51('0x1a')][_0x1c51('0x26')]?_0x483ec8[_0x1c51('0x1a')]['agent_id']:'',_0x483ec8[_0x1c51('0x1a')]&&_0x483ec8[_0x1c51('0x1a')]['agent_name']?_0x483ec8[_0x1c51('0x1a')][_0x1c51('0x27')]:'');},'ignoreRoute':function(_0x5b5521){var _0x45a648=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x45a648['test'](_0x5b5521['url']);}}));return _0x41d8a4();});}exports[_0x1c51('0x28')]=setupLoggers;