Built motion from commit (unavailable).|2.5.3
[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 _0x59e5=['No\x20applications\x20to\x20execute','error','stack','routing\x20is\x20empty','end','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','CurrentCapacity','capacity','values','chatQueues','available','loggedIn','name','waiting','mailQueues','paused','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','stringify','log','RPC\x20listening\x20on\x20port:','path','bluebird','uuid','../../../config/environment','routing','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','channel','message','interaction','isArray','applications','length','existsSync','join','app','.js','toLowerCase','autoreply','appdata','split','push','slice','dialogflow','tag','TagId','%s:%s:%s','./interval','intervals','./applications/','consequence','info','on\x20interval','execute','matchPath','emit','complete'];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0x59e5,0x123));var _0x559e=function(_0x2ba104,_0xe035a7){_0x2ba104=_0x2ba104-0x0;var _0x347666=_0x59e5[_0x2ba104];return _0x347666;};'use strict';var _=require('lodash');var util=require('util');var path=require(_0x559e('0x0'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0x559e('0x1'));var uuid=require(_0x559e('0x2'));var config=require(_0x559e('0x3'));var logger=require('../../../config/logger')(_0x559e('0x4'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport'),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require('../rpc/chatQueueReport'),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require('../rpc/faxQueueReport'),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0x559e('0x5'));function getId(_0x5788ac,_0x45ddcb,_0x36505f){return util[_0x559e('0x6')](_0x559e('0x7'),_0x5788ac,_0x45ddcb||0x0,_0x36505f||0x0);}function getIntervals(_0x2704c1,_0x3e7c48){var _0x5e438a=[];if(!_[_0x559e('0x8')](_0x3e7c48['IntervalId'])&&!_[_0x559e('0x8')](_0x2704c1[_0x3e7c48[_0x559e('0x9')]])&&!_[_0x559e('0x8')](_0x2704c1[_0x3e7c48[_0x559e('0x9')]][_0x559e('0xa')])){_0x5e438a=_[_0x559e('0xb')](_0x2704c1[_0x3e7c48[_0x559e('0x9')]][_0x559e('0xa')],_0x559e('0xc'));}else if(!_[_0x559e('0x8')](_0x3e7c48[_0x559e('0xc')])){_0x5e438a=[_0x3e7c48[_0x559e('0xc')]];}return _0x5e438a;}exports[_0x559e('0xd')]=function(_0x32c3f5){_0x32c3f5[_0x559e('0xe')]={};return new BPromise(function(_0x4650b8,_0x1f71d8){var _0x1a7279={'Start':function(_0x127de){var _0x141fac=this;return new Promise(function(_0x42c1cb,_0x426821){if(_0x127de){try{var _0x17f4dc=[];var _0x50e352=getId(_0x127de[_0x559e('0xf')],_0x127de['message']?_0x127de[_0x559e('0x10')]['id']:0x0,_0x127de[_0x559e('0x11')]?_0x127de[_0x559e('0x11')]['id']:0x0);if(_0x127de['applications']&&_[_0x559e('0x12')](_0x127de[_0x559e('0x13')])&&_0x127de['applications'][_0x559e('0x14')]){for(var _0x2da9d8=0x0;_0x2da9d8<_0x127de[_0x559e('0x13')]['length'];_0x2da9d8+=0x1){var _0x3b9c4c=_0x127de[_0x559e('0x13')][_0x2da9d8];if(fs[_0x559e('0x15')](path[_0x559e('0x16')](__dirname,'applications',_0x3b9c4c[_0x559e('0x17')]+_0x559e('0x18')))){var _0x5ed8d9=[];switch(_0x3b9c4c[_0x559e('0x17')][_0x559e('0x19')]()){case _0x559e('0x1a'):var _0x37e4d2=_0x3b9c4c[_0x559e('0x1b')][_0x559e('0x1c')](',');_0x5ed8d9[_0x559e('0x1d')](_0x37e4d2[0x0]);_0x5ed8d9[_0x559e('0x1d')](_0x37e4d2[_0x559e('0x1e')](0x1,_0x37e4d2[_0x559e('0x14')])[_0x559e('0x16')](','));break;case _0x559e('0x1f'):var _0x559da5=_0x3b9c4c['appdata'][_0x559e('0x1c')](',');_0x5ed8d9[_0x559e('0x1d')](_0x559da5[0x0]);_0x5ed8d9['push'](_0x559da5[0x1]);_0x5ed8d9[_0x559e('0x1d')](_0x559da5['slice'](0x2,_0x559da5[_0x559e('0x14')])['join'](','));break;case'amazonlex':var _0x304b9c=_0x3b9c4c[_0x559e('0x1b')][_0x559e('0x1c')](',');_0x5ed8d9[_0x559e('0x1d')](_0x304b9c[0x0]);_0x5ed8d9[_0x559e('0x1d')](_0x304b9c[0x1]);_0x5ed8d9[_0x559e('0x1d')](_0x304b9c[0x2]);_0x5ed8d9['push'](_0x304b9c[0x3]);_0x5ed8d9[_0x559e('0x1d')](_0x304b9c[_0x559e('0x1e')](0x4,_0x304b9c['length'])['join'](','));break;case'message':_0x5ed8d9[_0x559e('0x1d')](_0x3b9c4c['appdata']);break;case _0x559e('0x20'):_0x5ed8d9[_0x559e('0x1d')](_0x3b9c4c[_0x559e('0x21')]);_0x5ed8d9['push'](_0x3b9c4c[_0x559e('0x1b')]);break;default:_0x5ed8d9=_[_0x559e('0x8')](_0x3b9c4c[_0x559e('0x1b')])?[]:_0x3b9c4c[_0x559e('0x1b')][_0x559e('0x1c')](',');}var _0x432e78={'id':util[_0x559e('0x6')](_0x559e('0x22'),_0x50e352,_0x3b9c4c['id'],_0x3b9c4c[_0x559e('0x17')]),'condition':require(_0x559e('0x23'))['condition'](_0x50e352,getIntervals(_0x32c3f5[_0x559e('0x24')],_0x3b9c4c),_0x32c3f5),'consequence':require(_0x559e('0x25')+_0x3b9c4c[_0x559e('0x17')])[_0x559e('0x26')](_0x50e352,_0x5ed8d9,_0x32c3f5,_0x127de),'p':_0x3b9c4c['priority']||0x0};logger[_0x559e('0x27')]('Push\x20new\x20rule',_0x432e78['id'],_0x559e('0x28'),getIntervals(_0x32c3f5[_0x559e('0x24')],_0x3b9c4c)['join']('\x20|\x20'));_0x17f4dc[_0x559e('0x1d')](_0x432e78);}else{logger['error']('Please\x20create\x20a\x20new\x20file\x20under',path[_0x559e('0x16')](__dirname,_0x559e('0x13'),_0x3b9c4c[_0x559e('0x17')]+_0x559e('0x18')));}}_0x32c3f5[_0x559e('0xe')][_0x50e352]=new RuleEngine(_0x17f4dc);_0x32c3f5[_0x559e('0xe')][_0x50e352][_0x559e('0x29')](_0x127de,function(_0x22c4f4){logger[_0x559e('0x27')]('Applications\x20executed',JSON['stringify'](_0x22c4f4[_0x559e('0x2a')]));if(_0x32c3f5[_0x559e('0xe')][_0x50e352]){_0x32c3f5[_0x559e('0xe')][_0x50e352][_0x559e('0x2b')](_0x559e('0x2c'));}});return _0x42c1cb({'code':0xc8,'message':_0x127de});}else{logger['info'](_0x559e('0x2d'));return _0x42c1cb({'code':0xc8,'message':_0x127de});}}catch(_0x212b90){logger[_0x559e('0x2e')](_0x212b90[_0x559e('0x2f')]);return _0x426821(_0x141fac['error'](0x1f4,_0x212b90));}}return _0x426821(_0x559e('0x30'));});},'AcceptMessage':function(_0x5dbffe){var _0x5b4d15=this;return new Promise(function(_0xee2d51,_0x162487){if(_0x5dbffe['message']&&_0x5dbffe[_0x559e('0x10')]['id']){try{var _0x4e1a19=getId(_0x5dbffe[_0x559e('0xf')],_0x5dbffe['message']?_0x5dbffe[_0x559e('0x10')]['id']:0x0,_0x5dbffe[_0x559e('0x11')]?_0x5dbffe[_0x559e('0x11')]['id']:0x0);if(_0x32c3f5['rules'][_0x4e1a19]){_0x32c3f5[_0x559e('0xe')][_0x4e1a19]['emit'](_0x559e('0x31'));if(rpc[_0x5dbffe['channel']+_0x559e('0x32')]){rpc[_0x5dbffe['channel']+_0x559e('0x32')][_0x559e('0x33')](_0x4e1a19,{'UserId':_0x5dbffe['message'][_0x559e('0x34')]})[_0x559e('0x35')](function(_0x33c60f){logger[_0x559e('0x2e')](_0x559e('0x36'));});}}return _0xee2d51({'code':0xc8,'message':_0x5dbffe});}catch(_0x56c8ea){logger[_0x559e('0x2e')](_0x56c8ea[_0x559e('0x2f')]);return _0x162487(_0x5b4d15[_0x559e('0x2e')](0x1f4,_0x56c8ea));}}logger[_0x559e('0x2e')](_0x559e('0x37'));return _0x162487(_0x5b4d15[_0x559e('0x2e')](0x1f4,_0x559e('0x37')));});},'RejectMessage':function(_0x428811){var _0x7e6fec=this;return new Promise(function(_0x3e2fd0,_0x259a65){if(_0x428811[_0x559e('0x38')]&&_0x428811[_0x559e('0x38')]['id']){try{if(_0x32c3f5[_0x559e('0x39')][_0x428811[_0x559e('0x38')]['id']]){_0x32c3f5['agents'][_0x428811[_0x559e('0x38')]['id']][_0x559e('0x3a')]=![];_0x32c3f5[_0x559e('0x39')][_0x428811['agent']['id']][_0x559e('0x3b')]=undefined;}return _0x3e2fd0({'code':0xc8,'message':_0x428811});}catch(_0x173709){logger[_0x559e('0x2e')](_0x173709['stack']);return _0x259a65(_0x7e6fec['error'](0x1f4,_0x173709));}}logger[_0x559e('0x2e')]('message\x20is\x20empty');return _0x259a65(_0x7e6fec[_0x559e('0x2e')](0x1f4,_0x559e('0x37')));});},'AbandonInteraction':function(_0x21f05d){var _0x42b587=this;return new Promise(function(_0x5e4761,_0x2ae77e){if(_0x21f05d['channel']&&_0x21f05d[_0x559e('0x11')]&&_0x21f05d[_0x559e('0x11')]['id']){try{var _0x27b226=getId(_0x21f05d['channel'],_0x21f05d['message']?_0x21f05d[_0x559e('0x10')]['id']:0x0,_0x21f05d['interaction']?_0x21f05d[_0x559e('0x11')]['id']:0x0);if(_0x32c3f5[_0x559e('0xe')][_0x27b226]){_0x32c3f5[_0x559e('0xe')][_0x27b226][_0x559e('0x2b')](_0x559e('0x31'));}return _0x5e4761({'code':0xc8,'message':_0x21f05d});}catch(_0xfe2010){logger[_0x559e('0x2e')](_0xfe2010[_0x559e('0x2f')]);return _0x2ae77e(_0x42b587[_0x559e('0x2e')](0x1f4,_0xfe2010));}}logger[_0x559e('0x2e')](_0x559e('0x37'));return _0x2ae77e(_0x42b587[_0x559e('0x2e')](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x5f4df2){var _0x5150c8=this;return new Promise(function(_0x4f741e,_0x249d86){if(_0x32c3f5['agents'][_0x559e('0x3c')](_0x5f4df2['id'])){for(var _0x49ff70 in _0x5f4df2['capacity']){if(_0x5f4df2['capacity'][_0x559e('0x3c')](_0x49ff70)){if(_0x32c3f5[_0x559e('0x39')][_0x5f4df2['id']][_0x559e('0x3c')](_0x49ff70+_0x559e('0x3d'))){_0x32c3f5['agents'][_0x5f4df2['id']][_0x49ff70+_0x559e('0x3d')]=parseInt(_0x5f4df2[_0x559e('0x3e')][_0x49ff70],0xa);}}}_0x32c3f5[_0x559e('0x39')][_0x5f4df2['id']]['updateRealtime']();return _0x4f741e({'code':0xc8,'message':_0x32c3f5[_0x559e('0x39')][_0x5f4df2['id']]});}else{return _0x249d86(_0x5150c8['error'](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0xb97c81){return new Promise(function(_0x8420b,_0x5daaf0){var _0x4f3c8e=_[_0x559e('0x3f')](_0x32c3f5['agents']);_0x8420b({'count':_0x4f3c8e[_0x559e('0x14')],'rows':_0x4f3c8e});});},'ChatQueues':function(_0xb21d5f){return new Promise(function(_0x473639,_0x1edb59){var _0x5a1c16=[];for(var _0x246043 in _0x32c3f5[_0x559e('0x40')]){if(_0x32c3f5['chatQueues'][_0x559e('0x3c')](_0x246043)){var _0x3a9f5f=_0x32c3f5['chatQueues'][_0x246043];var _0x3d7f42={'id':_0x3a9f5f['id'],'available':_0x3a9f5f[_0x559e('0x41')],'loggedIn':_0x3a9f5f[_0x559e('0x42')],'name':_0x3a9f5f[_0x559e('0x43')],'paused':_0x3a9f5f['paused'],'waiting':_0x3a9f5f[_0x559e('0x44')]};_0x5a1c16[_0x559e('0x1d')](_0x3d7f42);}}_0x473639({'count':_0x5a1c16[_0x559e('0x14')],'rows':_0x5a1c16});});},'MailQueues':function(_0x2f0d90){return new Promise(function(_0xaff92a,_0x5c7be9){var _0x48d3b3=[];for(var _0x30151b in _0x32c3f5['mailQueues']){if(_0x32c3f5[_0x559e('0x45')][_0x559e('0x3c')](_0x30151b)){var _0x86ba58=_0x32c3f5[_0x559e('0x45')][_0x30151b];var _0x3ba113={'id':_0x86ba58['id'],'available':_0x86ba58[_0x559e('0x41')],'loggedIn':_0x86ba58[_0x559e('0x42')],'name':_0x86ba58['name'],'paused':_0x86ba58[_0x559e('0x46')],'waiting':_0x86ba58[_0x559e('0x44')]};_0x48d3b3[_0x559e('0x1d')](_0x3ba113);}}_0xaff92a({'count':_0x48d3b3[_0x559e('0x14')],'rows':_0x48d3b3});});},'OpenchannelQueues':function(_0x5d83ba){return new Promise(function(_0x29e370,_0x4bf18c){var _0x59eaa3=[];for(var _0x503588 in _0x32c3f5['openchannelQueues']){if(_0x32c3f5['openchannelQueues'][_0x559e('0x3c')](_0x503588)){var _0x4cd570=_0x32c3f5[_0x559e('0x47')][_0x503588];var _0x37929c={'id':_0x4cd570['id'],'available':_0x4cd570[_0x559e('0x41')],'loggedIn':_0x4cd570[_0x559e('0x42')],'name':_0x4cd570[_0x559e('0x43')],'paused':_0x4cd570[_0x559e('0x46')],'waiting':_0x4cd570[_0x559e('0x44')]};_0x59eaa3['push'](_0x37929c);}}_0x29e370({'count':_0x59eaa3[_0x559e('0x14')],'rows':_0x59eaa3});});},'SmsQueues':function(_0x5ea400){return new Promise(function(_0x38bc9c,_0x295593){var _0xb252b8=[];for(var _0x69f8fa in _0x32c3f5[_0x559e('0x48')]){if(_0x32c3f5[_0x559e('0x48')]['hasOwnProperty'](_0x69f8fa)){var _0x58ea6d=_0x32c3f5[_0x559e('0x48')][_0x69f8fa];var _0x14059c={'id':_0x58ea6d['id'],'available':_0x58ea6d['available'],'loggedIn':_0x58ea6d[_0x559e('0x42')],'name':_0x58ea6d['name'],'paused':_0x58ea6d['paused'],'waiting':_0x58ea6d[_0x559e('0x44')]};_0xb252b8[_0x559e('0x1d')](_0x14059c);}}_0x38bc9c({'count':_0xb252b8['length'],'rows':_0xb252b8});});},'FaxQueues':function(_0x32d536){return new Promise(function(_0xa36503,_0x5976aa){var _0x1a5a84=[];for(var _0x5131e2 in _0x32c3f5[_0x559e('0x49')]){if(_0x32c3f5[_0x559e('0x49')][_0x559e('0x3c')](_0x5131e2)){var _0x3d235f=_0x32c3f5[_0x559e('0x49')][_0x5131e2];var _0x1e3c5f={'id':_0x3d235f['id'],'available':_0x3d235f['available'],'loggedIn':_0x3d235f[_0x559e('0x42')],'name':_0x3d235f[_0x559e('0x43')],'paused':_0x3d235f[_0x559e('0x46')],'waiting':_0x3d235f[_0x559e('0x44')]};_0x1a5a84[_0x559e('0x1d')](_0x1e3c5f);}}_0xa36503({'count':_0x1a5a84['length'],'rows':_0x1a5a84});});},'WhatsappQueues':function(_0x187518){return new Promise(function(_0x27ad1f,_0x29d937){var _0x1614a6=[];for(var _0x24e81d in _0x32c3f5[_0x559e('0x4a')]){if(_0x32c3f5['whatsappQueues'][_0x559e('0x3c')](_0x24e81d)){var _0x4011e2=_0x32c3f5[_0x559e('0x4a')][_0x24e81d];var _0x389f70={'id':_0x4011e2['id'],'available':_0x4011e2['available'],'loggedIn':_0x4011e2[_0x559e('0x42')],'name':_0x4011e2[_0x559e('0x43')],'paused':_0x4011e2[_0x559e('0x46')],'waiting':_0x4011e2[_0x559e('0x44')]};_0x1614a6[_0x559e('0x1d')](_0x389f70);}}_0x27ad1f({'count':_0x1614a6[_0x559e('0x14')],'rows':_0x1614a6});});},'ChatQueuesWaitingInteractions':function(_0x2db524){return new Promise(function(_0x628365,_0xd98ff8){var _0x56477f=_['values'](_0x32c3f5[_0x559e('0x4b')]);_0x628365({'count':_0x56477f[_0x559e('0x14')],'rows':_0x56477f});});},'MailQueuesWaitingInteractions':function(_0x446a10){return new Promise(function(_0x48656e,_0x599dd3){var _0x1141d1=_[_0x559e('0x3f')](_0x32c3f5['mailQueuesWaitingInteractions']);_0x48656e({'count':_0x1141d1[_0x559e('0x14')],'rows':_0x1141d1});});},'OpenchannelQueuesWaitingInteractions':function(_0x45d6b4){return new Promise(function(_0x29a212,_0x3f4ed3){var _0x2719aa=_['values'](_0x32c3f5[_0x559e('0x4c')]);_0x29a212({'count':_0x2719aa['length'],'rows':_0x2719aa});});},'SmsQueuesWaitingInteractions':function(_0x2c7ca0){return new Promise(function(_0xc71af4,_0x530761){var _0x3c94e1=_['values'](_0x32c3f5[_0x559e('0x4d')]);_0xc71af4({'count':_0x3c94e1['length'],'rows':_0x3c94e1});});},'FaxQueuesWaitingInteractions':function(_0x256ff2){return new Promise(function(_0x4a6554,_0x1ade2c){var _0x1a12c3=_[_0x559e('0x3f')](_0x32c3f5['faxQueuesWaitingInteractions']);_0x4a6554({'count':_0x1a12c3['length'],'rows':_0x1a12c3});});},'WhatsappQueuesWaitingInteractions':function(_0x20fcb5){return new Promise(function(_0x42b312,_0x5a7f08){var _0x27e1f5=_['values'](_0x32c3f5[_0x559e('0x4e')]);_0x42b312({'count':_0x27e1f5[_0x559e('0x14')],'rows':_0x27e1f5});});}};var _0x144c26=jayson[_0x559e('0x4f')](_0x1a7279)[_0x559e('0x50')]();_0x144c26['on'](_0x559e('0x2e'),function(_0x494f72){logger[_0x559e('0x2e')](JSON[_0x559e('0x51')](_0x494f72));return _0x1f71d8(_0x494f72);});_0x144c26[_0x559e('0xd')](0x232c,'127.0.0.1',function(){console[_0x559e('0x52')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x4650b8(_0x559e('0x53')+0x232c);});});};