Built motion from commit d5e4af8c.|2.6.23
[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 _0xa1b4=['BUSY','online','OFFLINE','Pause','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','interaction','UserId','some','channel','QueuesWaitingInteractions','InteractionId','agents','WaitingInteractions','removeWaitingNotification','writeLog','lodash','util','../utils','ioredis','../../../../../config/environment','../../../../../config/logger','defaults','redis','localhost','socket.io-emitter','split','name','account','notificationSound','notificationShake','queue','body','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','[%s][QUEUE]\x20%s','message','user:%s','emit','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy'];(function(_0x3d42d8,_0x4cffaa){var _0x27fc41=function(_0x3a363b){while(--_0x3a363b){_0x3d42d8['push'](_0x3d42d8['shift']());}};_0x27fc41(++_0x4cffaa);}(_0xa1b4,0x83));var _0x4a1b=function(_0x39bfb6,_0x4272c8){_0x39bfb6=_0x39bfb6-0x0;var _0x23fef9=_0xa1b4[_0x39bfb6];return _0x23fef9;};'use strict';var _=require(_0x4a1b('0x0'));var util=require(_0x4a1b('0x1'));var utils=require(_0x4a1b('0x2'));var Redis=require(_0x4a1b('0x3'));var config=require(_0x4a1b('0x4'));var logger=require(_0x4a1b('0x5'))('routing');config['redis']=_[_0x4a1b('0x6')](config[_0x4a1b('0x7')],{'host':_0x4a1b('0x8'),'port':0x18eb});var io=require(_0x4a1b('0x9'))(new Redis(config[_0x4a1b('0x7')]));function sendNotification(_0x509ec1,_0x30581a,_0x243f36,_0x5a7388,_0x44e31f,_0x13cae9){var _0x4d6f2b=_0x13cae9||{};var _0x21b221=_0x243f36[_0x4a1b('0xa')]('.');var _0x4cba75={'uniqueid':_0x30581a,'channel':_0x21b221[0x0],'id':_0x21b221[0x1],'title':_0x21b221[0x0]+'\x20interaction','interactionId':_0x21b221[0x2],'queue':_0x44e31f?_0x44e31f[_0x4a1b('0xb')]:null,'sound':_0x4d6f2b[_0x4a1b('0xc')][_0x4a1b('0xd')],'shake':_0x4d6f2b['account'][_0x4a1b('0xe')]};try{if(!_0x4d6f2b['body']){_0x4d6f2b['body']={};}if(_0x44e31f){_0x4d6f2b['body'][_0x4a1b('0xf')]=_0x44e31f;}else if(_0x4d6f2b[_0x4a1b('0x10')]['queue']){delete _0x4d6f2b[_0x4a1b('0x10')][_0x4a1b('0xf')];}_0x4cba75[_0x4a1b('0x11')]=utils[_0x4a1b('0x12')](_0x4d6f2b[_0x4a1b('0xc')][_0x4a1b('0x13')],_0x4d6f2b);}catch(_0x103f44){_0x4cba75['msg']=_0x4a1b('0x14');logger[_0x4a1b('0x15')](util[_0x4a1b('0x16')](_0x4a1b('0x17'),_0x30581a,_0x103f44[_0x4a1b('0x18')]));}io['to'](util[_0x4a1b('0x16')](_0x4a1b('0x19'),_0x5a7388['name']))[_0x4a1b('0x1a')](util['format'](_0x4a1b('0x1b'),_0x509ec1?_0x4a1b('0x1c'):_0x4a1b('0x1d')),_0x4cba75);}function writeLog(_0x3a84e9,_0x5ada51,_0x88d1a2){return logger[_0x4a1b('0x1e')](util['format'](_0x4a1b('0x1f'),_0x3a84e9,_0x5ada51['name'],_0x88d1a2));}exports[_0x4a1b('0x20')]=function(_0x47551e,_0x135ca1,_0x10e245,_0x254ea3){if(_0x135ca1[_0x4a1b('0x21')]){writeLog(_0x47551e,_0x135ca1,_0x4a1b('0x22'));return![];}if(!_0x135ca1[_0x4a1b('0x23')]){writeLog(_0x47551e,_0x135ca1,_0x4a1b('0x24'));return![];}if(_0x135ca1[_0x10e245+_0x4a1b('0x25')]){writeLog(_0x47551e,_0x135ca1,'PAUSE');return![];}if(_0x254ea3&&_0x135ca1[_0x4a1b('0x26')](_0x10e245+_0x4a1b('0x27'))&&_0x135ca1[_0x4a1b('0x26')](_0x10e245+_0x4a1b('0x28'))){if(_0x135ca1[_0x10e245+_0x4a1b('0x27')]>0x0&&_0x135ca1[_0x10e245+_0x4a1b('0x28')]>=_0x135ca1[_0x10e245+_0x4a1b('0x27')]){writeLog(_0x47551e,_0x135ca1,_0x10e245[_0x4a1b('0x29')]()+_0x4a1b('0x2a'));return![];}}return!![];};exports[_0x4a1b('0x2b')]=function(_0x2ec4e5,_0x169525,_0x3336a8,_0x19eb98,_0x59bc18){return sendNotification(!![],_0x2ec4e5,_0x169525,_0x3336a8,_0x19eb98,_0x59bc18);};exports[_0x4a1b('0x2c')]=function(_0x2ab164,_0x1d1860,_0x260395,_0x4e1ebd,_0x3f5701){return sendNotification(![],_0x2ab164,_0x1d1860,_0x260395,_0x4e1ebd,_0x3f5701);};exports['checkWaitingNotifications']=function(_0x3d9b31,_0x259163,_0x219bef){var _0x68a8fc=_0x259163[_0x4a1b('0x2d')][_0x4a1b('0x2e')];if(!_0x68a8fc&&_0x219bef){_0x68a8fc=_0x219bef['id'];}var _0x26d080=_[_0x4a1b('0x2f')](_0x3d9b31[_0x259163[_0x4a1b('0x30')]+_0x4a1b('0x31')],function(_0x5f0f1b){var _0x1515f2=_['capitalize'](_0x259163[_0x4a1b('0x30')])+_0x4a1b('0x32');return _0x5f0f1b[_0x1515f2]===_0x259163[_0x4a1b('0x2d')]['id'];});if(!_0x26d080&&_0x68a8fc&&_0x3d9b31[_0x4a1b('0x33')][_0x68a8fc]){_0x26d080=_['some'](_0x3d9b31['agents'][_0x68a8fc][_0x259163[_0x4a1b('0x30')]+_0x4a1b('0x34')],function(_0x28ed41){return _0x28ed41['id']===_0x259163['interaction']['id'];});}return _0x26d080;};exports['saveWaitingNotification']=function(_0x31f4fd,_0x210476,_0x1464d7,_0x16c3bf){if(_0x1464d7&&_0x1464d7['id']&&_0x31f4fd[_0x4a1b('0x33')]&&_0x31f4fd['agents'][_0x1464d7['id']]){_0x31f4fd['agents'][_0x1464d7['id']][_0x16c3bf+'WaitingInteractions'][_0x210476[_0x4a1b('0x18')]['id']]={'id':_0x210476['interaction']['id']};}};exports[_0x4a1b('0x35')]=function(_0x420690,_0x2b4a21,_0x29f027,_0x21f0bb){if(_0x29f027&&_0x29f027['id']&&_0x420690['agents']&&_0x420690[_0x4a1b('0x33')][_0x29f027['id']]){delete _0x420690[_0x4a1b('0x33')][_0x29f027['id']][_0x21f0bb+'WaitingInteractions'][_0x2b4a21['message']['id']];}};exports[_0x4a1b('0x36')]=writeLog;