Built motion from commit (unavailable).|2.5.6
[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 _0x63c6=['faxQueuesWaitingInteractions','server','http','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','lodash','util','bluebird','uuid','../../../config/environment','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','isNil','IntervalId','Intervals','interval','listen','rules','channel','message','interaction','isArray','applications','length','join','app','.js','toLowerCase','autoreply','appdata','split','dialogflow','push','slice','tag','TagId','./interval','intervals','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','execute','stringify','matchPath','emit','complete','error','routing\x20is\x20empty','QueueReport','UserId','catch','error\x20update\x20queue\x20report','stack','message\x20is\x20empty','agent','agents','busy','busyQueue','end','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','name','paused','waiting','mailQueues','available','openchannelQueues','smsQueues','faxQueues','whatsappQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0x63c6,0xbb));var _0x663c=function(_0x2a6eda,_0x902cab){_0x2a6eda=_0x2a6eda-0x0;var _0x48ef72=_0x63c6[_0x2a6eda];return _0x48ef72;};'use strict';var _=require(_0x663c('0x0'));var util=require(_0x663c('0x1'));var path=require('path');var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0x663c('0x2'));var uuid=require(_0x663c('0x3'));var config=require(_0x663c('0x4'));var logger=require(_0x663c('0x5'))(_0x663c('0x6'));var rpc={'openchannelQueueReport':require(_0x663c('0x7')),'mailQueueReport':require(_0x663c('0x8')),'chatQueueReport':require(_0x663c('0x9')),'smsQueueReport':require(_0x663c('0xa')),'faxQueueReport':require('../rpc/faxQueueReport'),'whatsappQueueReport':require(_0x663c('0xb'))};var RuleEngine=require(_0x663c('0xc'));function getId(_0x3eb551,_0xb32d9e,_0x5b9376){return util[_0x663c('0xd')]('%s.%s.%s',_0x3eb551,_0xb32d9e||0x0,_0x5b9376||0x0);}function getIntervals(_0x38dc88,_0x555aac){var _0x1feea6=[];if(!_[_0x663c('0xe')](_0x555aac[_0x663c('0xf')])&&!_[_0x663c('0xe')](_0x38dc88[_0x555aac[_0x663c('0xf')]])&&!_[_0x663c('0xe')](_0x38dc88[_0x555aac[_0x663c('0xf')]]['Intervals'])){_0x1feea6=_['map'](_0x38dc88[_0x555aac[_0x663c('0xf')]][_0x663c('0x10')],'interval');}else if(!_[_0x663c('0xe')](_0x555aac[_0x663c('0x11')])){_0x1feea6=[_0x555aac[_0x663c('0x11')]];}return _0x1feea6;}exports[_0x663c('0x12')]=function(_0x5ef6af){_0x5ef6af[_0x663c('0x13')]={};return new BPromise(function(_0x165454,_0x5688eb){var _0x20cf6e={'Start':function(_0x523322){var _0x44ffaa=this;return new Promise(function(_0xb1e1bf,_0x2a7b0d){if(_0x523322){try{var _0x14cb89=[];var _0x1281e3=getId(_0x523322[_0x663c('0x14')],_0x523322[_0x663c('0x15')]?_0x523322[_0x663c('0x15')]['id']:0x0,_0x523322[_0x663c('0x16')]?_0x523322[_0x663c('0x16')]['id']:0x0);if(_0x523322['applications']&&_[_0x663c('0x17')](_0x523322[_0x663c('0x18')])&&_0x523322[_0x663c('0x18')]['length']){for(var _0x137670=0x0;_0x137670<_0x523322[_0x663c('0x18')][_0x663c('0x19')];_0x137670+=0x1){var _0x44c947=_0x523322[_0x663c('0x18')][_0x137670];if(fs['existsSync'](path[_0x663c('0x1a')](__dirname,_0x663c('0x18'),_0x44c947[_0x663c('0x1b')]+_0x663c('0x1c')))){var _0x56597a=[];switch(_0x44c947['app'][_0x663c('0x1d')]()){case _0x663c('0x1e'):var _0x2f2bf0=_0x44c947[_0x663c('0x1f')][_0x663c('0x20')](',');_0x56597a['push'](_0x2f2bf0[0x0]);_0x56597a['push'](_0x2f2bf0['slice'](0x1,_0x2f2bf0[_0x663c('0x19')])[_0x663c('0x1a')](','));break;case _0x663c('0x21'):var _0x3ff83d=_0x44c947['appdata'][_0x663c('0x20')](',');_0x56597a[_0x663c('0x22')](_0x3ff83d[0x0]);_0x56597a[_0x663c('0x22')](_0x3ff83d[0x1]);_0x56597a[_0x663c('0x22')](_0x3ff83d[_0x663c('0x23')](0x2,_0x3ff83d['length'])[_0x663c('0x1a')](','));break;case'amazonlex':var _0x5ae88d=_0x44c947['appdata']['split'](',');_0x56597a[_0x663c('0x22')](_0x5ae88d[0x0]);_0x56597a['push'](_0x5ae88d[0x1]);_0x56597a[_0x663c('0x22')](_0x5ae88d[0x2]);_0x56597a[_0x663c('0x22')](_0x5ae88d[0x3]);_0x56597a[_0x663c('0x22')](_0x5ae88d[_0x663c('0x23')](0x4,_0x5ae88d[_0x663c('0x19')])[_0x663c('0x1a')](','));break;case _0x663c('0x15'):_0x56597a['push'](_0x44c947[_0x663c('0x1f')]);break;case _0x663c('0x24'):_0x56597a[_0x663c('0x22')](_0x44c947[_0x663c('0x25')]);_0x56597a[_0x663c('0x22')](_0x44c947[_0x663c('0x1f')]);break;default:_0x56597a=_['isNil'](_0x44c947[_0x663c('0x1f')])?[]:_0x44c947['appdata'][_0x663c('0x20')](',');}var _0x4df9ad={'id':util['format']('%s:%s:%s',_0x1281e3,_0x44c947['id'],_0x44c947[_0x663c('0x1b')]),'condition':require(_0x663c('0x26'))['condition'](_0x1281e3,getIntervals(_0x5ef6af[_0x663c('0x27')],_0x44c947),_0x5ef6af),'consequence':require(_0x663c('0x28')+_0x44c947['app'])[_0x663c('0x29')](_0x1281e3,_0x56597a,_0x5ef6af,_0x523322),'p':_0x44c947[_0x663c('0x2a')]||0x0};logger[_0x663c('0x2b')](_0x663c('0x2c'),_0x4df9ad['id'],_0x663c('0x2d'),getIntervals(_0x5ef6af['intervals'],_0x44c947)[_0x663c('0x1a')](_0x663c('0x2e')));_0x14cb89[_0x663c('0x22')](_0x4df9ad);}else{logger['error'](_0x663c('0x2f'),path[_0x663c('0x1a')](__dirname,_0x663c('0x18'),_0x44c947[_0x663c('0x1b')]+'.js'));}}_0x5ef6af[_0x663c('0x13')][_0x1281e3]=new RuleEngine(_0x14cb89);_0x5ef6af[_0x663c('0x13')][_0x1281e3][_0x663c('0x30')](_0x523322,function(_0xd16d2){logger['info']('Applications\x20executed',JSON[_0x663c('0x31')](_0xd16d2[_0x663c('0x32')]));if(_0x5ef6af['rules'][_0x1281e3]){_0x5ef6af[_0x663c('0x13')][_0x1281e3][_0x663c('0x33')](_0x663c('0x34'));}});return _0xb1e1bf({'code':0xc8,'message':_0x523322});}else{logger[_0x663c('0x2b')]('No\x20applications\x20to\x20execute');return _0xb1e1bf({'code':0xc8,'message':_0x523322});}}catch(_0x2ab331){logger[_0x663c('0x35')](_0x2ab331['stack']);return _0x2a7b0d(_0x44ffaa['error'](0x1f4,_0x2ab331));}}return _0x2a7b0d(_0x663c('0x36'));});},'AcceptMessage':function(_0x3342f){var _0x2a3bf5=this;return new Promise(function(_0x5cc067,_0x51b931){if(_0x3342f['message']&&_0x3342f[_0x663c('0x15')]['id']){try{var _0x595831=getId(_0x3342f[_0x663c('0x14')],_0x3342f[_0x663c('0x15')]?_0x3342f[_0x663c('0x15')]['id']:0x0,_0x3342f['interaction']?_0x3342f[_0x663c('0x16')]['id']:0x0);if(_0x5ef6af[_0x663c('0x13')][_0x595831]){_0x5ef6af[_0x663c('0x13')][_0x595831][_0x663c('0x33')]('end');if(rpc[_0x3342f[_0x663c('0x14')]+_0x663c('0x37')]){rpc[_0x3342f[_0x663c('0x14')]+_0x663c('0x37')]['update'](_0x595831,{'UserId':_0x3342f[_0x663c('0x15')][_0x663c('0x38')]})[_0x663c('0x39')](function(_0x5eaeb7){logger[_0x663c('0x35')](_0x663c('0x3a'));});}}return _0x5cc067({'code':0xc8,'message':_0x3342f});}catch(_0x92bab2){logger['error'](_0x92bab2[_0x663c('0x3b')]);return _0x51b931(_0x2a3bf5['error'](0x1f4,_0x92bab2));}}logger[_0x663c('0x35')]('message\x20is\x20empty');return _0x51b931(_0x2a3bf5[_0x663c('0x35')](0x1f4,_0x663c('0x3c')));});},'RejectMessage':function(_0x188e12){var _0x53e821=this;return new Promise(function(_0x31f0a5,_0x20719d){if(_0x188e12[_0x663c('0x3d')]&&_0x188e12['agent']['id']){try{if(_0x5ef6af[_0x663c('0x3e')][_0x188e12['agent']['id']]){_0x5ef6af[_0x663c('0x3e')][_0x188e12[_0x663c('0x3d')]['id']][_0x663c('0x3f')]=![];_0x5ef6af['agents'][_0x188e12[_0x663c('0x3d')]['id']][_0x663c('0x40')]=undefined;}return _0x31f0a5({'code':0xc8,'message':_0x188e12});}catch(_0x249156){logger[_0x663c('0x35')](_0x249156[_0x663c('0x3b')]);return _0x20719d(_0x53e821[_0x663c('0x35')](0x1f4,_0x249156));}}logger[_0x663c('0x35')](_0x663c('0x3c'));return _0x20719d(_0x53e821[_0x663c('0x35')](0x1f4,'message\x20is\x20empty'));});},'AbandonInteraction':function(_0x10632d){var _0x17aaa2=this;return new Promise(function(_0x13c65e,_0x7c027c){if(_0x10632d[_0x663c('0x14')]&&_0x10632d[_0x663c('0x16')]&&_0x10632d[_0x663c('0x16')]['id']){try{var _0x50aa9e=getId(_0x10632d[_0x663c('0x14')],_0x10632d[_0x663c('0x15')]?_0x10632d[_0x663c('0x15')]['id']:0x0,_0x10632d[_0x663c('0x16')]?_0x10632d[_0x663c('0x16')]['id']:0x0);if(_0x5ef6af[_0x663c('0x13')][_0x50aa9e]){_0x5ef6af['rules'][_0x50aa9e][_0x663c('0x33')](_0x663c('0x41'));}return _0x13c65e({'code':0xc8,'message':_0x10632d});}catch(_0x3ae509){logger['error'](_0x3ae509[_0x663c('0x3b')]);return _0x7c027c(_0x17aaa2['error'](0x1f4,_0x3ae509));}}logger[_0x663c('0x35')](_0x663c('0x3c'));return _0x7c027c(_0x17aaa2[_0x663c('0x35')](0x1f4,_0x663c('0x3c')));});},'AgentCapacity':function(_0x4cb522){var _0x488e1d=this;return new Promise(function(_0x167e07,_0x1d4619){if(_0x5ef6af[_0x663c('0x3e')][_0x663c('0x42')](_0x4cb522['id'])){for(var _0x39b59b in _0x4cb522[_0x663c('0x43')]){if(_0x4cb522[_0x663c('0x43')][_0x663c('0x42')](_0x39b59b)){if(_0x5ef6af[_0x663c('0x3e')][_0x4cb522['id']][_0x663c('0x42')](_0x39b59b+_0x663c('0x44'))){_0x5ef6af[_0x663c('0x3e')][_0x4cb522['id']][_0x39b59b+'CurrentCapacity']=parseInt(_0x4cb522['capacity'][_0x39b59b],0xa);}}}_0x5ef6af[_0x663c('0x3e')][_0x4cb522['id']][_0x663c('0x45')]();return _0x167e07({'code':0xc8,'message':_0x5ef6af['agents'][_0x4cb522['id']]});}else{return _0x1d4619(_0x488e1d[_0x663c('0x35')](0x1f4,_0x663c('0x46')));}});},'Agents':function(_0x4376af){return new Promise(function(_0x5ddd18,_0x48d7d3){var _0x5def2f=_[_0x663c('0x47')](_0x5ef6af[_0x663c('0x3e')]);_0x5ddd18({'count':_0x5def2f['length'],'rows':_0x5def2f});});},'ChatQueues':function(_0x154f11){return new Promise(function(_0x29e1f8,_0x5230ec){var _0xa375e1=[];for(var _0x213c0a in _0x5ef6af['chatQueues']){if(_0x5ef6af['chatQueues'][_0x663c('0x42')](_0x213c0a)){var _0x47e512=_0x5ef6af[_0x663c('0x48')][_0x213c0a];var _0x367528={'id':_0x47e512['id'],'available':_0x47e512['available'],'loggedIn':_0x47e512[_0x663c('0x49')],'name':_0x47e512[_0x663c('0x4a')],'paused':_0x47e512[_0x663c('0x4b')],'waiting':_0x47e512[_0x663c('0x4c')]};_0xa375e1[_0x663c('0x22')](_0x367528);}}_0x29e1f8({'count':_0xa375e1[_0x663c('0x19')],'rows':_0xa375e1});});},'MailQueues':function(_0x14fad7){return new Promise(function(_0xde3768,_0x423586){var _0x387261=[];for(var _0xba46bc in _0x5ef6af[_0x663c('0x4d')]){if(_0x5ef6af[_0x663c('0x4d')][_0x663c('0x42')](_0xba46bc)){var _0x5a1e34=_0x5ef6af['mailQueues'][_0xba46bc];var _0x2a632e={'id':_0x5a1e34['id'],'available':_0x5a1e34[_0x663c('0x4e')],'loggedIn':_0x5a1e34['loggedIn'],'name':_0x5a1e34[_0x663c('0x4a')],'paused':_0x5a1e34[_0x663c('0x4b')],'waiting':_0x5a1e34[_0x663c('0x4c')]};_0x387261[_0x663c('0x22')](_0x2a632e);}}_0xde3768({'count':_0x387261['length'],'rows':_0x387261});});},'OpenchannelQueues':function(_0x24973f){return new Promise(function(_0x574642,_0x4eacb0){var _0x213261=[];for(var _0x37014b in _0x5ef6af[_0x663c('0x4f')]){if(_0x5ef6af['openchannelQueues'][_0x663c('0x42')](_0x37014b)){var _0x4050c5=_0x5ef6af[_0x663c('0x4f')][_0x37014b];var _0x21df19={'id':_0x4050c5['id'],'available':_0x4050c5[_0x663c('0x4e')],'loggedIn':_0x4050c5[_0x663c('0x49')],'name':_0x4050c5[_0x663c('0x4a')],'paused':_0x4050c5[_0x663c('0x4b')],'waiting':_0x4050c5[_0x663c('0x4c')]};_0x213261[_0x663c('0x22')](_0x21df19);}}_0x574642({'count':_0x213261[_0x663c('0x19')],'rows':_0x213261});});},'SmsQueues':function(_0x512a75){return new Promise(function(_0x325ae0,_0x4bdf6f){var _0x1b5f39=[];for(var _0x22a070 in _0x5ef6af[_0x663c('0x50')]){if(_0x5ef6af['smsQueues'][_0x663c('0x42')](_0x22a070)){var _0x536d75=_0x5ef6af['smsQueues'][_0x22a070];var _0x455ea3={'id':_0x536d75['id'],'available':_0x536d75['available'],'loggedIn':_0x536d75['loggedIn'],'name':_0x536d75[_0x663c('0x4a')],'paused':_0x536d75[_0x663c('0x4b')],'waiting':_0x536d75['waiting']};_0x1b5f39[_0x663c('0x22')](_0x455ea3);}}_0x325ae0({'count':_0x1b5f39[_0x663c('0x19')],'rows':_0x1b5f39});});},'FaxQueues':function(_0x5bb24e){return new Promise(function(_0x5034d7,_0x170fcb){var _0x424bab=[];for(var _0x398cd7 in _0x5ef6af[_0x663c('0x51')]){if(_0x5ef6af[_0x663c('0x51')][_0x663c('0x42')](_0x398cd7)){var _0xe62707=_0x5ef6af['faxQueues'][_0x398cd7];var _0x16a1d6={'id':_0xe62707['id'],'available':_0xe62707['available'],'loggedIn':_0xe62707[_0x663c('0x49')],'name':_0xe62707[_0x663c('0x4a')],'paused':_0xe62707[_0x663c('0x4b')],'waiting':_0xe62707['waiting']};_0x424bab[_0x663c('0x22')](_0x16a1d6);}}_0x5034d7({'count':_0x424bab[_0x663c('0x19')],'rows':_0x424bab});});},'WhatsappQueues':function(_0x2e8ca1){return new Promise(function(_0x2b740c,_0x63035a){var _0x1f6f7d=[];for(var _0x30a30b in _0x5ef6af[_0x663c('0x52')]){if(_0x5ef6af[_0x663c('0x52')][_0x663c('0x42')](_0x30a30b)){var _0x1b63d1=_0x5ef6af[_0x663c('0x52')][_0x30a30b];var _0x38efea={'id':_0x1b63d1['id'],'available':_0x1b63d1[_0x663c('0x4e')],'loggedIn':_0x1b63d1[_0x663c('0x49')],'name':_0x1b63d1['name'],'paused':_0x1b63d1[_0x663c('0x4b')],'waiting':_0x1b63d1[_0x663c('0x4c')]};_0x1f6f7d[_0x663c('0x22')](_0x38efea);}}_0x2b740c({'count':_0x1f6f7d['length'],'rows':_0x1f6f7d});});},'ChatQueuesWaitingInteractions':function(_0x9c9d18){return new Promise(function(_0x5efd40,_0x45b626){var _0x596a59=_[_0x663c('0x47')](_0x5ef6af['chatQueuesWaitingInteractions']);_0x5efd40({'count':_0x596a59[_0x663c('0x19')],'rows':_0x596a59});});},'MailQueuesWaitingInteractions':function(_0x125d46){return new Promise(function(_0x15cb30,_0x1428e1){var _0x436481=_[_0x663c('0x47')](_0x5ef6af[_0x663c('0x53')]);_0x15cb30({'count':_0x436481[_0x663c('0x19')],'rows':_0x436481});});},'OpenchannelQueuesWaitingInteractions':function(_0xc36806){return new Promise(function(_0x4a84a8,_0x16fccb){var _0x5dbbfc=_[_0x663c('0x47')](_0x5ef6af[_0x663c('0x54')]);_0x4a84a8({'count':_0x5dbbfc[_0x663c('0x19')],'rows':_0x5dbbfc});});},'SmsQueuesWaitingInteractions':function(_0x4a643c){return new Promise(function(_0x1af33e,_0x39e209){var _0x57e873=_[_0x663c('0x47')](_0x5ef6af[_0x663c('0x55')]);_0x1af33e({'count':_0x57e873['length'],'rows':_0x57e873});});},'FaxQueuesWaitingInteractions':function(_0x21b70f){return new Promise(function(_0x45a4ba,_0x40cd62){var _0x258231=_[_0x663c('0x47')](_0x5ef6af[_0x663c('0x56')]);_0x45a4ba({'count':_0x258231[_0x663c('0x19')],'rows':_0x258231});});},'WhatsappQueuesWaitingInteractions':function(_0x321527){return new Promise(function(_0x635eea,_0x5a9366){var _0x342d11=_[_0x663c('0x47')](_0x5ef6af['whatsappQueuesWaitingInteractions']);_0x635eea({'count':_0x342d11[_0x663c('0x19')],'rows':_0x342d11});});}};var _0xa59bfc=jayson[_0x663c('0x57')](_0x20cf6e)[_0x663c('0x58')]();_0xa59bfc['on']('error',function(_0xc11b6){logger[_0x663c('0x35')](JSON[_0x663c('0x31')](_0xc11b6));return _0x5688eb(_0xc11b6);});_0xa59bfc[_0x663c('0x12')](0x232c,'127.0.0.1',function(){console[_0x663c('0x59')](_0x663c('0x5a'),0x232c);return _0x165454('RPC\x20listening\x20on\x20port:'+0x232c);});});};