06ffd4bb9bc75525ef3a7622c88f3120f4f3a2c2
[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 _0xa848=['some','channel','agents','WaitingInteractions','removeWaitingNotification','writeLog','lodash','util','../utils','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','split','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','error','format','message','user:%s','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','interaction','UserId'];(function(_0x340ebf,_0x2e4d91){var _0x46faa7=function(_0x299dae){while(--_0x299dae){_0x340ebf['push'](_0x340ebf['shift']());}};_0x46faa7(++_0x2e4d91);}(_0xa848,0x99));var _0x8a84=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa848[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x8a84('0x0'));var util=require(_0x8a84('0x1'));var utils=require(_0x8a84('0x2'));var Redis=require('ioredis');var config=require(_0x8a84('0x3'));var logger=require(_0x8a84('0x4'))(_0x8a84('0x5'));config[_0x8a84('0x6')]=_[_0x8a84('0x7')](config[_0x8a84('0x6')],{'host':_0x8a84('0x8'),'port':0x18eb});var io=require(_0x8a84('0x9'))(new Redis(config[_0x8a84('0x6')]));function sendNotification(_0x3ee596,_0x1d463b,_0x1b958b,_0x764e89,_0xd33118,_0x5a76f4){var _0x325599=_0x5a76f4||{};var _0x423b07=_0x1b958b[_0x8a84('0xa')]('.');var _0x47e2f6={'uniqueid':_0x1d463b,'channel':_0x423b07[0x0],'id':_0x423b07[0x1],'title':_0x423b07[0x0]+_0x8a84('0xb'),'interactionId':_0x423b07[0x2],'queue':_0xd33118?_0xd33118[_0x8a84('0xc')]:null,'sound':_0x325599[_0x8a84('0xd')][_0x8a84('0xe')],'shake':_0x325599[_0x8a84('0xd')][_0x8a84('0xf')]};try{if(!_0x325599[_0x8a84('0x10')]){_0x325599[_0x8a84('0x10')]={};}if(_0xd33118){_0x325599[_0x8a84('0x10')][_0x8a84('0x11')]=_0xd33118;}else if(_0x325599[_0x8a84('0x10')][_0x8a84('0x11')]){delete _0x325599['body'][_0x8a84('0x11')];}_0x47e2f6[_0x8a84('0x12')]=utils[_0x8a84('0x13')](_0x325599['account'][_0x8a84('0x14')],_0x325599);}catch(_0x2de032){_0x47e2f6[_0x8a84('0x12')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0x8a84('0x15')](util[_0x8a84('0x16')]('[%s][QUEUE]\x20%s',_0x1d463b,_0x2de032[_0x8a84('0x17')]));}io['to'](util[_0x8a84('0x16')](_0x8a84('0x18'),_0x764e89[_0x8a84('0xc')]))['emit'](util[_0x8a84('0x16')](_0x8a84('0x19'),_0x3ee596?_0x8a84('0x1a'):_0x8a84('0x1b')),_0x47e2f6);}function writeLog(_0x292013,_0x11b98c,_0x5bd7d9){return logger[_0x8a84('0x1c')](util['format'](_0x8a84('0x1d'),_0x292013,_0x11b98c['name'],_0x5bd7d9));}exports[_0x8a84('0x1e')]=function(_0x3f4880,_0x1ddfcb,_0x56cb73,_0x123d5e){if(_0x1ddfcb[_0x8a84('0x1f')]){writeLog(_0x3f4880,_0x1ddfcb,_0x8a84('0x20'));return![];}if(!_0x1ddfcb[_0x8a84('0x21')]){writeLog(_0x3f4880,_0x1ddfcb,_0x8a84('0x22'));return![];}if(_0x1ddfcb[_0x56cb73+'Pause']){writeLog(_0x3f4880,_0x1ddfcb,_0x8a84('0x23'));return![];}if(_0x123d5e&&_0x1ddfcb[_0x8a84('0x24')](_0x56cb73+_0x8a84('0x25'))&&_0x1ddfcb[_0x8a84('0x24')](_0x56cb73+_0x8a84('0x26'))){if(_0x1ddfcb[_0x56cb73+'Capacity']>0x0&&_0x1ddfcb[_0x56cb73+_0x8a84('0x26')]>=_0x1ddfcb[_0x56cb73+_0x8a84('0x25')]){writeLog(_0x3f4880,_0x1ddfcb,_0x56cb73[_0x8a84('0x27')]()+_0x8a84('0x28'));return![];}}return!![];};exports['showNotification']=function(_0x34b0dd,_0x244126,_0x260f6d,_0x34e448,_0x4a9f05){return sendNotification(!![],_0x34b0dd,_0x244126,_0x260f6d,_0x34e448,_0x4a9f05);};exports['hideNotification']=function(_0x52db42,_0x272252,_0x44632e,_0x5520bf,_0x3f6337){return sendNotification(![],_0x52db42,_0x272252,_0x44632e,_0x5520bf,_0x3f6337);};exports['checkWaitingNotifications']=function(_0x508720,_0x47b658,_0x4940af){var _0x482067=_0x47b658[_0x8a84('0x29')][_0x8a84('0x2a')];if(!_0x482067&&_0x4940af){_0x482067=_0x4940af['id'];}var _0x396c46=_[_0x8a84('0x2b')](_0x508720[_0x47b658[_0x8a84('0x2c')]+'QueuesWaitingInteractions'],function(_0x2df556){var _0x29fe41=_['capitalize'](_0x47b658[_0x8a84('0x2c')])+'InteractionId';return _0x2df556[_0x29fe41]===_0x47b658['interaction']['id'];});if(!_0x396c46&&_0x482067&&_0x508720[_0x8a84('0x2d')][_0x482067]){_0x396c46=_[_0x8a84('0x2b')](_0x508720[_0x8a84('0x2d')][_0x482067][_0x47b658[_0x8a84('0x2c')]+_0x8a84('0x2e')],function(_0x16707a){return _0x16707a['id']===_0x47b658[_0x8a84('0x29')]['id'];});}return _0x396c46;};exports['saveWaitingNotification']=function(_0x4cd479,_0x29243e,_0x4b2ab3,_0x2479a8){if(_0x4b2ab3&&_0x4b2ab3['id']&&_0x4cd479[_0x8a84('0x2d')]&&_0x4cd479[_0x8a84('0x2d')][_0x4b2ab3['id']]){_0x4cd479[_0x8a84('0x2d')][_0x4b2ab3['id']][_0x2479a8+'WaitingInteractions'][_0x29243e[_0x8a84('0x17')]['id']]={'id':_0x29243e[_0x8a84('0x29')]['id']};}};exports[_0x8a84('0x2f')]=function(_0x4aa3bb,_0x227eb6,_0xdc899,_0x1fcbb8){if(_0xdc899&&_0xdc899['id']&&_0x4aa3bb['agents']&&_0x4aa3bb[_0x8a84('0x2d')][_0xdc899['id']]){delete _0x4aa3bb[_0x8a84('0x2d')][_0xdc899['id']][_0x1fcbb8+_0x8a84('0x2e')][_0x227eb6[_0x8a84('0x17')]['id']];}};exports[_0x8a84('0x30')]=writeLog;