1a80279d0eedb56d0d4f944bbf76748e516574d5
[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 _0x47fd=['emit','format','user:%s','user:save','split','\x20interaction','name','account','notificationShake','body','queue','getMustacheRender','msg','I\x20can\x27t\x20render\x20your\x20template','error','message','notification:%s','save','remove','info','online','OFFLINE','Pause','PAUSE','hasOwnProperty','toUpperCase','\x20MAXCAPACITY','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter'];(function(_0x15fb62,_0x1a2e36){var _0x13bf0e=function(_0x20b1a5){while(--_0x20b1a5){_0x15fb62['push'](_0x15fb62['shift']());}};_0x13bf0e(++_0x1a2e36);}(_0x47fd,0x13c));var _0xd47f=function(_0x74e2c8,_0x22dee3){_0x74e2c8=_0x74e2c8-0x0;var _0x3ff12a=_0x47fd[_0x74e2c8];return _0x3ff12a;};'use strict';var _=require(_0xd47f('0x0'));var util=require(_0xd47f('0x1'));var utils=require(_0xd47f('0x2'));var Mustache=require(_0xd47f('0x3'));var Redis=require(_0xd47f('0x4'));var config=require(_0xd47f('0x5'));var logger=require(_0xd47f('0x6'))(_0xd47f('0x7'));config[_0xd47f('0x8')]=_[_0xd47f('0x9')](config['redis'],{'host':_0xd47f('0xa'),'port':0x18eb});var io=require(_0xd47f('0xb'))(new Redis(config['redis']));function emit(_0x11c1d4,_0x4f4706,_0x55433e){io['to'](_0x11c1d4)[_0xd47f('0xc')](_0x4f4706,_0x55433e);}function sendNotification(_0x56a97a,_0x48efff,_0xc6b72d,_0x2b694d,_0x39a607,_0x2bf1b1){io['to'](util[_0xd47f('0xd')](_0xd47f('0xe'),_0x2b694d['name']))[_0xd47f('0xc')](_0xd47f('0xf'),_0x2b694d);var _0x5b11a9=_0x2bf1b1||{};var _0x37cd48=_0xc6b72d[_0xd47f('0x10')]('.');var _0x63d1b={'uniqueid':_0x48efff,'channel':_0x37cd48[0x0],'id':_0x37cd48[0x1],'title':_0x37cd48[0x0]+_0xd47f('0x11'),'interactionId':_0x37cd48[0x2],'queue':_0x39a607?_0x39a607[_0xd47f('0x12')]:null,'sound':_0x5b11a9[_0xd47f('0x13')]['notificationSound'],'shake':_0x5b11a9[_0xd47f('0x13')][_0xd47f('0x14')]};try{if(!_0x5b11a9[_0xd47f('0x15')]){_0x5b11a9[_0xd47f('0x15')]={};}if(_0x39a607){_0x5b11a9[_0xd47f('0x15')][_0xd47f('0x16')]=_0x39a607;}else if(_0x5b11a9[_0xd47f('0x15')][_0xd47f('0x16')]){delete _0x5b11a9[_0xd47f('0x15')]['queue'];}_0x63d1b['msg']=utils[_0xd47f('0x17')](_0x5b11a9[_0xd47f('0x13')]['notificationTemplate'],_0x5b11a9);}catch(_0x2b2cdb){_0x63d1b[_0xd47f('0x18')]=_0xd47f('0x19');logger[_0xd47f('0x1a')](util[_0xd47f('0xd')]('[%s][QUEUE]\x20%s',_0x48efff,_0x2b2cdb[_0xd47f('0x1b')]));}io['to'](util[_0xd47f('0xd')](_0xd47f('0xe'),_0x2b694d[_0xd47f('0x12')]))[_0xd47f('0xc')](util[_0xd47f('0xd')](_0xd47f('0x1c'),_0x56a97a?_0xd47f('0x1d'):_0xd47f('0x1e')),_0x63d1b);}function writeLog(_0x1b93d3,_0xcbba7c,_0x3f2e37){return logger[_0xd47f('0x1f')](util['format']('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x1b93d3,_0xcbba7c[_0xd47f('0x12')],_0x3f2e37));}exports['isAgentAvailable']=function(_0xd2fe59,_0x212880,_0x117d9b,_0x5695c5){if(_0x212880['busy']){writeLog(_0xd2fe59,_0x212880,'BUSY');return![];}if(!_0x212880[_0xd47f('0x20')]){writeLog(_0xd2fe59,_0x212880,_0xd47f('0x21'));return![];}if(_0x212880[_0x117d9b+_0xd47f('0x22')]){writeLog(_0xd2fe59,_0x212880,_0xd47f('0x23'));return![];}if(_0x5695c5&&_0x212880[_0xd47f('0x24')](_0x117d9b+'Capacity')&&_0x212880[_0xd47f('0x24')](_0x117d9b+'CurrentCapacity')){if(_0x212880[_0x117d9b+'Capacity']>0x0&&_0x212880[_0x117d9b+'CurrentCapacity']>=_0x212880[_0x117d9b+'Capacity']){writeLog(_0xd2fe59,_0x212880,_0x117d9b[_0xd47f('0x25')]()+_0xd47f('0x26'));return![];}}return!![];};exports['showNotification']=function(_0x597440,_0x46131e,_0xcd94c7,_0x4da007,_0x18d261){return sendNotification(!![],_0x597440,_0x46131e,_0xcd94c7,_0x4da007,_0x18d261);};exports[_0xd47f('0x27')]=function(_0x2bf6ab,_0x1efde3,_0x2c745b,_0x2e4777,_0x4b09a9){return sendNotification(![],_0x2bf6ab,_0x1efde3,_0x2c745b,_0x2e4777,_0x4b09a9);};exports[_0xd47f('0x28')]=writeLog;