Built motion from commit 10af8726.|2.6.34
[motion2.git] / server / services / routing / server / applications / strategy / util.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 _0x47d6=['InteractionId','agents','WaitingInteractions','saveWaitingNotification','message','removeWaitingNotification','writeLog','lodash','util','../utils','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','split','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','user:%s','notification:%s','remove','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','online','OFFLINE','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','checkWaitingNotifications','interaction','some','QueuesWaitingInteractions','channel'];(function(_0x3c7169,_0x5174bd){var _0x1e7e62=function(_0x562d1b){while(--_0x562d1b){_0x3c7169['push'](_0x3c7169['shift']());}};_0x1e7e62(++_0x5174bd);}(_0x47d6,0x13f));var _0x647d=function(_0xd4e23b,_0x5dd4a5){_0xd4e23b=_0xd4e23b-0x0;var _0x56dcd1=_0x47d6[_0xd4e23b];return _0x56dcd1;};'use strict';var _=require(_0x647d('0x0'));var util=require(_0x647d('0x1'));var utils=require(_0x647d('0x2'));var Redis=require(_0x647d('0x3'));var config=require(_0x647d('0x4'));var logger=require(_0x647d('0x5'))(_0x647d('0x6'));config[_0x647d('0x7')]=_[_0x647d('0x8')](config[_0x647d('0x7')],{'host':_0x647d('0x9'),'port':0x18eb});var io=require(_0x647d('0xa'))(new Redis(config[_0x647d('0x7')]));function sendNotification(_0x8ffe2b,_0x1db1db,_0x1c6a88,_0x4baa1e,_0x119c54,_0x348540){var _0x317585=_0x348540||{};var _0x3060a3=_0x1c6a88[_0x647d('0xb')]('.');var _0x28bd9b={'uniqueid':_0x1db1db,'channel':_0x3060a3[0x0],'id':_0x3060a3[0x1],'title':_0x3060a3[0x0]+_0x647d('0xc'),'interactionId':_0x3060a3[0x2],'queue':_0x119c54?_0x119c54[_0x647d('0xd')]:null,'sound':_0x317585[_0x647d('0xe')][_0x647d('0xf')],'shake':_0x317585[_0x647d('0xe')][_0x647d('0x10')]};try{if(!_0x317585['body']){_0x317585['body']={};}if(_0x119c54){_0x317585[_0x647d('0x11')][_0x647d('0x12')]=_0x119c54;}else if(_0x317585[_0x647d('0x11')][_0x647d('0x12')]){delete _0x317585[_0x647d('0x11')][_0x647d('0x12')];}_0x28bd9b[_0x647d('0x13')]=utils[_0x647d('0x14')](_0x317585['account'][_0x647d('0x15')],_0x317585);}catch(_0x1e34f8){_0x28bd9b['msg']=_0x647d('0x16');logger[_0x647d('0x17')](util[_0x647d('0x18')]('[%s][QUEUE]\x20%s',_0x1db1db,_0x1e34f8['message']));}io['to'](util[_0x647d('0x18')](_0x647d('0x19'),_0x4baa1e[_0x647d('0xd')]))['emit'](util[_0x647d('0x18')](_0x647d('0x1a'),_0x8ffe2b?'save':_0x647d('0x1b')),_0x28bd9b);}function writeLog(_0x14e1d1,_0x1a1bd0,_0x53000c){return logger['debug'](util['format'](_0x647d('0x1c'),_0x14e1d1,_0x1a1bd0[_0x647d('0xd')],_0x53000c));}exports[_0x647d('0x1d')]=function(_0x4991ab,_0x16a1de,_0x38dcc0,_0x53e04e){if(_0x16a1de['busy']){writeLog(_0x4991ab,_0x16a1de,'BUSY');return![];}if(!_0x16a1de[_0x647d('0x1e')]){writeLog(_0x4991ab,_0x16a1de,_0x647d('0x1f'));return![];}if(_0x16a1de[_0x38dcc0+'Pause']){writeLog(_0x4991ab,_0x16a1de,_0x647d('0x20'));return![];}if(_0x53e04e&&_0x16a1de[_0x647d('0x21')](_0x38dcc0+_0x647d('0x22'))&&_0x16a1de[_0x647d('0x21')](_0x38dcc0+'CurrentCapacity')){if(_0x16a1de[_0x38dcc0+'Capacity']>0x0&&_0x16a1de[_0x38dcc0+_0x647d('0x23')]>=_0x16a1de[_0x38dcc0+'Capacity']){writeLog(_0x4991ab,_0x16a1de,_0x38dcc0[_0x647d('0x24')]()+_0x647d('0x25'));return![];}}return!![];};exports[_0x647d('0x26')]=function(_0xdd1cf6,_0x3565cb,_0x36cb9f,_0x389791,_0x204670){return sendNotification(!![],_0xdd1cf6,_0x3565cb,_0x36cb9f,_0x389791,_0x204670);};exports[_0x647d('0x27')]=function(_0x266206,_0x1b20ec,_0x11a0c1,_0x31be11,_0x398c33){return sendNotification(![],_0x266206,_0x1b20ec,_0x11a0c1,_0x31be11,_0x398c33);};exports[_0x647d('0x28')]=function(_0x3fd97f,_0x5ceea5,_0x5b418e){var _0x575c52=_0x5ceea5[_0x647d('0x29')]['UserId'];if(!_0x575c52&&_0x5b418e){_0x575c52=_0x5b418e['id'];}var _0xcd3151=_[_0x647d('0x2a')](_0x3fd97f[_0x5ceea5['channel']+_0x647d('0x2b')],function(_0x2fe75d){var _0x3c4710=_['capitalize'](_0x5ceea5[_0x647d('0x2c')])+_0x647d('0x2d');return _0x2fe75d[_0x3c4710]===_0x5ceea5[_0x647d('0x29')]['id'];});if(!_0xcd3151&&_0x575c52&&_0x3fd97f['agents'][_0x575c52]){_0xcd3151=_['some'](_0x3fd97f[_0x647d('0x2e')][_0x575c52][_0x5ceea5[_0x647d('0x2c')]+_0x647d('0x2f')],function(_0x4a220e){return _0x4a220e['id']===_0x5ceea5[_0x647d('0x29')]['id'];});}return _0xcd3151;};exports[_0x647d('0x30')]=function(_0x2c9e0d,_0x3519d7,_0x1658e2,_0xba12f1){if(_0x1658e2&&_0x1658e2['id']&&_0x2c9e0d[_0x647d('0x2e')]&&_0x2c9e0d[_0x647d('0x2e')][_0x1658e2['id']]){_0x2c9e0d[_0x647d('0x2e')][_0x1658e2['id']][_0xba12f1+_0x647d('0x2f')][_0x3519d7[_0x647d('0x31')]['id']]={'id':_0x3519d7['interaction']['id']};}};exports[_0x647d('0x32')]=function(_0xce1f54,_0x283036,_0x31b860,_0x381a84){if(_0x31b860&&_0x31b860['id']&&_0xce1f54[_0x647d('0x2e')]&&_0xce1f54[_0x647d('0x2e')][_0x31b860['id']]){delete _0xce1f54[_0x647d('0x2e')][_0x31b860['id']][_0x381a84+'WaitingInteractions'][_0x283036['message']['id']];}};exports[_0x647d('0x33')]=writeLog;