Built motion from commit (unavailable).|2.5.4
[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 _0x366a=['waiting','mailQueues','available','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','util','path','bluebird','uuid','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','channel','message','interaction','applications','isArray','length','join','app','.js','toLowerCase','push','slice','dialogflow','appdata','split','tag','%s:%s:%s','./interval','condition','intervals','./applications/','info','Push\x20new\x20rule','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','rules','execute','stringify','matchPath','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','emit','end','QueueReport','update','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','capacity','values','chatQueues','loggedIn','name','paused'];(function(_0x2faeb9,_0x5aaa9b){var _0x41e536=function(_0x3f9caf){while(--_0x3f9caf){_0x2faeb9['push'](_0x2faeb9['shift']());}};_0x41e536(++_0x5aaa9b);}(_0x366a,0xbe));var _0xa366=function(_0x44fef1,_0x132cf4){_0x44fef1=_0x44fef1-0x0;var _0x3c3a04=_0x366a[_0x44fef1];return _0x3c3a04;};'use strict';var _=require('lodash');var util=require(_0xa366('0x0'));var path=require(_0xa366('0x1'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xa366('0x2'));var uuid=require(_0xa366('0x3'));var config=require('../../../config/environment');var logger=require(_0xa366('0x4'))(_0xa366('0x5'));var rpc={'openchannelQueueReport':require(_0xa366('0x6')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require(_0xa366('0x7')),'smsQueueReport':require(_0xa366('0x8')),'faxQueueReport':require('../rpc/faxQueueReport'),'whatsappQueueReport':require(_0xa366('0x9'))};var RuleEngine=require(_0xa366('0xa'));function getId(_0x3d9a7c,_0xee2ba,_0x3fe06c){return util[_0xa366('0xb')](_0xa366('0xc'),_0x3d9a7c,_0xee2ba||0x0,_0x3fe06c||0x0);}function getIntervals(_0x25ce4a,_0x4c652f){var _0xcec61b=[];if(!_[_0xa366('0xd')](_0x4c652f['IntervalId'])&&!_[_0xa366('0xd')](_0x25ce4a[_0x4c652f[_0xa366('0xe')]])&&!_[_0xa366('0xd')](_0x25ce4a[_0x4c652f[_0xa366('0xe')]][_0xa366('0xf')])){_0xcec61b=_[_0xa366('0x10')](_0x25ce4a[_0x4c652f[_0xa366('0xe')]]['Intervals'],_0xa366('0x11'));}else if(!_[_0xa366('0xd')](_0x4c652f[_0xa366('0x11')])){_0xcec61b=[_0x4c652f[_0xa366('0x11')]];}return _0xcec61b;}exports[_0xa366('0x12')]=function(_0x38584a){_0x38584a['rules']={};return new BPromise(function(_0x34d743,_0x231f1e){var _0x3ba66b={'Start':function(_0x2479fa){var _0x2eb2c8=this;return new Promise(function(_0x53bc15,_0x454db9){if(_0x2479fa){try{var _0x2e21f5=[];var _0x4db7ab=getId(_0x2479fa[_0xa366('0x13')],_0x2479fa[_0xa366('0x14')]?_0x2479fa[_0xa366('0x14')]['id']:0x0,_0x2479fa['interaction']?_0x2479fa[_0xa366('0x15')]['id']:0x0);if(_0x2479fa[_0xa366('0x16')]&&_[_0xa366('0x17')](_0x2479fa[_0xa366('0x16')])&&_0x2479fa['applications'][_0xa366('0x18')]){for(var _0x17cd6c=0x0;_0x17cd6c<_0x2479fa['applications']['length'];_0x17cd6c+=0x1){var _0xcbe081=_0x2479fa[_0xa366('0x16')][_0x17cd6c];if(fs['existsSync'](path[_0xa366('0x19')](__dirname,'applications',_0xcbe081[_0xa366('0x1a')]+_0xa366('0x1b')))){var _0x392207=[];switch(_0xcbe081[_0xa366('0x1a')][_0xa366('0x1c')]()){case'autoreply':var _0x47b0e1=_0xcbe081['appdata']['split'](',');_0x392207[_0xa366('0x1d')](_0x47b0e1[0x0]);_0x392207[_0xa366('0x1d')](_0x47b0e1[_0xa366('0x1e')](0x1,_0x47b0e1[_0xa366('0x18')])[_0xa366('0x19')](','));break;case _0xa366('0x1f'):var _0x3df428=_0xcbe081[_0xa366('0x20')][_0xa366('0x21')](',');_0x392207[_0xa366('0x1d')](_0x3df428[0x0]);_0x392207[_0xa366('0x1d')](_0x3df428[0x1]);_0x392207[_0xa366('0x1d')](_0x3df428[_0xa366('0x1e')](0x2,_0x3df428[_0xa366('0x18')])['join'](','));break;case'amazonlex':var _0x4ab268=_0xcbe081[_0xa366('0x20')]['split'](',');_0x392207[_0xa366('0x1d')](_0x4ab268[0x0]);_0x392207[_0xa366('0x1d')](_0x4ab268[0x1]);_0x392207['push'](_0x4ab268[0x2]);_0x392207[_0xa366('0x1d')](_0x4ab268[0x3]);_0x392207[_0xa366('0x1d')](_0x4ab268['slice'](0x4,_0x4ab268[_0xa366('0x18')])['join'](','));break;case'message':_0x392207['push'](_0xcbe081[_0xa366('0x20')]);break;case _0xa366('0x22'):_0x392207[_0xa366('0x1d')](_0xcbe081['TagId']);_0x392207[_0xa366('0x1d')](_0xcbe081[_0xa366('0x20')]);break;default:_0x392207=_['isNil'](_0xcbe081[_0xa366('0x20')])?[]:_0xcbe081['appdata'][_0xa366('0x21')](',');}var _0x59e645={'id':util[_0xa366('0xb')](_0xa366('0x23'),_0x4db7ab,_0xcbe081['id'],_0xcbe081['app']),'condition':require(_0xa366('0x24'))[_0xa366('0x25')](_0x4db7ab,getIntervals(_0x38584a[_0xa366('0x26')],_0xcbe081),_0x38584a),'consequence':require(_0xa366('0x27')+_0xcbe081['app'])['consequence'](_0x4db7ab,_0x392207,_0x38584a,_0x2479fa),'p':_0xcbe081['priority']||0x0};logger[_0xa366('0x28')](_0xa366('0x29'),_0x59e645['id'],'on\x20interval',getIntervals(_0x38584a[_0xa366('0x26')],_0xcbe081)[_0xa366('0x19')](_0xa366('0x2a')));_0x2e21f5[_0xa366('0x1d')](_0x59e645);}else{logger[_0xa366('0x2b')](_0xa366('0x2c'),path[_0xa366('0x19')](__dirname,_0xa366('0x16'),_0xcbe081[_0xa366('0x1a')]+_0xa366('0x1b')));}}_0x38584a[_0xa366('0x2d')][_0x4db7ab]=new RuleEngine(_0x2e21f5);_0x38584a['rules'][_0x4db7ab][_0xa366('0x2e')](_0x2479fa,function(_0x41d58f){logger[_0xa366('0x28')]('Applications\x20executed',JSON[_0xa366('0x2f')](_0x41d58f[_0xa366('0x30')]));if(_0x38584a[_0xa366('0x2d')][_0x4db7ab]){_0x38584a[_0xa366('0x2d')][_0x4db7ab]['emit'](_0xa366('0x31'));}});return _0x53bc15({'code':0xc8,'message':_0x2479fa});}else{logger['info'](_0xa366('0x32'));return _0x53bc15({'code':0xc8,'message':_0x2479fa});}}catch(_0x4b12c2){logger['error'](_0x4b12c2[_0xa366('0x33')]);return _0x454db9(_0x2eb2c8['error'](0x1f4,_0x4b12c2));}}return _0x454db9(_0xa366('0x34'));});},'AcceptMessage':function(_0x4107c9){var _0x4cd1ad=this;return new Promise(function(_0x3fa600,_0x1a6a96){if(_0x4107c9['message']&&_0x4107c9[_0xa366('0x14')]['id']){try{var _0x2510e0=getId(_0x4107c9[_0xa366('0x13')],_0x4107c9[_0xa366('0x14')]?_0x4107c9[_0xa366('0x14')]['id']:0x0,_0x4107c9['interaction']?_0x4107c9[_0xa366('0x15')]['id']:0x0);if(_0x38584a[_0xa366('0x2d')][_0x2510e0]){_0x38584a[_0xa366('0x2d')][_0x2510e0][_0xa366('0x35')](_0xa366('0x36'));if(rpc[_0x4107c9[_0xa366('0x13')]+_0xa366('0x37')]){rpc[_0x4107c9[_0xa366('0x13')]+_0xa366('0x37')][_0xa366('0x38')](_0x2510e0,{'UserId':_0x4107c9[_0xa366('0x14')]['UserId']})[_0xa366('0x39')](function(_0x47f692){logger[_0xa366('0x2b')](_0xa366('0x3a'));});}}return _0x3fa600({'code':0xc8,'message':_0x4107c9});}catch(_0x1af31f){logger[_0xa366('0x2b')](_0x1af31f[_0xa366('0x33')]);return _0x1a6a96(_0x4cd1ad[_0xa366('0x2b')](0x1f4,_0x1af31f));}}logger[_0xa366('0x2b')](_0xa366('0x3b'));return _0x1a6a96(_0x4cd1ad['error'](0x1f4,'message\x20is\x20empty'));});},'RejectMessage':function(_0x512959){var _0x527612=this;return new Promise(function(_0x3bdd24,_0x40b306){if(_0x512959[_0xa366('0x3c')]&&_0x512959[_0xa366('0x3c')]['id']){try{if(_0x38584a[_0xa366('0x3d')][_0x512959['agent']['id']]){_0x38584a[_0xa366('0x3d')][_0x512959[_0xa366('0x3c')]['id']][_0xa366('0x3e')]=![];_0x38584a['agents'][_0x512959[_0xa366('0x3c')]['id']][_0xa366('0x3f')]=undefined;}return _0x3bdd24({'code':0xc8,'message':_0x512959});}catch(_0x2680f2){logger[_0xa366('0x2b')](_0x2680f2[_0xa366('0x33')]);return _0x40b306(_0x527612[_0xa366('0x2b')](0x1f4,_0x2680f2));}}logger['error'](_0xa366('0x3b'));return _0x40b306(_0x527612[_0xa366('0x2b')](0x1f4,_0xa366('0x3b')));});},'AbandonInteraction':function(_0x38d1f1){var _0x4c0a70=this;return new Promise(function(_0xc25742,_0x17de30){if(_0x38d1f1['channel']&&_0x38d1f1[_0xa366('0x15')]&&_0x38d1f1[_0xa366('0x15')]['id']){try{var _0x3fc0e9=getId(_0x38d1f1['channel'],_0x38d1f1[_0xa366('0x14')]?_0x38d1f1['message']['id']:0x0,_0x38d1f1['interaction']?_0x38d1f1[_0xa366('0x15')]['id']:0x0);if(_0x38584a[_0xa366('0x2d')][_0x3fc0e9]){_0x38584a[_0xa366('0x2d')][_0x3fc0e9][_0xa366('0x35')](_0xa366('0x36'));}return _0xc25742({'code':0xc8,'message':_0x38d1f1});}catch(_0x81a44c){logger[_0xa366('0x2b')](_0x81a44c['stack']);return _0x17de30(_0x4c0a70[_0xa366('0x2b')](0x1f4,_0x81a44c));}}logger[_0xa366('0x2b')](_0xa366('0x3b'));return _0x17de30(_0x4c0a70[_0xa366('0x2b')](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x3b3b9b){var _0x50cbcf=this;return new Promise(function(_0x231be3,_0x44a523){if(_0x38584a[_0xa366('0x3d')][_0xa366('0x40')](_0x3b3b9b['id'])){for(var _0x230a69 in _0x3b3b9b['capacity']){if(_0x3b3b9b[_0xa366('0x41')]['hasOwnProperty'](_0x230a69)){if(_0x38584a[_0xa366('0x3d')][_0x3b3b9b['id']][_0xa366('0x40')](_0x230a69+'CurrentCapacity')){_0x38584a[_0xa366('0x3d')][_0x3b3b9b['id']][_0x230a69+'CurrentCapacity']=parseInt(_0x3b3b9b[_0xa366('0x41')][_0x230a69],0xa);}}}_0x38584a[_0xa366('0x3d')][_0x3b3b9b['id']]['updateRealtime']();return _0x231be3({'code':0xc8,'message':_0x38584a[_0xa366('0x3d')][_0x3b3b9b['id']]});}else{return _0x44a523(_0x50cbcf[_0xa366('0x2b')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0x184c00){return new Promise(function(_0x36cee7,_0x4faeed){var _0x110739=_[_0xa366('0x42')](_0x38584a['agents']);_0x36cee7({'count':_0x110739[_0xa366('0x18')],'rows':_0x110739});});},'ChatQueues':function(_0x5c7fe5){return new Promise(function(_0x5764a6,_0x2ab200){var _0x17923b=[];for(var _0x111d38 in _0x38584a[_0xa366('0x43')]){if(_0x38584a[_0xa366('0x43')][_0xa366('0x40')](_0x111d38)){var _0x12b591=_0x38584a[_0xa366('0x43')][_0x111d38];var _0x129a53={'id':_0x12b591['id'],'available':_0x12b591['available'],'loggedIn':_0x12b591[_0xa366('0x44')],'name':_0x12b591[_0xa366('0x45')],'paused':_0x12b591[_0xa366('0x46')],'waiting':_0x12b591[_0xa366('0x47')]};_0x17923b[_0xa366('0x1d')](_0x129a53);}}_0x5764a6({'count':_0x17923b['length'],'rows':_0x17923b});});},'MailQueues':function(_0x3ba105){return new Promise(function(_0x5194a7,_0x33ddf6){var _0x513171=[];for(var _0x2ac36b in _0x38584a[_0xa366('0x48')]){if(_0x38584a[_0xa366('0x48')][_0xa366('0x40')](_0x2ac36b)){var _0x5c23e1=_0x38584a[_0xa366('0x48')][_0x2ac36b];var _0x21d038={'id':_0x5c23e1['id'],'available':_0x5c23e1[_0xa366('0x49')],'loggedIn':_0x5c23e1[_0xa366('0x44')],'name':_0x5c23e1[_0xa366('0x45')],'paused':_0x5c23e1['paused'],'waiting':_0x5c23e1[_0xa366('0x47')]};_0x513171['push'](_0x21d038);}}_0x5194a7({'count':_0x513171[_0xa366('0x18')],'rows':_0x513171});});},'OpenchannelQueues':function(_0x2e5bfc){return new Promise(function(_0x430bf3,_0x454c9a){var _0x5793ea=[];for(var _0x5aa51b in _0x38584a['openchannelQueues']){if(_0x38584a['openchannelQueues'][_0xa366('0x40')](_0x5aa51b)){var _0x5760ba=_0x38584a[_0xa366('0x4a')][_0x5aa51b];var _0x306a37={'id':_0x5760ba['id'],'available':_0x5760ba[_0xa366('0x49')],'loggedIn':_0x5760ba[_0xa366('0x44')],'name':_0x5760ba['name'],'paused':_0x5760ba[_0xa366('0x46')],'waiting':_0x5760ba[_0xa366('0x47')]};_0x5793ea[_0xa366('0x1d')](_0x306a37);}}_0x430bf3({'count':_0x5793ea[_0xa366('0x18')],'rows':_0x5793ea});});},'SmsQueues':function(_0x1f3003){return new Promise(function(_0x22cbf3,_0x5a438a){var _0x579920=[];for(var _0x944842 in _0x38584a['smsQueues']){if(_0x38584a[_0xa366('0x4b')][_0xa366('0x40')](_0x944842)){var _0x5bbc7d=_0x38584a['smsQueues'][_0x944842];var _0x165c55={'id':_0x5bbc7d['id'],'available':_0x5bbc7d['available'],'loggedIn':_0x5bbc7d['loggedIn'],'name':_0x5bbc7d[_0xa366('0x45')],'paused':_0x5bbc7d['paused'],'waiting':_0x5bbc7d[_0xa366('0x47')]};_0x579920[_0xa366('0x1d')](_0x165c55);}}_0x22cbf3({'count':_0x579920[_0xa366('0x18')],'rows':_0x579920});});},'FaxQueues':function(_0x1a1b15){return new Promise(function(_0xdc3918,_0x55012a){var _0x2102c1=[];for(var _0x584196 in _0x38584a[_0xa366('0x4c')]){if(_0x38584a[_0xa366('0x4c')][_0xa366('0x40')](_0x584196)){var _0x3ce76b=_0x38584a['faxQueues'][_0x584196];var _0x2a359b={'id':_0x3ce76b['id'],'available':_0x3ce76b['available'],'loggedIn':_0x3ce76b['loggedIn'],'name':_0x3ce76b[_0xa366('0x45')],'paused':_0x3ce76b[_0xa366('0x46')],'waiting':_0x3ce76b[_0xa366('0x47')]};_0x2102c1['push'](_0x2a359b);}}_0xdc3918({'count':_0x2102c1[_0xa366('0x18')],'rows':_0x2102c1});});},'WhatsappQueues':function(_0x18e924){return new Promise(function(_0x1dbf5d,_0x1e881d){var _0x624b93=[];for(var _0x1c3af2 in _0x38584a[_0xa366('0x4d')]){if(_0x38584a[_0xa366('0x4d')]['hasOwnProperty'](_0x1c3af2)){var _0x4d3728=_0x38584a[_0xa366('0x4d')][_0x1c3af2];var _0x25ee3d={'id':_0x4d3728['id'],'available':_0x4d3728['available'],'loggedIn':_0x4d3728[_0xa366('0x44')],'name':_0x4d3728['name'],'paused':_0x4d3728[_0xa366('0x46')],'waiting':_0x4d3728[_0xa366('0x47')]};_0x624b93[_0xa366('0x1d')](_0x25ee3d);}}_0x1dbf5d({'count':_0x624b93[_0xa366('0x18')],'rows':_0x624b93});});},'ChatQueuesWaitingInteractions':function(_0x397d77){return new Promise(function(_0xfde85f,_0x452208){var _0x465d1a=_[_0xa366('0x42')](_0x38584a[_0xa366('0x4e')]);_0xfde85f({'count':_0x465d1a[_0xa366('0x18')],'rows':_0x465d1a});});},'MailQueuesWaitingInteractions':function(_0x86bf0a){return new Promise(function(_0x5baddf,_0x524038){var _0xf57bdc=_[_0xa366('0x42')](_0x38584a[_0xa366('0x4f')]);_0x5baddf({'count':_0xf57bdc[_0xa366('0x18')],'rows':_0xf57bdc});});},'OpenchannelQueuesWaitingInteractions':function(_0x581ac1){return new Promise(function(_0x42c6bb,_0x29c219){var _0xb4b2c3=_[_0xa366('0x42')](_0x38584a[_0xa366('0x50')]);_0x42c6bb({'count':_0xb4b2c3['length'],'rows':_0xb4b2c3});});},'SmsQueuesWaitingInteractions':function(_0x5490eb){return new Promise(function(_0x4070d3,_0x4dcf4f){var _0x5f1b9e=_[_0xa366('0x42')](_0x38584a[_0xa366('0x51')]);_0x4070d3({'count':_0x5f1b9e[_0xa366('0x18')],'rows':_0x5f1b9e});});},'FaxQueuesWaitingInteractions':function(_0x250ade){return new Promise(function(_0x152077,_0x5c485b){var _0x50a55e=_['values'](_0x38584a[_0xa366('0x52')]);_0x152077({'count':_0x50a55e[_0xa366('0x18')],'rows':_0x50a55e});});},'WhatsappQueuesWaitingInteractions':function(_0x175f65){return new Promise(function(_0x3bc2cc,_0x35f055){var _0x4df28b=_[_0xa366('0x42')](_0x38584a[_0xa366('0x53')]);_0x3bc2cc({'count':_0x4df28b['length'],'rows':_0x4df28b});});}};var _0x285308=jayson[_0xa366('0x54')](_0x3ba66b)['http']();_0x285308['on']('error',function(_0x4507c0){logger['error'](JSON[_0xa366('0x2f')](_0x4507c0));return _0x231f1e(_0x4507c0);});_0x285308[_0xa366('0x12')](0x232c,'127.0.0.1',function(){console['log'](_0xa366('0x55'),0x232c);return _0x34d743(_0xa366('0x56')+0x232c);});});};