2c32446d05fa9e620db4e6abc96d15d0921731c9
[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 _0x71d5=['WaitingInteractions','saveWaitingNotification','agents','removeWaitingNotification','writeLog','lodash','util','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','split','\x20interaction','account','notificationSound','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','[%s][QUEUE]\x20%s','message','user:%s','emit','notification:%s','save','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','name','isAgentAvailable','busy','Pause','PAUSE','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','hideNotification','checkWaitingNotifications','interaction','UserId','some','channel','QueuesWaitingInteractions','capitalize','InteractionId'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x71d5,0x109));var _0x571d=function(_0x435e0b,_0x4b794d){_0x435e0b=_0x435e0b-0x0;var _0xfb1f0b=_0x71d5[_0x435e0b];return _0xfb1f0b;};'use strict';var _=require(_0x571d('0x0'));var util=require(_0x571d('0x1'));var utils=require('../utils');var Redis=require('ioredis');var config=require(_0x571d('0x2'));var logger=require(_0x571d('0x3'))(_0x571d('0x4'));config[_0x571d('0x5')]=_[_0x571d('0x6')](config[_0x571d('0x5')],{'host':_0x571d('0x7'),'port':0x18eb});var io=require(_0x571d('0x8'))(new Redis(config[_0x571d('0x5')]));function sendNotification(_0x562de5,_0xdf7813,_0x12e5ba,_0x35ca3c,_0x141a0b,_0x18506e){var _0x2e8c89=_0x18506e||{};var _0x44861f=_0x12e5ba[_0x571d('0x9')]('.');var _0x148f1f={'uniqueid':_0xdf7813,'channel':_0x44861f[0x0],'id':_0x44861f[0x1],'title':_0x44861f[0x0]+_0x571d('0xa'),'interactionId':_0x44861f[0x2],'queue':_0x141a0b?_0x141a0b['name']:null,'sound':_0x2e8c89[_0x571d('0xb')][_0x571d('0xc')],'shake':_0x2e8c89[_0x571d('0xb')]['notificationShake']};try{if(!_0x2e8c89[_0x571d('0xd')]){_0x2e8c89['body']={};}if(_0x141a0b){_0x2e8c89[_0x571d('0xd')][_0x571d('0xe')]=_0x141a0b;}else if(_0x2e8c89[_0x571d('0xd')][_0x571d('0xe')]){delete _0x2e8c89[_0x571d('0xd')][_0x571d('0xe')];}_0x148f1f[_0x571d('0xf')]=utils[_0x571d('0x10')](_0x2e8c89[_0x571d('0xb')][_0x571d('0x11')],_0x2e8c89);}catch(_0x2f85d7){_0x148f1f['msg']=_0x571d('0x12');logger[_0x571d('0x13')](util[_0x571d('0x14')](_0x571d('0x15'),_0xdf7813,_0x2f85d7[_0x571d('0x16')]));}io['to'](util[_0x571d('0x14')](_0x571d('0x17'),_0x35ca3c['name']))[_0x571d('0x18')](util[_0x571d('0x14')](_0x571d('0x19'),_0x562de5?_0x571d('0x1a'):'remove'),_0x148f1f);}function writeLog(_0x21b69d,_0x413674,_0x5433ff){return logger[_0x571d('0x1b')](util[_0x571d('0x14')](_0x571d('0x1c'),_0x21b69d,_0x413674[_0x571d('0x1d')],_0x5433ff));}exports[_0x571d('0x1e')]=function(_0x291074,_0x316677,_0x45b979,_0x3e6403){if(_0x316677[_0x571d('0x1f')]){writeLog(_0x291074,_0x316677,'BUSY');return![];}if(!_0x316677['online']){writeLog(_0x291074,_0x316677,'OFFLINE');return![];}if(_0x316677[_0x45b979+_0x571d('0x20')]){writeLog(_0x291074,_0x316677,_0x571d('0x21'));return![];}if(_0x3e6403&&_0x316677['hasOwnProperty'](_0x45b979+_0x571d('0x22'))&&_0x316677['hasOwnProperty'](_0x45b979+_0x571d('0x23'))){if(_0x316677[_0x45b979+_0x571d('0x22')]>0x0&&_0x316677[_0x45b979+'CurrentCapacity']>=_0x316677[_0x45b979+_0x571d('0x22')]){writeLog(_0x291074,_0x316677,_0x45b979[_0x571d('0x24')]()+_0x571d('0x25'));return![];}}return!![];};exports['showNotification']=function(_0x15a73a,_0x251718,_0x2cde3a,_0x4e089e,_0x54a9d9){return sendNotification(!![],_0x15a73a,_0x251718,_0x2cde3a,_0x4e089e,_0x54a9d9);};exports[_0x571d('0x26')]=function(_0x53e5d1,_0x573b5e,_0x5cfdf6,_0x3ca32f,_0x361bd6){return sendNotification(![],_0x53e5d1,_0x573b5e,_0x5cfdf6,_0x3ca32f,_0x361bd6);};exports[_0x571d('0x27')]=function(_0x119211,_0x59749a,_0x395d7b){var _0x2a6764=_0x59749a[_0x571d('0x28')][_0x571d('0x29')];if(!_0x2a6764&&_0x395d7b){_0x2a6764=_0x395d7b['id'];}var _0x567742=_[_0x571d('0x2a')](_0x119211[_0x59749a[_0x571d('0x2b')]+_0x571d('0x2c')],function(_0x20dfdd){var _0x529cb5=_[_0x571d('0x2d')](_0x59749a[_0x571d('0x2b')])+_0x571d('0x2e');return _0x20dfdd[_0x529cb5]===_0x59749a[_0x571d('0x28')]['id'];});if(!_0x567742&&_0x2a6764&&_0x119211['agents'][_0x2a6764]){_0x567742=_[_0x571d('0x2a')](_0x119211['agents'][_0x2a6764][_0x59749a[_0x571d('0x2b')]+_0x571d('0x2f')],function(_0x1c5188){return _0x1c5188['id']===_0x59749a[_0x571d('0x28')]['id'];});}return _0x567742;};exports[_0x571d('0x30')]=function(_0x3135ae,_0x5e6faa,_0x98fb44,_0xe7a8f1){if(_0x98fb44&&_0x98fb44['id']&&_0x3135ae[_0x571d('0x31')]&&_0x3135ae[_0x571d('0x31')][_0x98fb44['id']]){_0x3135ae[_0x571d('0x31')][_0x98fb44['id']][_0xe7a8f1+'WaitingInteractions'][_0x5e6faa[_0x571d('0x16')]['id']]={'id':_0x5e6faa[_0x571d('0x28')]['id']};}};exports[_0x571d('0x32')]=function(_0x120b19,_0x1b123c,_0xccda23,_0x580b27){if(_0xccda23&&_0xccda23['id']&&_0x120b19[_0x571d('0x31')]&&_0x120b19['agents'][_0xccda23['id']]){delete _0x120b19[_0x571d('0x31')][_0xccda23['id']][_0x580b27+_0x571d('0x2f')][_0x1b123c[_0x571d('0x16')]['id']];}};exports[_0x571d('0x33')]=writeLog;