Built motion from commit (unavailable).|2.4.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 _0xb638=['channel','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','stack','capacity','hasOwnProperty','CurrentCapacity','chatQueues','available','loggedIn','name','paused','waiting','mailQueues','openchannelQueues','smsQueues','faxQueues','chatQueuesWaitingInteractions','values','mailQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','bluebird','../../../config/environment','routing','../rpc/openchannelQueueReport','../rpc/chatQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','interval','listen','rules','message','applications','isArray','length','existsSync','join','app','.js','toLowerCase','autoreply','appdata','split','push','slice','TagId','%s:%s:%s','./interval','intervals','consequence','priority','info','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','execute','Applications\x20executed','stringify','matchPath','emit','end','No\x20applications\x20to\x20execute','routing\x20is\x20empty','interaction'];(function(_0x9bf97b,_0x309a93){var _0x11cc7b=function(_0x4cc1c3){while(--_0x4cc1c3){_0x9bf97b['push'](_0x9bf97b['shift']());}};_0x11cc7b(++_0x309a93);}(_0xb638,0x1cb));var _0x8b63=function(_0x566099,_0x4f6e33){_0x566099=_0x566099-0x0;var _0xa5a5ee=_0xb638[_0x566099];return _0xa5a5ee;};'use strict';var _=require(_0x8b63('0x0'));var util=require(_0x8b63('0x1'));var path=require(_0x8b63('0x2'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0x8b63('0x3'));var uuid=require('uuid');var config=require(_0x8b63('0x4'));var logger=require('../../../config/logger')(_0x8b63('0x5'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport')};var rpc={'openchannelQueueReport':require(_0x8b63('0x6')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require(_0x8b63('0x7')),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require('../rpc/faxQueueReport')};var RuleEngine=require(_0x8b63('0x8'));function getId(_0x5aba27,_0x2bf5a6,_0x2ff0b6){return util[_0x8b63('0x9')](_0x8b63('0xa'),_0x5aba27,_0x2bf5a6||0x0,_0x2ff0b6||0x0);}function getIntervals(_0x4fad23,_0x3d5c0){var _0x3477d2=[];if(!_[_0x8b63('0xb')](_0x3d5c0[_0x8b63('0xc')])&&!_[_0x8b63('0xb')](_0x4fad23[_0x3d5c0[_0x8b63('0xc')]])&&!_['isNil'](_0x4fad23[_0x3d5c0[_0x8b63('0xc')]][_0x8b63('0xd')])){_0x3477d2=_['map'](_0x4fad23[_0x3d5c0[_0x8b63('0xc')]][_0x8b63('0xd')],'interval');}else if(!_['isNil'](_0x3d5c0[_0x8b63('0xe')])){_0x3477d2=[_0x3d5c0[_0x8b63('0xe')]];}return _0x3477d2;}exports[_0x8b63('0xf')]=function(_0x397f11){_0x397f11[_0x8b63('0x10')]={};return new BPromise(function(_0x23491d,_0x401e2e){var _0x373a9d={'Start':function(_0x1be20a){var _0x195b70=this;return new Promise(function(_0x2b050d,_0x5ca5a8){if(_0x1be20a){try{var _0x339195=[];var _0x175249=getId(_0x1be20a['channel'],_0x1be20a[_0x8b63('0x11')]?_0x1be20a[_0x8b63('0x11')]['id']:0x0,_0x1be20a['interaction']?_0x1be20a['interaction']['id']:0x0);if(_0x1be20a[_0x8b63('0x12')]&&_[_0x8b63('0x13')](_0x1be20a[_0x8b63('0x12')])&&_0x1be20a[_0x8b63('0x12')][_0x8b63('0x14')]){for(var _0x4b0bf5=0x0;_0x4b0bf5<_0x1be20a[_0x8b63('0x12')][_0x8b63('0x14')];_0x4b0bf5+=0x1){var _0x537dee=_0x1be20a['applications'][_0x4b0bf5];if(fs[_0x8b63('0x15')](path[_0x8b63('0x16')](__dirname,_0x8b63('0x12'),_0x537dee[_0x8b63('0x17')]+_0x8b63('0x18')))){var _0x2c55e7=[];switch(_0x537dee[_0x8b63('0x17')][_0x8b63('0x19')]()){case _0x8b63('0x1a'):var _0x1bde07=_0x537dee[_0x8b63('0x1b')][_0x8b63('0x1c')](',');_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[0x0]);_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[_0x8b63('0x1e')](0x1,_0x1bde07[_0x8b63('0x14')])[_0x8b63('0x16')](','));break;case'dialogflow':var _0x1bde07=_0x537dee[_0x8b63('0x1b')]['split'](',');_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[0x0]);_0x2c55e7['push'](_0x1bde07[0x1]);_0x2c55e7['push'](_0x1bde07[_0x8b63('0x1e')](0x2,_0x1bde07[_0x8b63('0x14')])['join'](','));break;case'amazonlex':var _0x1bde07=_0x537dee[_0x8b63('0x1b')][_0x8b63('0x1c')](',');_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[0x0]);_0x2c55e7['push'](_0x1bde07[0x1]);_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[0x2]);_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[0x3]);_0x2c55e7[_0x8b63('0x1d')](_0x1bde07[_0x8b63('0x1e')](0x4,_0x1bde07[_0x8b63('0x14')])[_0x8b63('0x16')](','));break;case _0x8b63('0x11'):_0x2c55e7[_0x8b63('0x1d')](_0x537dee[_0x8b63('0x1b')]);break;case'tag':_0x2c55e7[_0x8b63('0x1d')](_0x537dee[_0x8b63('0x1f')]);_0x2c55e7['push'](_0x537dee[_0x8b63('0x1b')]);break;default:_0x2c55e7=_[_0x8b63('0xb')](_0x537dee[_0x8b63('0x1b')])?[]:_0x537dee['appdata'][_0x8b63('0x1c')](',');}var _0x149d68={'id':util[_0x8b63('0x9')](_0x8b63('0x20'),_0x175249,_0x537dee['id'],_0x537dee['app']),'condition':require(_0x8b63('0x21'))['condition'](_0x175249,getIntervals(_0x397f11[_0x8b63('0x22')],_0x537dee),_0x397f11),'consequence':require('./applications/'+_0x537dee['app'])[_0x8b63('0x23')](_0x175249,_0x2c55e7,_0x397f11,_0x1be20a),'p':_0x537dee[_0x8b63('0x24')]||0x0};logger[_0x8b63('0x25')]('Push\x20new\x20rule',_0x149d68['id'],_0x8b63('0x26'),getIntervals(_0x397f11['intervals'],_0x537dee)[_0x8b63('0x16')](_0x8b63('0x27')));_0x339195[_0x8b63('0x1d')](_0x149d68);}else{logger[_0x8b63('0x28')](_0x8b63('0x29'),path['join'](__dirname,'applications',_0x537dee[_0x8b63('0x17')]+'.js'));}}_0x397f11[_0x8b63('0x10')][_0x175249]=new RuleEngine(_0x339195);_0x397f11[_0x8b63('0x10')][_0x175249][_0x8b63('0x2a')](_0x1be20a,function(_0x5a348d){logger[_0x8b63('0x25')](_0x8b63('0x2b'),JSON[_0x8b63('0x2c')](_0x5a348d[_0x8b63('0x2d')]));if(_0x397f11['rules'][_0x175249]){_0x397f11['rules'][_0x175249][_0x8b63('0x2e')](_0x8b63('0x2f'));}});return _0x2b050d({'code':0xc8,'message':_0x1be20a});}else{logger[_0x8b63('0x25')](_0x8b63('0x30'));return _0x2b050d({'code':0xc8,'message':_0x1be20a});}}catch(_0xccb1d3){logger[_0x8b63('0x28')](_0xccb1d3['stack']);return _0x5ca5a8(_0x195b70[_0x8b63('0x28')](0x1f4,_0xccb1d3));}}return _0x5ca5a8(_0x8b63('0x31'));});},'AcceptMessage':function(_0x203589){var _0x3d2fe5=this;return new Promise(function(_0x2a3684,_0x18fe0b){if(_0x203589[_0x8b63('0x11')]&&_0x203589[_0x8b63('0x11')]['id']){try{var _0x2730ef=getId(_0x203589['channel'],_0x203589[_0x8b63('0x11')]?_0x203589[_0x8b63('0x11')]['id']:0x0,_0x203589[_0x8b63('0x32')]?_0x203589['interaction']['id']:0x0);if(_0x397f11[_0x8b63('0x10')][_0x2730ef]){_0x397f11[_0x8b63('0x10')][_0x2730ef][_0x8b63('0x2e')](_0x8b63('0x2f'));if(rpc[_0x203589[_0x8b63('0x33')]+_0x8b63('0x34')]){rpc[_0x203589[_0x8b63('0x33')]+'QueueReport'][_0x8b63('0x35')](_0x2730ef,{'UserId':_0x203589['message'][_0x8b63('0x36')]})[_0x8b63('0x37')](function(_0x237910){logger['error'](_0x8b63('0x38'));});}}return _0x2a3684({'code':0xc8,'message':_0x203589});}catch(_0x2e3a98){logger['error'](_0x2e3a98['stack']);return _0x18fe0b(_0x3d2fe5[_0x8b63('0x28')](0x1f4,_0x2e3a98));}}logger[_0x8b63('0x28')](_0x8b63('0x39'));return _0x18fe0b(_0x3d2fe5['error'](0x1f4,_0x8b63('0x39')));});},'RejectMessage':function(_0x42574a){var _0xd37b7f=this;return new Promise(function(_0x2c3d09,_0x3556a8){if(_0x42574a[_0x8b63('0x3a')]&&_0x42574a[_0x8b63('0x3a')]['id']){try{if(_0x397f11[_0x8b63('0x3b')][_0x42574a[_0x8b63('0x3a')]['id']]){_0x397f11[_0x8b63('0x3b')][_0x42574a[_0x8b63('0x3a')]['id']][_0x8b63('0x3c')]=![];_0x397f11['agents'][_0x42574a[_0x8b63('0x3a')]['id']]['busyQueue']=undefined;}return _0x2c3d09({'code':0xc8,'message':_0x42574a});}catch(_0x322a67){logger[_0x8b63('0x28')](_0x322a67[_0x8b63('0x3d')]);return _0x3556a8(_0xd37b7f[_0x8b63('0x28')](0x1f4,_0x322a67));}}logger[_0x8b63('0x28')](_0x8b63('0x39'));return _0x3556a8(_0xd37b7f['error'](0x1f4,_0x8b63('0x39')));});},'AbandonInteraction':function(_0x1aca3e){var _0x4a150b=this;return new Promise(function(_0x138fab,_0x2eabd6){if(_0x1aca3e[_0x8b63('0x33')]&&_0x1aca3e[_0x8b63('0x32')]&&_0x1aca3e[_0x8b63('0x32')]['id']){try{var _0x5842b5=getId(_0x1aca3e['channel'],_0x1aca3e[_0x8b63('0x11')]?_0x1aca3e[_0x8b63('0x11')]['id']:0x0,_0x1aca3e['interaction']?_0x1aca3e[_0x8b63('0x32')]['id']:0x0);if(_0x397f11[_0x8b63('0x10')][_0x5842b5]){_0x397f11[_0x8b63('0x10')][_0x5842b5][_0x8b63('0x2e')](_0x8b63('0x2f'));}return _0x138fab({'code':0xc8,'message':_0x1aca3e});}catch(_0x3e76a4){logger[_0x8b63('0x28')](_0x3e76a4['stack']);return _0x2eabd6(_0x4a150b['error'](0x1f4,_0x3e76a4));}}logger[_0x8b63('0x28')]('message\x20is\x20empty');return _0x2eabd6(_0x4a150b['error'](0x1f4,_0x8b63('0x39')));});},'AgentCapacity':function(_0xe86822){var _0x5ef3a7=this;return new Promise(function(_0x52ff7c,_0x1f4355){if(_0x397f11[_0x8b63('0x3b')]['hasOwnProperty'](_0xe86822['id'])){for(var _0xe32f5a in _0xe86822['capacity']){if(_0xe86822[_0x8b63('0x3e')]['hasOwnProperty'](_0xe32f5a)){if(_0x397f11[_0x8b63('0x3b')][_0xe86822['id']][_0x8b63('0x3f')](_0xe32f5a+_0x8b63('0x40'))){_0x397f11[_0x8b63('0x3b')][_0xe86822['id']][_0xe32f5a+_0x8b63('0x40')]=parseInt(_0xe86822[_0x8b63('0x3e')][_0xe32f5a],0xa);}}}_0x397f11[_0x8b63('0x3b')][_0xe86822['id']]['updateRealtime']();return _0x52ff7c({'code':0xc8,'message':_0x397f11[_0x8b63('0x3b')][_0xe86822['id']]});}else{return _0x1f4355(_0x5ef3a7[_0x8b63('0x28')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0x4cedd6){return new Promise(function(_0x387ee3,_0x4cfc07){var _0x4286d8=_['values'](_0x397f11[_0x8b63('0x3b')]);_0x387ee3({'count':_0x4286d8[_0x8b63('0x14')],'rows':_0x4286d8});});},'ChatQueues':function(_0x3a95e4){return new Promise(function(_0x45f2a4,_0x5de661){var _0x8be67c=[];for(var _0x124456 in _0x397f11[_0x8b63('0x41')]){if(_0x397f11[_0x8b63('0x41')][_0x8b63('0x3f')](_0x124456)){var _0x2578a9=_0x397f11[_0x8b63('0x41')][_0x124456];var _0x1f694b={'id':_0x2578a9['id'],'available':_0x2578a9[_0x8b63('0x42')],'loggedIn':_0x2578a9[_0x8b63('0x43')],'name':_0x2578a9[_0x8b63('0x44')],'paused':_0x2578a9[_0x8b63('0x45')],'waiting':_0x2578a9[_0x8b63('0x46')]};_0x8be67c[_0x8b63('0x1d')](_0x1f694b);}}_0x45f2a4({'count':_0x8be67c[_0x8b63('0x14')],'rows':_0x8be67c});});},'MailQueues':function(_0x37f1a7){return new Promise(function(_0x3d11e5,_0x190674){var _0x11da79=[];for(var _0x1a487f in _0x397f11['mailQueues']){if(_0x397f11[_0x8b63('0x47')][_0x8b63('0x3f')](_0x1a487f)){var _0x1ce0a3=_0x397f11['mailQueues'][_0x1a487f];var _0x8c8aa={'id':_0x1ce0a3['id'],'available':_0x1ce0a3[_0x8b63('0x42')],'loggedIn':_0x1ce0a3[_0x8b63('0x43')],'name':_0x1ce0a3[_0x8b63('0x44')],'paused':_0x1ce0a3[_0x8b63('0x45')],'waiting':_0x1ce0a3[_0x8b63('0x46')]};_0x11da79['push'](_0x8c8aa);}}_0x3d11e5({'count':_0x11da79['length'],'rows':_0x11da79});});},'OpenchannelQueues':function(_0x3b4a18){return new Promise(function(_0x468161,_0x5999fe){var _0x5b3b26=[];for(var _0x4f5d08 in _0x397f11[_0x8b63('0x48')]){if(_0x397f11['openchannelQueues']['hasOwnProperty'](_0x4f5d08)){var _0x46498d=_0x397f11['openchannelQueues'][_0x4f5d08];var _0x4cb0df={'id':_0x46498d['id'],'available':_0x46498d[_0x8b63('0x42')],'loggedIn':_0x46498d[_0x8b63('0x43')],'name':_0x46498d[_0x8b63('0x44')],'paused':_0x46498d[_0x8b63('0x45')],'waiting':_0x46498d[_0x8b63('0x46')]};_0x5b3b26[_0x8b63('0x1d')](_0x4cb0df);}}_0x468161({'count':_0x5b3b26[_0x8b63('0x14')],'rows':_0x5b3b26});});},'SmsQueues':function(_0x52b0f4){return new Promise(function(_0x57ad24,_0x3b85c6){var _0x2cbeee=[];for(var _0x1d443c in _0x397f11['smsQueues']){if(_0x397f11[_0x8b63('0x49')][_0x8b63('0x3f')](_0x1d443c)){var _0x18f2a3=_0x397f11[_0x8b63('0x49')][_0x1d443c];var _0x133a28={'id':_0x18f2a3['id'],'available':_0x18f2a3[_0x8b63('0x42')],'loggedIn':_0x18f2a3[_0x8b63('0x43')],'name':_0x18f2a3[_0x8b63('0x44')],'paused':_0x18f2a3[_0x8b63('0x45')],'waiting':_0x18f2a3[_0x8b63('0x46')]};_0x2cbeee[_0x8b63('0x1d')](_0x133a28);}}_0x57ad24({'count':_0x2cbeee[_0x8b63('0x14')],'rows':_0x2cbeee});});},'FaxQueues':function(_0x15e5aa){return new Promise(function(_0x86af4,_0x4d7b7d){var _0x24a263=[];for(var _0x8252af in _0x397f11[_0x8b63('0x4a')]){if(_0x397f11['faxQueues']['hasOwnProperty'](_0x8252af)){var _0x1d4316=_0x397f11[_0x8b63('0x4a')][_0x8252af];var _0x3c7e57={'id':_0x1d4316['id'],'available':_0x1d4316['available'],'loggedIn':_0x1d4316['loggedIn'],'name':_0x1d4316[_0x8b63('0x44')],'paused':_0x1d4316['paused'],'waiting':_0x1d4316[_0x8b63('0x46')]};_0x24a263['push'](_0x3c7e57);}}_0x86af4({'count':_0x24a263[_0x8b63('0x14')],'rows':_0x24a263});});},'ChatQueuesWaitingInteractions':function(_0x1f430d){return new Promise(function(_0xd9d4a9,_0x3f616f){var _0x5c6eb7=_['values'](_0x397f11[_0x8b63('0x4b')]);_0xd9d4a9({'count':_0x5c6eb7[_0x8b63('0x14')],'rows':_0x5c6eb7});});},'MailQueuesWaitingInteractions':function(_0xa8d38e){return new Promise(function(_0xd8c202,_0x59daca){var _0x2412bc=_[_0x8b63('0x4c')](_0x397f11[_0x8b63('0x4d')]);_0xd8c202({'count':_0x2412bc['length'],'rows':_0x2412bc});});},'OpenchannelQueuesWaitingInteractions':function(_0x38775f){return new Promise(function(_0x1b3f16,_0x4c5c00){var _0x58b870=_[_0x8b63('0x4c')](_0x397f11['openchannelQueuesWaitingInteractions']);_0x1b3f16({'count':_0x58b870['length'],'rows':_0x58b870});});},'SmsQueuesWaitingInteractions':function(_0x3c068c){return new Promise(function(_0x51837f,_0xe4277b){var _0x293260=_[_0x8b63('0x4c')](_0x397f11[_0x8b63('0x4e')]);_0x51837f({'count':_0x293260['length'],'rows':_0x293260});});},'FaxQueuesWaitingInteractions':function(_0x2ab1eb){return new Promise(function(_0x217233,_0x11f8ec){var _0x107da5=_['values'](_0x397f11[_0x8b63('0x4f')]);_0x217233({'count':_0x107da5[_0x8b63('0x14')],'rows':_0x107da5});});}};var _0x3463ec=jayson[_0x8b63('0x50')](_0x373a9d)['http']();_0x3463ec['on'](_0x8b63('0x28'),function(_0x4e25f0){logger[_0x8b63('0x28')](JSON[_0x8b63('0x2c')](_0x4e25f0));return _0x401e2e(_0x4e25f0);});_0x3463ec['listen'](0x232c,_0x8b63('0x51'),function(){console[_0x8b63('0x52')](_0x8b63('0x53'),0x232c);return _0x23491d(_0x8b63('0x54')+0x232c);});});};