Built motion from commit da24aabd.|2.6.20
[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 _0x5183=['remove','[%s][QUEUE][AGENT:%s][STATUS:%s]','busy','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','interaction','channel','capitalize','InteractionId','some','WaitingInteractions','saveWaitingNotification','agents','removeWaitingNotification','writeLog','lodash','util','../utils','../../../../../config/logger','routing','redis','defaults','socket.io-emitter','format','name','user:save','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','message','user:%s','notification:%s','save'];(function(_0x1f02b2,_0x1a19f9){var _0x27354a=function(_0x23869e){while(--_0x23869e){_0x1f02b2['push'](_0x1f02b2['shift']());}};_0x27354a(++_0x1a19f9);}(_0x5183,0x13e));var _0x3518=function(_0x471866,_0x24f38c){_0x471866=_0x471866-0x0;var _0x7bdc1a=_0x5183[_0x471866];return _0x7bdc1a;};'use strict';var _=require(_0x3518('0x0'));var util=require(_0x3518('0x1'));var utils=require(_0x3518('0x2'));var Redis=require('ioredis');var config=require('../../../../../config/environment');var logger=require(_0x3518('0x3'))(_0x3518('0x4'));config[_0x3518('0x5')]=_[_0x3518('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x3518('0x7'))(new Redis(config[_0x3518('0x5')]));function sendNotification(_0x2c019c,_0x482b2d,_0x5cd139,_0x488c52,_0x147b59,_0x33e66c){io['to'](util[_0x3518('0x8')]('user:%s',_0x488c52[_0x3518('0x9')]))['emit'](_0x3518('0xa'),_0x488c52);var _0x11784b=_0x33e66c||{};var _0x12429b=_0x5cd139['split']('.');var _0x3a60c7={'uniqueid':_0x482b2d,'channel':_0x12429b[0x0],'id':_0x12429b[0x1],'title':_0x12429b[0x0]+_0x3518('0xb'),'interactionId':_0x12429b[0x2],'queue':_0x147b59?_0x147b59['name']:null,'sound':_0x11784b[_0x3518('0xc')][_0x3518('0xd')],'shake':_0x11784b[_0x3518('0xc')][_0x3518('0xe')]};try{if(!_0x11784b['body']){_0x11784b['body']={};}if(_0x147b59){_0x11784b[_0x3518('0xf')][_0x3518('0x10')]=_0x147b59;}else if(_0x11784b[_0x3518('0xf')]['queue']){delete _0x11784b['body'][_0x3518('0x10')];}_0x3a60c7[_0x3518('0x11')]=utils[_0x3518('0x12')](_0x11784b['account'][_0x3518('0x13')],_0x11784b);}catch(_0x4ed175){_0x3a60c7[_0x3518('0x11')]=_0x3518('0x14');logger['error'](util[_0x3518('0x8')]('[%s][QUEUE]\x20%s',_0x482b2d,_0x4ed175[_0x3518('0x15')]));}io['to'](util['format'](_0x3518('0x16'),_0x488c52[_0x3518('0x9')]))['emit'](util[_0x3518('0x8')](_0x3518('0x17'),_0x2c019c?_0x3518('0x18'):_0x3518('0x19')),_0x3a60c7);}function writeLog(_0x1da94c,_0x596902,_0xef3f2e){return logger['debug'](util[_0x3518('0x8')](_0x3518('0x1a'),_0x1da94c,_0x596902[_0x3518('0x9')],_0xef3f2e));}exports['isAgentAvailable']=function(_0xa2dba8,_0x1646aa,_0x2a3b9a,_0x1e25a9){if(_0x1646aa[_0x3518('0x1b')]){writeLog(_0xa2dba8,_0x1646aa,'BUSY');return![];}if(!_0x1646aa[_0x3518('0x1c')]){writeLog(_0xa2dba8,_0x1646aa,_0x3518('0x1d'));return![];}if(_0x1646aa[_0x2a3b9a+_0x3518('0x1e')]){writeLog(_0xa2dba8,_0x1646aa,_0x3518('0x1f'));return![];}if(_0x1e25a9&&_0x1646aa[_0x3518('0x20')](_0x2a3b9a+_0x3518('0x21'))&&_0x1646aa[_0x3518('0x20')](_0x2a3b9a+_0x3518('0x22'))){if(_0x1646aa[_0x2a3b9a+_0x3518('0x21')]>0x0&&_0x1646aa[_0x2a3b9a+_0x3518('0x22')]>=_0x1646aa[_0x2a3b9a+_0x3518('0x21')]){writeLog(_0xa2dba8,_0x1646aa,_0x2a3b9a[_0x3518('0x23')]()+_0x3518('0x24'));return![];}}return!![];};exports[_0x3518('0x25')]=function(_0x319d89,_0x428b25,_0xc3cab2,_0x30ebce,_0x25917c){return sendNotification(!![],_0x319d89,_0x428b25,_0xc3cab2,_0x30ebce,_0x25917c);};exports[_0x3518('0x26')]=function(_0x34a6d6,_0x123230,_0x41e02b,_0x369d58,_0x4cfaa7){return sendNotification(![],_0x34a6d6,_0x123230,_0x41e02b,_0x369d58,_0x4cfaa7);};exports['checkWaitingNotifications']=function(_0x3f8b72,_0x1d1d76,_0x4c16d6){var _0xfb34d7=_0x1d1d76[_0x3518('0x27')]['UserId'];if(!_0xfb34d7&&_0x4c16d6){_0xfb34d7=_0x4c16d6['id'];}var _0x99b607=_['some'](_0x3f8b72[_0x1d1d76[_0x3518('0x28')]+'QueuesWaitingInteractions'],function(_0x6f3e96){var _0x8dc64b=_[_0x3518('0x29')](_0x1d1d76[_0x3518('0x28')])+_0x3518('0x2a');return _0x6f3e96[_0x8dc64b]===_0x1d1d76[_0x3518('0x27')]['id'];});if(!_0x99b607&&_0xfb34d7&&_0x3f8b72['agents'][_0xfb34d7]){_0x99b607=_[_0x3518('0x2b')](_0x3f8b72['agents'][_0xfb34d7][_0x1d1d76[_0x3518('0x28')]+_0x3518('0x2c')],function(_0x313be1){return _0x313be1['id']===_0x1d1d76[_0x3518('0x27')]['id'];});}return _0x99b607;};exports[_0x3518('0x2d')]=function(_0x3c587e,_0x297bcd,_0x1d774f,_0xd557ab){if(_0x1d774f&&_0x1d774f['id']&&_0x3c587e[_0x3518('0x2e')]&&_0x3c587e[_0x3518('0x2e')][_0x1d774f['id']]){_0x3c587e[_0x3518('0x2e')][_0x1d774f['id']][_0xd557ab+_0x3518('0x2c')][_0x297bcd['message']['id']]={'id':_0x297bcd[_0x3518('0x27')]['id']};}};exports[_0x3518('0x2f')]=function(_0x349b54,_0x39fecf,_0x59bbc2,_0x2f0095){if(_0x59bbc2&&_0x59bbc2['id']&&_0x349b54[_0x3518('0x2e')]&&_0x349b54['agents'][_0x59bbc2['id']]){delete _0x349b54[_0x3518('0x2e')][_0x59bbc2['id']][_0x2f0095+_0x3518('0x2c')][_0x39fecf[_0x3518('0x15')]['id']];}};exports[_0x3518('0x30')]=writeLog;