Built motion from commit 9efc8423.|2.6.31
[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 _0xad9f=['message','user:%s','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','busy','BUSY','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','showNotification','hideNotification','checkWaitingNotifications','interaction','channel','QueuesWaitingInteractions','capitalize','agents','some','saveWaitingNotification','WaitingInteractions','removeWaitingNotification','writeLog','lodash','util','../utils','../../../../../config/environment','../../../../../config/logger','routing','redis','socket.io-emitter','split','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format'];(function(_0xd351b8,_0x410fa3){var _0x3f8a1c=function(_0x55c53e){while(--_0x55c53e){_0xd351b8['push'](_0xd351b8['shift']());}};_0x3f8a1c(++_0x410fa3);}(_0xad9f,0x1be));var _0xfad9=function(_0x177ccc,_0x453da5){_0x177ccc=_0x177ccc-0x0;var _0x23e1aa=_0xad9f[_0x177ccc];return _0x23e1aa;};'use strict';var _=require(_0xfad9('0x0'));var util=require(_0xfad9('0x1'));var utils=require(_0xfad9('0x2'));var Redis=require('ioredis');var config=require(_0xfad9('0x3'));var logger=require(_0xfad9('0x4'))(_0xfad9('0x5'));config[_0xfad9('0x6')]=_['defaults'](config[_0xfad9('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0xfad9('0x7'))(new Redis(config[_0xfad9('0x6')]));function sendNotification(_0x19230a,_0xaea9ba,_0xbbc4a6,_0x19b6cc,_0x4d46a7,_0x5580be){var _0x121cd4=_0x5580be||{};var _0x5fcc8f=_0xbbc4a6[_0xfad9('0x8')]('.');var _0x1b4437={'uniqueid':_0xaea9ba,'channel':_0x5fcc8f[0x0],'id':_0x5fcc8f[0x1],'title':_0x5fcc8f[0x0]+_0xfad9('0x9'),'interactionId':_0x5fcc8f[0x2],'queue':_0x4d46a7?_0x4d46a7[_0xfad9('0xa')]:null,'sound':_0x121cd4[_0xfad9('0xb')][_0xfad9('0xc')],'shake':_0x121cd4['account'][_0xfad9('0xd')]};try{if(!_0x121cd4[_0xfad9('0xe')]){_0x121cd4[_0xfad9('0xe')]={};}if(_0x4d46a7){_0x121cd4[_0xfad9('0xe')][_0xfad9('0xf')]=_0x4d46a7;}else if(_0x121cd4[_0xfad9('0xe')][_0xfad9('0xf')]){delete _0x121cd4[_0xfad9('0xe')][_0xfad9('0xf')];}_0x1b4437[_0xfad9('0x10')]=utils[_0xfad9('0x11')](_0x121cd4['account'][_0xfad9('0x12')],_0x121cd4);}catch(_0x43916a){_0x1b4437[_0xfad9('0x10')]=_0xfad9('0x13');logger[_0xfad9('0x14')](util[_0xfad9('0x15')]('[%s][QUEUE]\x20%s',_0xaea9ba,_0x43916a[_0xfad9('0x16')]));}io['to'](util['format'](_0xfad9('0x17'),_0x19b6cc[_0xfad9('0xa')]))['emit'](util['format'](_0xfad9('0x18'),_0x19230a?_0xfad9('0x19'):_0xfad9('0x1a')),_0x1b4437);}function writeLog(_0xe2ffc0,_0x2843ce,_0x3f2ace){return logger[_0xfad9('0x1b')](util[_0xfad9('0x15')](_0xfad9('0x1c'),_0xe2ffc0,_0x2843ce[_0xfad9('0xa')],_0x3f2ace));}exports['isAgentAvailable']=function(_0x5e73fd,_0x5d6a8f,_0x18deea,_0x1bc273){if(_0x5d6a8f[_0xfad9('0x1d')]){writeLog(_0x5e73fd,_0x5d6a8f,_0xfad9('0x1e'));return![];}if(!_0x5d6a8f[_0xfad9('0x1f')]){writeLog(_0x5e73fd,_0x5d6a8f,_0xfad9('0x20'));return![];}if(_0x5d6a8f[_0x18deea+_0xfad9('0x21')]){writeLog(_0x5e73fd,_0x5d6a8f,_0xfad9('0x22'));return![];}if(_0x1bc273&&_0x5d6a8f[_0xfad9('0x23')](_0x18deea+_0xfad9('0x24'))&&_0x5d6a8f[_0xfad9('0x23')](_0x18deea+_0xfad9('0x25'))){if(_0x5d6a8f[_0x18deea+_0xfad9('0x24')]>0x0&&_0x5d6a8f[_0x18deea+_0xfad9('0x25')]>=_0x5d6a8f[_0x18deea+_0xfad9('0x24')]){writeLog(_0x5e73fd,_0x5d6a8f,_0x18deea[_0xfad9('0x26')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0xfad9('0x27')]=function(_0x4781c2,_0x1e7c44,_0x174ec9,_0x39f094,_0x51ee01){return sendNotification(!![],_0x4781c2,_0x1e7c44,_0x174ec9,_0x39f094,_0x51ee01);};exports[_0xfad9('0x28')]=function(_0x4beffe,_0x4487c6,_0x1d69d6,_0x58afa4,_0x57e717){return sendNotification(![],_0x4beffe,_0x4487c6,_0x1d69d6,_0x58afa4,_0x57e717);};exports[_0xfad9('0x29')]=function(_0xa2449e,_0x584fc1,_0x38c053){var _0x5e61c9=_0x584fc1[_0xfad9('0x2a')]['UserId'];if(!_0x5e61c9&&_0x38c053){_0x5e61c9=_0x38c053['id'];}var _0x1d2995=_['some'](_0xa2449e[_0x584fc1[_0xfad9('0x2b')]+_0xfad9('0x2c')],function(_0x5df822){var _0x1c72cd=_[_0xfad9('0x2d')](_0x584fc1[_0xfad9('0x2b')])+'InteractionId';return _0x5df822[_0x1c72cd]===_0x584fc1[_0xfad9('0x2a')]['id'];});if(!_0x1d2995&&_0x5e61c9&&_0xa2449e[_0xfad9('0x2e')][_0x5e61c9]){_0x1d2995=_[_0xfad9('0x2f')](_0xa2449e[_0xfad9('0x2e')][_0x5e61c9][_0x584fc1[_0xfad9('0x2b')]+'WaitingInteractions'],function(_0x3fbdbd){return _0x3fbdbd['id']===_0x584fc1[_0xfad9('0x2a')]['id'];});}return _0x1d2995;};exports[_0xfad9('0x30')]=function(_0x301f3d,_0x4f59fe,_0x5e45c3,_0x424151){if(_0x5e45c3&&_0x5e45c3['id']&&_0x301f3d['agents']&&_0x301f3d[_0xfad9('0x2e')][_0x5e45c3['id']]){_0x301f3d[_0xfad9('0x2e')][_0x5e45c3['id']][_0x424151+_0xfad9('0x31')][_0x4f59fe[_0xfad9('0x16')]['id']]={'id':_0x4f59fe[_0xfad9('0x2a')]['id']};}};exports[_0xfad9('0x32')]=function(_0x39e631,_0x6e1a9,_0x5779c3,_0x3ead13){if(_0x5779c3&&_0x5779c3['id']&&_0x39e631[_0xfad9('0x2e')]&&_0x39e631[_0xfad9('0x2e')][_0x5779c3['id']]){delete _0x39e631[_0xfad9('0x2e')][_0x5779c3['id']][_0x3ead13+'WaitingInteractions'][_0x6e1a9[_0xfad9('0x16')]['id']];}};exports[_0xfad9('0x33')]=writeLog;