Built motion from commit efa66e19.|2.6.22
[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 _0x5522=['online','OFFLINE','Pause','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','interaction','UserId','some','channel','QueuesWaitingInteractions','capitalize','InteractionId','agents','saveWaitingNotification','WaitingInteractions','writeLog','lodash','util','../utils','ioredis','../../../../../config/environment','routing','redis','defaults','localhost','socket.io-emitter','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','[%s][QUEUE]\x20%s','message','user:%s','save','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','name','isAgentAvailable','busy'];(function(_0x4a3554,_0x14f2fd){var _0x12e4cb=function(_0x30dedc){while(--_0x30dedc){_0x4a3554['push'](_0x4a3554['shift']());}};_0x12e4cb(++_0x14f2fd);}(_0x5522,0x1bd));var _0x2552=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x5522[_0x502c7d];return _0x30b7ed;};'use strict';var _=require(_0x2552('0x0'));var util=require(_0x2552('0x1'));var utils=require(_0x2552('0x2'));var Redis=require(_0x2552('0x3'));var config=require(_0x2552('0x4'));var logger=require('../../../../../config/logger')(_0x2552('0x5'));config[_0x2552('0x6')]=_[_0x2552('0x7')](config['redis'],{'host':_0x2552('0x8'),'port':0x18eb});var io=require(_0x2552('0x9'))(new Redis(config['redis']));function sendNotification(_0x45dbe9,_0x1b8d88,_0x3810df,_0xdba28f,_0x8357e1,_0x35730f){var _0x18b910=_0x35730f||{};var _0x1cc2e4=_0x3810df[_0x2552('0xa')]('.');var _0x3057ea={'uniqueid':_0x1b8d88,'channel':_0x1cc2e4[0x0],'id':_0x1cc2e4[0x1],'title':_0x1cc2e4[0x0]+_0x2552('0xb'),'interactionId':_0x1cc2e4[0x2],'queue':_0x8357e1?_0x8357e1['name']:null,'sound':_0x18b910[_0x2552('0xc')][_0x2552('0xd')],'shake':_0x18b910[_0x2552('0xc')][_0x2552('0xe')]};try{if(!_0x18b910[_0x2552('0xf')]){_0x18b910['body']={};}if(_0x8357e1){_0x18b910[_0x2552('0xf')][_0x2552('0x10')]=_0x8357e1;}else if(_0x18b910[_0x2552('0xf')][_0x2552('0x10')]){delete _0x18b910[_0x2552('0xf')][_0x2552('0x10')];}_0x3057ea[_0x2552('0x11')]=utils[_0x2552('0x12')](_0x18b910['account'][_0x2552('0x13')],_0x18b910);}catch(_0x260d4a){_0x3057ea[_0x2552('0x11')]=_0x2552('0x14');logger[_0x2552('0x15')](util[_0x2552('0x16')](_0x2552('0x17'),_0x1b8d88,_0x260d4a[_0x2552('0x18')]));}io['to'](util[_0x2552('0x16')](_0x2552('0x19'),_0xdba28f['name']))['emit'](util[_0x2552('0x16')]('notification:%s',_0x45dbe9?_0x2552('0x1a'):'remove'),_0x3057ea);}function writeLog(_0x5beec8,_0x34ac3a,_0x405986){return logger[_0x2552('0x1b')](util[_0x2552('0x16')](_0x2552('0x1c'),_0x5beec8,_0x34ac3a[_0x2552('0x1d')],_0x405986));}exports[_0x2552('0x1e')]=function(_0x5116a2,_0x24659b,_0x5b177b,_0x3489b1){if(_0x24659b[_0x2552('0x1f')]){writeLog(_0x5116a2,_0x24659b,'BUSY');return![];}if(!_0x24659b[_0x2552('0x20')]){writeLog(_0x5116a2,_0x24659b,_0x2552('0x21'));return![];}if(_0x24659b[_0x5b177b+_0x2552('0x22')]){writeLog(_0x5116a2,_0x24659b,'PAUSE');return![];}if(_0x3489b1&&_0x24659b[_0x2552('0x23')](_0x5b177b+_0x2552('0x24'))&&_0x24659b['hasOwnProperty'](_0x5b177b+_0x2552('0x25'))){if(_0x24659b[_0x5b177b+_0x2552('0x24')]>0x0&&_0x24659b[_0x5b177b+_0x2552('0x25')]>=_0x24659b[_0x5b177b+'Capacity']){writeLog(_0x5116a2,_0x24659b,_0x5b177b[_0x2552('0x26')]()+_0x2552('0x27'));return![];}}return!![];};exports[_0x2552('0x28')]=function(_0x147c62,_0x3b7967,_0x4ea485,_0x550953,_0x1ba5b6){return sendNotification(!![],_0x147c62,_0x3b7967,_0x4ea485,_0x550953,_0x1ba5b6);};exports[_0x2552('0x29')]=function(_0x3ff48a,_0x33fce4,_0x33a674,_0x39adb1,_0x27ba54){return sendNotification(![],_0x3ff48a,_0x33fce4,_0x33a674,_0x39adb1,_0x27ba54);};exports['checkWaitingNotifications']=function(_0xd92ab4,_0xe274c0,_0x5597c2){var _0x24a7f3=_0xe274c0[_0x2552('0x2a')][_0x2552('0x2b')];if(!_0x24a7f3&&_0x5597c2){_0x24a7f3=_0x5597c2['id'];}var _0x15f6a4=_[_0x2552('0x2c')](_0xd92ab4[_0xe274c0[_0x2552('0x2d')]+_0x2552('0x2e')],function(_0x3121c1){var _0x3b739f=_[_0x2552('0x2f')](_0xe274c0[_0x2552('0x2d')])+_0x2552('0x30');return _0x3121c1[_0x3b739f]===_0xe274c0[_0x2552('0x2a')]['id'];});if(!_0x15f6a4&&_0x24a7f3&&_0xd92ab4['agents'][_0x24a7f3]){_0x15f6a4=_['some'](_0xd92ab4[_0x2552('0x31')][_0x24a7f3][_0xe274c0[_0x2552('0x2d')]+'WaitingInteractions'],function(_0x3e5829){return _0x3e5829['id']===_0xe274c0[_0x2552('0x2a')]['id'];});}return _0x15f6a4;};exports[_0x2552('0x32')]=function(_0x135b8e,_0x3c59d9,_0x23c9b6,_0x3f8d2a){if(_0x23c9b6&&_0x23c9b6['id']&&_0x135b8e[_0x2552('0x31')]&&_0x135b8e['agents'][_0x23c9b6['id']]){_0x135b8e['agents'][_0x23c9b6['id']][_0x3f8d2a+'WaitingInteractions'][_0x3c59d9['message']['id']]={'id':_0x3c59d9[_0x2552('0x2a')]['id']};}};exports['removeWaitingNotification']=function(_0x1e92c6,_0x19d038,_0x5418ee,_0x33c449){if(_0x5418ee&&_0x5418ee['id']&&_0x1e92c6[_0x2552('0x31')]&&_0x1e92c6[_0x2552('0x31')][_0x5418ee['id']]){delete _0x1e92c6['agents'][_0x5418ee['id']][_0x33c449+_0x2552('0x33')][_0x19d038[_0x2552('0x18')]['id']];}};exports[_0x2552('0x34')]=writeLog;