2e0e89d0d974c054c2bfea6a20238a29d1d3839a
[motion2.git] / server / services / routing / server / index.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 _0xc760=['agent\x20not\x20found','chatQueues','available','loggedIn','waiting','mailQueues','name','paused','openchannelQueues','smsQueues','faxQueues','values','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','server','127.0.0.1','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','jayson/promise','bluebird','uuid','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','message','interaction','applications','length','join','app','.js','toLowerCase','autoreply','appdata','split','push','slice','dialogflow','amazonlex','TagId','%s:%s:%s','./interval','condition','intervals','./applications/','info','Push\x20new\x20rule','on\x20interval','execute','Applications\x20executed','stringify','matchPath','emit','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','channel','end','QueueReport','update','UserId','catch','error','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime'];(function(_0xf41a7e,_0x3f5da9){var _0x44a48d=function(_0x8dc393){while(--_0x8dc393){_0xf41a7e['push'](_0xf41a7e['shift']());}};_0x44a48d(++_0x3f5da9);}(_0xc760,0x184));var _0x0c76=function(_0x56d6fb,_0x1d6a2f){_0x56d6fb=_0x56d6fb-0x0;var _0x487e2d=_0xc760[_0x56d6fb];return _0x487e2d;};'use strict';var _=require(_0x0c76('0x0'));var util=require(_0x0c76('0x1'));var path=require(_0x0c76('0x2'));var fs=require('fs');var jayson=require(_0x0c76('0x3'));var BPromise=require(_0x0c76('0x4'));var uuid=require(_0x0c76('0x5'));var config=require('../../../config/environment');var logger=require(_0x0c76('0x6'))('routing');var rpc={'openchannelQueueReport':require(_0x0c76('0x7'))};var rpc={'openchannelQueueReport':require(_0x0c76('0x7')),'mailQueueReport':require(_0x0c76('0x8')),'chatQueueReport':require(_0x0c76('0x9')),'smsQueueReport':require(_0x0c76('0xa')),'faxQueueReport':require(_0x0c76('0xb'))};var RuleEngine=require(_0x0c76('0xc'));function getId(_0x4cf3c6,_0x5a7c06,_0x473da8){return util[_0x0c76('0xd')](_0x0c76('0xe'),_0x4cf3c6,_0x5a7c06||0x0,_0x473da8||0x0);}function getIntervals(_0x5ba06e,_0x1df531){var _0x4eee28=[];if(!_[_0x0c76('0xf')](_0x1df531[_0x0c76('0x10')])&&!_[_0x0c76('0xf')](_0x5ba06e[_0x1df531[_0x0c76('0x10')]])&&!_[_0x0c76('0xf')](_0x5ba06e[_0x1df531[_0x0c76('0x10')]][_0x0c76('0x11')])){_0x4eee28=_[_0x0c76('0x12')](_0x5ba06e[_0x1df531[_0x0c76('0x10')]]['Intervals'],_0x0c76('0x13'));}else if(!_[_0x0c76('0xf')](_0x1df531[_0x0c76('0x13')])){_0x4eee28=[_0x1df531['interval']];}return _0x4eee28;}exports[_0x0c76('0x14')]=function(_0x75207c){_0x75207c[_0x0c76('0x15')]={};return new BPromise(function(_0x1b6a0b,_0x19259f){var _0x135838={'Start':function(_0x36ecda){var _0x1cd35c=this;return new Promise(function(_0xda4ce5,_0x3416de){if(_0x36ecda){try{var _0x887b9f=[];var _0x1bc6f7=getId(_0x36ecda['channel'],_0x36ecda['message']?_0x36ecda[_0x0c76('0x16')]['id']:0x0,_0x36ecda[_0x0c76('0x17')]?_0x36ecda[_0x0c76('0x17')]['id']:0x0);if(_0x36ecda['applications']&&_['isArray'](_0x36ecda[_0x0c76('0x18')])&&_0x36ecda[_0x0c76('0x18')][_0x0c76('0x19')]){for(var _0xd4400e=0x0;_0xd4400e<_0x36ecda['applications'][_0x0c76('0x19')];_0xd4400e+=0x1){var _0xfc0d3e=_0x36ecda[_0x0c76('0x18')][_0xd4400e];if(fs['existsSync'](path[_0x0c76('0x1a')](__dirname,_0x0c76('0x18'),_0xfc0d3e[_0x0c76('0x1b')]+_0x0c76('0x1c')))){var _0x3e029e=[];switch(_0xfc0d3e[_0x0c76('0x1b')][_0x0c76('0x1d')]()){case _0x0c76('0x1e'):var _0x5c7962=_0xfc0d3e[_0x0c76('0x1f')][_0x0c76('0x20')](',');_0x3e029e['push'](_0x5c7962[0x0]);_0x3e029e[_0x0c76('0x21')](_0x5c7962[_0x0c76('0x22')](0x1,_0x5c7962[_0x0c76('0x19')])[_0x0c76('0x1a')](','));break;case _0x0c76('0x23'):var _0x2c1b31=_0xfc0d3e[_0x0c76('0x1f')][_0x0c76('0x20')](',');_0x3e029e[_0x0c76('0x21')](_0x2c1b31[0x0]);_0x3e029e[_0x0c76('0x21')](_0x2c1b31[0x1]);_0x3e029e[_0x0c76('0x21')](_0x2c1b31[_0x0c76('0x22')](0x2,_0x2c1b31['length'])[_0x0c76('0x1a')](','));break;case _0x0c76('0x24'):var _0x3a14b2=_0xfc0d3e[_0x0c76('0x1f')][_0x0c76('0x20')](',');_0x3e029e[_0x0c76('0x21')](_0x3a14b2[0x0]);_0x3e029e[_0x0c76('0x21')](_0x3a14b2[0x1]);_0x3e029e['push'](_0x3a14b2[0x2]);_0x3e029e['push'](_0x3a14b2[0x3]);_0x3e029e[_0x0c76('0x21')](_0x3a14b2['slice'](0x4,_0x3a14b2[_0x0c76('0x19')])['join'](','));break;case _0x0c76('0x16'):_0x3e029e[_0x0c76('0x21')](_0xfc0d3e[_0x0c76('0x1f')]);break;case'tag':_0x3e029e['push'](_0xfc0d3e[_0x0c76('0x25')]);_0x3e029e[_0x0c76('0x21')](_0xfc0d3e[_0x0c76('0x1f')]);break;default:_0x3e029e=_[_0x0c76('0xf')](_0xfc0d3e[_0x0c76('0x1f')])?[]:_0xfc0d3e[_0x0c76('0x1f')][_0x0c76('0x20')](',');}var _0x4c88d4={'id':util[_0x0c76('0xd')](_0x0c76('0x26'),_0x1bc6f7,_0xfc0d3e['id'],_0xfc0d3e[_0x0c76('0x1b')]),'condition':require(_0x0c76('0x27'))[_0x0c76('0x28')](_0x1bc6f7,getIntervals(_0x75207c[_0x0c76('0x29')],_0xfc0d3e),_0x75207c),'consequence':require(_0x0c76('0x2a')+_0xfc0d3e['app'])['consequence'](_0x1bc6f7,_0x3e029e,_0x75207c,_0x36ecda),'p':_0xfc0d3e['priority']||0x0};logger[_0x0c76('0x2b')](_0x0c76('0x2c'),_0x4c88d4['id'],_0x0c76('0x2d'),getIntervals(_0x75207c[_0x0c76('0x29')],_0xfc0d3e)['join']('\x20|\x20'));_0x887b9f[_0x0c76('0x21')](_0x4c88d4);}else{logger['error']('Please\x20create\x20a\x20new\x20file\x20under',path[_0x0c76('0x1a')](__dirname,_0x0c76('0x18'),_0xfc0d3e[_0x0c76('0x1b')]+_0x0c76('0x1c')));}}_0x75207c[_0x0c76('0x15')][_0x1bc6f7]=new RuleEngine(_0x887b9f);_0x75207c[_0x0c76('0x15')][_0x1bc6f7][_0x0c76('0x2e')](_0x36ecda,function(_0x201d3e){logger[_0x0c76('0x2b')](_0x0c76('0x2f'),JSON[_0x0c76('0x30')](_0x201d3e[_0x0c76('0x31')]));if(_0x75207c[_0x0c76('0x15')][_0x1bc6f7]){_0x75207c[_0x0c76('0x15')][_0x1bc6f7][_0x0c76('0x32')](_0x0c76('0x33'));}});return _0xda4ce5({'code':0xc8,'message':_0x36ecda});}else{logger[_0x0c76('0x2b')](_0x0c76('0x34'));return _0xda4ce5({'code':0xc8,'message':_0x36ecda});}}catch(_0x845a49){logger['error'](_0x845a49[_0x0c76('0x35')]);return _0x3416de(_0x1cd35c['error'](0x1f4,_0x845a49));}}return _0x3416de(_0x0c76('0x36'));});},'AcceptMessage':function(_0x20fee8){var _0x5c63dd=this;return new Promise(function(_0x3d9215,_0x1f966c){if(_0x20fee8[_0x0c76('0x16')]&&_0x20fee8['message']['id']){try{var _0x5871a6=getId(_0x20fee8[_0x0c76('0x37')],_0x20fee8[_0x0c76('0x16')]?_0x20fee8[_0x0c76('0x16')]['id']:0x0,_0x20fee8['interaction']?_0x20fee8[_0x0c76('0x17')]['id']:0x0);if(_0x75207c[_0x0c76('0x15')][_0x5871a6]){_0x75207c['rules'][_0x5871a6][_0x0c76('0x32')](_0x0c76('0x38'));if(rpc[_0x20fee8[_0x0c76('0x37')]+_0x0c76('0x39')]){rpc[_0x20fee8['channel']+_0x0c76('0x39')][_0x0c76('0x3a')](_0x5871a6,{'UserId':_0x20fee8[_0x0c76('0x16')][_0x0c76('0x3b')]})[_0x0c76('0x3c')](function(_0x48b94f){logger[_0x0c76('0x3d')](_0x0c76('0x3e'));});}}return _0x3d9215({'code':0xc8,'message':_0x20fee8});}catch(_0x2342e2){logger[_0x0c76('0x3d')](_0x2342e2[_0x0c76('0x35')]);return _0x1f966c(_0x5c63dd['error'](0x1f4,_0x2342e2));}}logger['error'](_0x0c76('0x3f'));return _0x1f966c(_0x5c63dd['error'](0x1f4,_0x0c76('0x3f')));});},'RejectMessage':function(_0x308cd2){var _0x5621ac=this;return new Promise(function(_0x3ae59c,_0xef4048){if(_0x308cd2['agent']&&_0x308cd2[_0x0c76('0x40')]['id']){try{if(_0x75207c[_0x0c76('0x41')][_0x308cd2[_0x0c76('0x40')]['id']]){_0x75207c['agents'][_0x308cd2[_0x0c76('0x40')]['id']][_0x0c76('0x42')]=![];_0x75207c[_0x0c76('0x41')][_0x308cd2[_0x0c76('0x40')]['id']][_0x0c76('0x43')]=undefined;}return _0x3ae59c({'code':0xc8,'message':_0x308cd2});}catch(_0x535288){logger[_0x0c76('0x3d')](_0x535288['stack']);return _0xef4048(_0x5621ac[_0x0c76('0x3d')](0x1f4,_0x535288));}}logger['error']('message\x20is\x20empty');return _0xef4048(_0x5621ac[_0x0c76('0x3d')](0x1f4,_0x0c76('0x3f')));});},'AbandonInteraction':function(_0x1a4588){var _0x36debf=this;return new Promise(function(_0x1a8f4a,_0x1dd367){if(_0x1a4588[_0x0c76('0x37')]&&_0x1a4588[_0x0c76('0x17')]&&_0x1a4588[_0x0c76('0x17')]['id']){try{var _0x416023=getId(_0x1a4588[_0x0c76('0x37')],_0x1a4588['message']?_0x1a4588[_0x0c76('0x16')]['id']:0x0,_0x1a4588[_0x0c76('0x17')]?_0x1a4588['interaction']['id']:0x0);if(_0x75207c[_0x0c76('0x15')][_0x416023]){_0x75207c['rules'][_0x416023][_0x0c76('0x32')](_0x0c76('0x38'));}return _0x1a8f4a({'code':0xc8,'message':_0x1a4588});}catch(_0x42d209){logger[_0x0c76('0x3d')](_0x42d209[_0x0c76('0x35')]);return _0x1dd367(_0x36debf[_0x0c76('0x3d')](0x1f4,_0x42d209));}}logger[_0x0c76('0x3d')](_0x0c76('0x3f'));return _0x1dd367(_0x36debf[_0x0c76('0x3d')](0x1f4,_0x0c76('0x3f')));});},'AgentCapacity':function(_0x2cffce){var _0x14aa64=this;return new Promise(function(_0xa68fdd,_0x345fca){if(_0x75207c[_0x0c76('0x41')][_0x0c76('0x44')](_0x2cffce['id'])){for(var _0x23a145 in _0x2cffce[_0x0c76('0x45')]){if(_0x2cffce[_0x0c76('0x45')][_0x0c76('0x44')](_0x23a145)){if(_0x75207c[_0x0c76('0x41')][_0x2cffce['id']][_0x0c76('0x44')](_0x23a145+_0x0c76('0x46'))){_0x75207c[_0x0c76('0x41')][_0x2cffce['id']][_0x23a145+_0x0c76('0x46')]=parseInt(_0x2cffce[_0x0c76('0x45')][_0x23a145],0xa);}}}_0x75207c[_0x0c76('0x41')][_0x2cffce['id']][_0x0c76('0x47')]();return _0xa68fdd({'code':0xc8,'message':_0x75207c[_0x0c76('0x41')][_0x2cffce['id']]});}else{return _0x345fca(_0x14aa64[_0x0c76('0x3d')](0x1f4,_0x0c76('0x48')));}});},'Agents':function(_0x22d70e){return new Promise(function(_0xe9143a,_0x1843c3){var _0x317116=_['values'](_0x75207c[_0x0c76('0x41')]);_0xe9143a({'count':_0x317116['length'],'rows':_0x317116});});},'ChatQueues':function(_0x2c4f0c){return new Promise(function(_0x5bdfb0,_0x388953){var _0x14ad14=[];for(var _0x243912 in _0x75207c['chatQueues']){if(_0x75207c[_0x0c76('0x49')]['hasOwnProperty'](_0x243912)){var _0x27931d=_0x75207c[_0x0c76('0x49')][_0x243912];var _0xc3dca6={'id':_0x27931d['id'],'available':_0x27931d[_0x0c76('0x4a')],'loggedIn':_0x27931d[_0x0c76('0x4b')],'name':_0x27931d['name'],'paused':_0x27931d['paused'],'waiting':_0x27931d[_0x0c76('0x4c')]};_0x14ad14['push'](_0xc3dca6);}}_0x5bdfb0({'count':_0x14ad14[_0x0c76('0x19')],'rows':_0x14ad14});});},'MailQueues':function(_0x36d372){return new Promise(function(_0x4c37c6,_0x4ac8a8){var _0x5461f6=[];for(var _0x31fd26 in _0x75207c[_0x0c76('0x4d')]){if(_0x75207c[_0x0c76('0x4d')][_0x0c76('0x44')](_0x31fd26)){var _0x10173f=_0x75207c[_0x0c76('0x4d')][_0x31fd26];var _0x48cb27={'id':_0x10173f['id'],'available':_0x10173f[_0x0c76('0x4a')],'loggedIn':_0x10173f['loggedIn'],'name':_0x10173f[_0x0c76('0x4e')],'paused':_0x10173f[_0x0c76('0x4f')],'waiting':_0x10173f[_0x0c76('0x4c')]};_0x5461f6[_0x0c76('0x21')](_0x48cb27);}}_0x4c37c6({'count':_0x5461f6[_0x0c76('0x19')],'rows':_0x5461f6});});},'OpenchannelQueues':function(_0x48aeb1){return new Promise(function(_0x503972,_0x5dacaf){var _0x392a07=[];for(var _0x202494 in _0x75207c[_0x0c76('0x50')]){if(_0x75207c[_0x0c76('0x50')][_0x0c76('0x44')](_0x202494)){var _0x37befd=_0x75207c[_0x0c76('0x50')][_0x202494];var _0x1a535e={'id':_0x37befd['id'],'available':_0x37befd[_0x0c76('0x4a')],'loggedIn':_0x37befd[_0x0c76('0x4b')],'name':_0x37befd['name'],'paused':_0x37befd['paused'],'waiting':_0x37befd[_0x0c76('0x4c')]};_0x392a07[_0x0c76('0x21')](_0x1a535e);}}_0x503972({'count':_0x392a07[_0x0c76('0x19')],'rows':_0x392a07});});},'SmsQueues':function(_0x3dd855){return new Promise(function(_0xad70ee,_0x51a7fc){var _0xf60a92=[];for(var _0x5d359e in _0x75207c[_0x0c76('0x51')]){if(_0x75207c[_0x0c76('0x51')][_0x0c76('0x44')](_0x5d359e)){var _0x332e98=_0x75207c[_0x0c76('0x51')][_0x5d359e];var _0x59bbcc={'id':_0x332e98['id'],'available':_0x332e98[_0x0c76('0x4a')],'loggedIn':_0x332e98[_0x0c76('0x4b')],'name':_0x332e98[_0x0c76('0x4e')],'paused':_0x332e98[_0x0c76('0x4f')],'waiting':_0x332e98['waiting']};_0xf60a92[_0x0c76('0x21')](_0x59bbcc);}}_0xad70ee({'count':_0xf60a92[_0x0c76('0x19')],'rows':_0xf60a92});});},'FaxQueues':function(_0x4b57d1){return new Promise(function(_0x58dde4,_0x10b901){var _0x29dca2=[];for(var _0xc3d9d8 in _0x75207c['faxQueues']){if(_0x75207c[_0x0c76('0x52')][_0x0c76('0x44')](_0xc3d9d8)){var _0x339143=_0x75207c['faxQueues'][_0xc3d9d8];var _0x325226={'id':_0x339143['id'],'available':_0x339143[_0x0c76('0x4a')],'loggedIn':_0x339143['loggedIn'],'name':_0x339143[_0x0c76('0x4e')],'paused':_0x339143[_0x0c76('0x4f')],'waiting':_0x339143[_0x0c76('0x4c')]};_0x29dca2[_0x0c76('0x21')](_0x325226);}}_0x58dde4({'count':_0x29dca2[_0x0c76('0x19')],'rows':_0x29dca2});});},'ChatQueuesWaitingInteractions':function(_0x7dae4a){return new Promise(function(_0x5be39f,_0x429906){var _0xde07d2=_[_0x0c76('0x53')](_0x75207c[_0x0c76('0x54')]);_0x5be39f({'count':_0xde07d2[_0x0c76('0x19')],'rows':_0xde07d2});});},'MailQueuesWaitingInteractions':function(_0x3fb539){return new Promise(function(_0x401371,_0x2eb6a6){var _0x3e5482=_['values'](_0x75207c[_0x0c76('0x55')]);_0x401371({'count':_0x3e5482[_0x0c76('0x19')],'rows':_0x3e5482});});},'OpenchannelQueuesWaitingInteractions':function(_0x3238a9){return new Promise(function(_0xecae06,_0x1ccd78){var _0x4b6c44=_['values'](_0x75207c[_0x0c76('0x56')]);_0xecae06({'count':_0x4b6c44[_0x0c76('0x19')],'rows':_0x4b6c44});});},'SmsQueuesWaitingInteractions':function(_0x9b743a){return new Promise(function(_0x1de731,_0x867a1e){var _0x148c1f=_['values'](_0x75207c[_0x0c76('0x57')]);_0x1de731({'count':_0x148c1f[_0x0c76('0x19')],'rows':_0x148c1f});});},'FaxQueuesWaitingInteractions':function(_0x2aa34f){return new Promise(function(_0x13797c,_0x5df089){var _0x2cbe52=_['values'](_0x75207c['faxQueuesWaitingInteractions']);_0x13797c({'count':_0x2cbe52[_0x0c76('0x19')],'rows':_0x2cbe52});});}};var _0x477490=jayson[_0x0c76('0x58')](_0x135838)['http']();_0x477490['on'](_0x0c76('0x3d'),function(_0x4cc3d){logger[_0x0c76('0x3d')](JSON[_0x0c76('0x30')](_0x4cc3d));return _0x19259f(_0x4cc3d);});_0x477490[_0x0c76('0x14')](0x232c,_0x0c76('0x59'),function(){console['log'](_0x0c76('0x5a'),0x232c);return _0x1b6a0b(_0x0c76('0x5b')+0x232c);});});};