Built motion from commit (unavailable).|2.5.26
[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 _0x984b=['push','slice','dialogflow','amazonlex','tag','TagId','format','./interval','intervals','./applications/','consequence','info','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','rules','Applications\x20executed','stringify','matchPath','emit','complete','error','stack','routing\x20is\x20empty','agent','agents','busy','busyQueue','QueueReport','update','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','end','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','available','loggedIn','name','paused','waiting','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','http','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','uuid','routing','../rpc/openchannelQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','channel','message','interaction','applications','isArray','length','existsSync','join','app','.js','toLowerCase','autoreply','appdata','split'];(function(_0x336365,_0x29bd2f){var _0x52deb3=function(_0x4e24e2){while(--_0x4e24e2){_0x336365['push'](_0x336365['shift']());}};_0x52deb3(++_0x29bd2f);}(_0x984b,0xee));var _0xb984=function(_0xae3ccd,_0x200177){_0xae3ccd=_0xae3ccd-0x0;var _0x4d5295=_0x984b[_0xae3ccd];return _0x4d5295;};'use strict';var _=require('lodash');var util=require('util');var path=require('path');var fs=require('fs');var jayson=require(_0xb984('0x0'));var BPromise=require(_0xb984('0x1'));var uuid=require(_0xb984('0x2'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0xb984('0x3'));var rpc={'openchannelQueueReport':require(_0xb984('0x4')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require('../rpc/chatQueueReport'),'smsQueueReport':require(_0xb984('0x5')),'faxQueueReport':require(_0xb984('0x6')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0xb984('0x7'));function getId(_0x1a00d6,_0x4d72b7,_0x37fd36){return util['format'](_0xb984('0x8'),_0x1a00d6,_0x4d72b7||0x0,_0x37fd36||0x0);}function getIntervals(_0x42dfd9,_0x124143){var _0x2f4e77=[];if(!_[_0xb984('0x9')](_0x124143[_0xb984('0xa')])&&!_[_0xb984('0x9')](_0x42dfd9[_0x124143[_0xb984('0xa')]])&&!_[_0xb984('0x9')](_0x42dfd9[_0x124143[_0xb984('0xa')]][_0xb984('0xb')])){_0x2f4e77=_[_0xb984('0xc')](_0x42dfd9[_0x124143['IntervalId']][_0xb984('0xb')],'interval');}else if(!_[_0xb984('0x9')](_0x124143[_0xb984('0xd')])){_0x2f4e77=[_0x124143['interval']];}return _0x2f4e77;}exports[_0xb984('0xe')]=function(_0x2e7986){_0x2e7986['rules']={};return new BPromise(function(_0x203dba,_0x7a1b60){var _0x549791={'Start':function(_0xede12d){var _0x4073cb=this;return new Promise(function(_0x57365c,_0x6fae41){if(_0xede12d){try{var _0x5cd1aa=[];var _0x3b8241=getId(_0xede12d[_0xb984('0xf')],_0xede12d[_0xb984('0x10')]?_0xede12d[_0xb984('0x10')]['id']:0x0,_0xede12d['interaction']?_0xede12d[_0xb984('0x11')]['id']:0x0);if(_0xede12d[_0xb984('0x12')]&&_[_0xb984('0x13')](_0xede12d[_0xb984('0x12')])&&_0xede12d[_0xb984('0x12')][_0xb984('0x14')]){for(var _0x5c2e25=0x0;_0x5c2e25<_0xede12d[_0xb984('0x12')][_0xb984('0x14')];_0x5c2e25+=0x1){var _0x694978=_0xede12d[_0xb984('0x12')][_0x5c2e25];if(fs[_0xb984('0x15')](path[_0xb984('0x16')](__dirname,'applications',_0x694978[_0xb984('0x17')]+_0xb984('0x18')))){var _0x551ad4=[];switch(_0x694978[_0xb984('0x17')][_0xb984('0x19')]()){case _0xb984('0x1a'):var _0x932579=_0x694978[_0xb984('0x1b')][_0xb984('0x1c')](',');if(_0xede12d[_0xb984('0xf')]==='mail'){_0x551ad4[_0xb984('0x1d')](_0x932579[0x0]);_0x551ad4[_0xb984('0x1d')](_0x932579[0x1]);_0x551ad4[_0xb984('0x1d')](_0x932579['slice'](0x2,_0x932579[_0xb984('0x14')])[_0xb984('0x16')](','));}else{_0x551ad4[_0xb984('0x1d')](_0x932579[0x0]);_0x551ad4[_0xb984('0x1d')](_0x932579[_0xb984('0x1e')](0x1,_0x932579[_0xb984('0x14')])[_0xb984('0x16')](','));}break;case _0xb984('0x1f'):var _0x5d93d9=_0x694978[_0xb984('0x1b')][_0xb984('0x1c')](',');_0x551ad4[_0xb984('0x1d')](_0x5d93d9[0x0]);_0x551ad4[_0xb984('0x1d')](_0x5d93d9[0x1]);_0x551ad4['push'](_0x5d93d9[_0xb984('0x1e')](0x2,_0x5d93d9[_0xb984('0x14')])[_0xb984('0x16')](','));break;case'dialogflowv2':var _0x363e33=_0x694978[_0xb984('0x1b')][_0xb984('0x1c')](',');_0x551ad4[_0xb984('0x1d')](_0x363e33[0x0]);_0x551ad4['push'](_0x363e33[0x1]);_0x551ad4['push'](_0x363e33[0x2]);_0x551ad4['push'](_0x363e33[0x3]);_0x551ad4[_0xb984('0x1d')](_0x363e33[_0xb984('0x1e')](0x4,_0x363e33['length'])[_0xb984('0x16')](','));break;case _0xb984('0x20'):var _0x30d338=_0x694978[_0xb984('0x1b')]['split'](',');_0x551ad4['push'](_0x30d338[0x0]);_0x551ad4[_0xb984('0x1d')](_0x30d338[0x1]);_0x551ad4[_0xb984('0x1d')](_0x30d338[0x2]);_0x551ad4[_0xb984('0x1d')](_0x30d338[0x3]);_0x551ad4[_0xb984('0x1d')](_0x30d338['slice'](0x4,_0x30d338[_0xb984('0x14')])[_0xb984('0x16')](','));break;case _0xb984('0x10'):_0x551ad4[_0xb984('0x1d')](_0x694978[_0xb984('0x1b')]);break;case _0xb984('0x21'):_0x551ad4['push'](_0x694978[_0xb984('0x22')]);_0x551ad4[_0xb984('0x1d')](_0x694978[_0xb984('0x1b')]);break;default:_0x551ad4=_[_0xb984('0x9')](_0x694978[_0xb984('0x1b')])?[]:_0x694978[_0xb984('0x1b')]['split'](',');}var _0x31f490={'id':util[_0xb984('0x23')]('%s:%s:%s',_0x3b8241,_0x694978['id'],_0x694978['app']),'condition':require(_0xb984('0x24'))['condition'](_0x3b8241,getIntervals(_0x2e7986[_0xb984('0x25')],_0x694978),_0x2e7986),'consequence':require(_0xb984('0x26')+_0x694978['app'])[_0xb984('0x27')](_0x3b8241,_0x551ad4,_0x2e7986,_0xede12d),'p':_0x694978['priority']||0x0};logger[_0xb984('0x28')]('Push\x20new\x20rule',_0x31f490['id'],_0xb984('0x29'),getIntervals(_0x2e7986['intervals'],_0x694978)['join'](_0xb984('0x2a')));_0x5cd1aa[_0xb984('0x1d')](_0x31f490);}else{logger['error'](_0xb984('0x2b'),path[_0xb984('0x16')](__dirname,'applications',_0x694978[_0xb984('0x17')]+_0xb984('0x18')));}}_0x2e7986[_0xb984('0x2c')][_0x3b8241]=new RuleEngine(_0x5cd1aa);_0x2e7986[_0xb984('0x2c')][_0x3b8241]['execute'](_0xede12d,function(_0x1adcb){logger[_0xb984('0x28')](_0xb984('0x2d'),JSON[_0xb984('0x2e')](_0x1adcb[_0xb984('0x2f')]));if(_0x2e7986[_0xb984('0x2c')][_0x3b8241]){_0x2e7986[_0xb984('0x2c')][_0x3b8241][_0xb984('0x30')](_0xb984('0x31'));}});return _0x57365c({'code':0xc8,'message':_0xede12d});}else{logger[_0xb984('0x28')]('No\x20applications\x20to\x20execute');return _0x57365c({'code':0xc8,'message':_0xede12d});}}catch(_0x134ba5){logger[_0xb984('0x32')](_0x134ba5[_0xb984('0x33')]);return _0x6fae41(_0x4073cb[_0xb984('0x32')](0x1f4,_0x134ba5));}}return _0x6fae41(_0xb984('0x34'));});},'AcceptMessage':function(_0x1e06aa){var _0x1e8323=this;return new Promise(function(_0xce2f71,_0x52181e){if(_0x1e06aa['agent']&&_0x1e06aa[_0xb984('0x35')]['id']){if(_0x2e7986['agents'][_0x1e06aa[_0xb984('0x35')]['id']]){_0x2e7986[_0xb984('0x36')][_0x1e06aa[_0xb984('0x35')]['id']][_0xb984('0x37')]=![];_0x2e7986['agents'][_0x1e06aa[_0xb984('0x35')]['id']][_0xb984('0x38')]=undefined;}}if(_0x1e06aa['message']&&_0x1e06aa[_0xb984('0x10')]['id']){try{var _0xb61add=getId(_0x1e06aa[_0xb984('0xf')],_0x1e06aa[_0xb984('0x10')]?_0x1e06aa[_0xb984('0x10')]['id']:0x0,_0x1e06aa[_0xb984('0x11')]?_0x1e06aa[_0xb984('0x11')]['id']:0x0);if(_0x2e7986['rules'][_0xb61add]){_0x2e7986[_0xb984('0x2c')][_0xb61add][_0xb984('0x30')]('end');if(rpc[_0x1e06aa['channel']+_0xb984('0x39')]){rpc[_0x1e06aa[_0xb984('0xf')]+_0xb984('0x39')][_0xb984('0x3a')](_0xb61add,{'UserId':_0x1e06aa[_0xb984('0x10')]['UserId']})[_0xb984('0x3b')](function(_0x40666f){logger[_0xb984('0x32')](_0xb984('0x3c'));});}}return _0xce2f71({'code':0xc8,'message':_0x1e06aa});}catch(_0x460a7e){logger[_0xb984('0x32')](_0x460a7e[_0xb984('0x33')]);return _0x52181e(_0x1e8323[_0xb984('0x32')](0x1f4,_0x460a7e));}}logger[_0xb984('0x32')](_0xb984('0x3d'));return _0x52181e(_0x1e8323['error'](0x1f4,_0xb984('0x3d')));});},'RejectMessage':function(_0x71880c){var _0x4bd4db=this;return new Promise(function(_0x1ba546,_0x436597){if(_0x71880c[_0xb984('0x35')]&&_0x71880c[_0xb984('0x35')]['id']){try{if(_0x2e7986[_0xb984('0x36')][_0x71880c[_0xb984('0x35')]['id']]){_0x2e7986[_0xb984('0x36')][_0x71880c[_0xb984('0x35')]['id']][_0xb984('0x37')]=![];_0x2e7986[_0xb984('0x36')][_0x71880c['agent']['id']][_0xb984('0x38')]=undefined;}return _0x1ba546({'code':0xc8,'message':_0x71880c});}catch(_0x303280){logger[_0xb984('0x32')](_0x303280[_0xb984('0x33')]);return _0x436597(_0x4bd4db[_0xb984('0x32')](0x1f4,_0x303280));}}logger[_0xb984('0x32')](_0xb984('0x3d'));return _0x436597(_0x4bd4db[_0xb984('0x32')](0x1f4,_0xb984('0x3d')));});},'AbandonInteraction':function(_0x5c3d82){var _0x386faf=this;return new Promise(function(_0x36e411,_0x3a7cbb){if(_0x5c3d82['channel']&&_0x5c3d82[_0xb984('0x11')]&&_0x5c3d82[_0xb984('0x11')]['id']){try{var _0x4e777e=getId(_0x5c3d82[_0xb984('0xf')],_0x5c3d82['message']?_0x5c3d82[_0xb984('0x10')]['id']:0x0,_0x5c3d82[_0xb984('0x11')]?_0x5c3d82['interaction']['id']:0x0);if(_0x2e7986[_0xb984('0x2c')][_0x4e777e]){_0x2e7986[_0xb984('0x2c')][_0x4e777e][_0xb984('0x30')](_0xb984('0x3e'));}return _0x36e411({'code':0xc8,'message':_0x5c3d82});}catch(_0xbf328d){logger[_0xb984('0x32')](_0xbf328d['stack']);return _0x3a7cbb(_0x386faf[_0xb984('0x32')](0x1f4,_0xbf328d));}}logger['error'](_0xb984('0x3d'));return _0x3a7cbb(_0x386faf[_0xb984('0x32')](0x1f4,_0xb984('0x3d')));});},'AgentCapacity':function(_0x5cf038){var _0x47ab3a=this;return new Promise(function(_0xeb208e,_0x2dfaf8){if(_0x2e7986['agents']['hasOwnProperty'](_0x5cf038['id'])){for(var _0x1e8847 in _0x5cf038[_0xb984('0x3f')]){if(_0x5cf038[_0xb984('0x3f')][_0xb984('0x40')](_0x1e8847)){if(_0x2e7986[_0xb984('0x36')][_0x5cf038['id']][_0xb984('0x40')](_0x1e8847+'CurrentCapacity')){_0x2e7986['agents'][_0x5cf038['id']][_0x1e8847+_0xb984('0x41')]=parseInt(_0x5cf038[_0xb984('0x3f')][_0x1e8847],0xa);}}}_0x2e7986['agents'][_0x5cf038['id']][_0xb984('0x42')]();return _0xeb208e({'code':0xc8,'message':_0x2e7986[_0xb984('0x36')][_0x5cf038['id']]});}else{return _0x2dfaf8(_0x47ab3a[_0xb984('0x32')](0x1f4,_0xb984('0x43')));}});},'Agents':function(_0x529f64){return new Promise(function(_0x4d719c,_0x226db2){var _0x36a9eb=_[_0xb984('0x44')](_0x2e7986[_0xb984('0x36')]);_0x4d719c({'count':_0x36a9eb[_0xb984('0x14')],'rows':_0x36a9eb});});},'ChatQueues':function(_0x3cc2a0){return new Promise(function(_0x49ecfd,_0x2de42b){var _0x261be7=[];for(var _0x7c47aa in _0x2e7986[_0xb984('0x45')]){if(_0x2e7986[_0xb984('0x45')][_0xb984('0x40')](_0x7c47aa)){var _0x575503=_0x2e7986['chatQueues'][_0x7c47aa];var _0x518120={'id':_0x575503['id'],'available':_0x575503[_0xb984('0x46')],'loggedIn':_0x575503[_0xb984('0x47')],'name':_0x575503[_0xb984('0x48')],'paused':_0x575503[_0xb984('0x49')],'waiting':_0x575503[_0xb984('0x4a')]};_0x261be7['push'](_0x518120);}}_0x49ecfd({'count':_0x261be7[_0xb984('0x14')],'rows':_0x261be7});});},'MailQueues':function(_0x32aa84){return new Promise(function(_0x356442,_0x5549f3){var _0x935abe=[];for(var _0x10e37b in _0x2e7986['mailQueues']){if(_0x2e7986['mailQueues'][_0xb984('0x40')](_0x10e37b)){var _0x4b7bd2=_0x2e7986['mailQueues'][_0x10e37b];var _0x174384={'id':_0x4b7bd2['id'],'available':_0x4b7bd2['available'],'loggedIn':_0x4b7bd2[_0xb984('0x47')],'name':_0x4b7bd2[_0xb984('0x48')],'paused':_0x4b7bd2[_0xb984('0x49')],'waiting':_0x4b7bd2[_0xb984('0x4a')]};_0x935abe[_0xb984('0x1d')](_0x174384);}}_0x356442({'count':_0x935abe[_0xb984('0x14')],'rows':_0x935abe});});},'OpenchannelQueues':function(_0x145052){return new Promise(function(_0x1a81c3,_0x4269e0){var _0x2b187f=[];for(var _0x742a0f in _0x2e7986[_0xb984('0x4b')]){if(_0x2e7986['openchannelQueues'][_0xb984('0x40')](_0x742a0f)){var _0x5f126e=_0x2e7986[_0xb984('0x4b')][_0x742a0f];var _0x511780={'id':_0x5f126e['id'],'available':_0x5f126e['available'],'loggedIn':_0x5f126e[_0xb984('0x47')],'name':_0x5f126e[_0xb984('0x48')],'paused':_0x5f126e[_0xb984('0x49')],'waiting':_0x5f126e['waiting']};_0x2b187f[_0xb984('0x1d')](_0x511780);}}_0x1a81c3({'count':_0x2b187f[_0xb984('0x14')],'rows':_0x2b187f});});},'SmsQueues':function(_0x323d6b){return new Promise(function(_0x3508cb,_0x434c5c){var _0x1793e2=[];for(var _0x2e0df9 in _0x2e7986[_0xb984('0x4c')]){if(_0x2e7986[_0xb984('0x4c')][_0xb984('0x40')](_0x2e0df9)){var _0x1afc8d=_0x2e7986[_0xb984('0x4c')][_0x2e0df9];var _0x1afaa2={'id':_0x1afc8d['id'],'available':_0x1afc8d[_0xb984('0x46')],'loggedIn':_0x1afc8d['loggedIn'],'name':_0x1afc8d[_0xb984('0x48')],'paused':_0x1afc8d['paused'],'waiting':_0x1afc8d[_0xb984('0x4a')]};_0x1793e2['push'](_0x1afaa2);}}_0x3508cb({'count':_0x1793e2[_0xb984('0x14')],'rows':_0x1793e2});});},'FaxQueues':function(_0x59ce18){return new Promise(function(_0x278a0d,_0xae996e){var _0x33b124=[];for(var _0x32e1c2 in _0x2e7986[_0xb984('0x4d')]){if(_0x2e7986[_0xb984('0x4d')][_0xb984('0x40')](_0x32e1c2)){var _0x40a9ac=_0x2e7986[_0xb984('0x4d')][_0x32e1c2];var _0x4247e7={'id':_0x40a9ac['id'],'available':_0x40a9ac[_0xb984('0x46')],'loggedIn':_0x40a9ac['loggedIn'],'name':_0x40a9ac['name'],'paused':_0x40a9ac[_0xb984('0x49')],'waiting':_0x40a9ac[_0xb984('0x4a')]};_0x33b124[_0xb984('0x1d')](_0x4247e7);}}_0x278a0d({'count':_0x33b124['length'],'rows':_0x33b124});});},'WhatsappQueues':function(_0x45ee77){return new Promise(function(_0x45a7ff,_0x50544b){var _0x4ebe30=[];for(var _0x5b1291 in _0x2e7986[_0xb984('0x4e')]){if(_0x2e7986['whatsappQueues']['hasOwnProperty'](_0x5b1291)){var _0x56500d=_0x2e7986[_0xb984('0x4e')][_0x5b1291];var _0x1ecc45={'id':_0x56500d['id'],'available':_0x56500d[_0xb984('0x46')],'loggedIn':_0x56500d[_0xb984('0x47')],'name':_0x56500d['name'],'paused':_0x56500d['paused'],'waiting':_0x56500d[_0xb984('0x4a')]};_0x4ebe30[_0xb984('0x1d')](_0x1ecc45);}}_0x45a7ff({'count':_0x4ebe30[_0xb984('0x14')],'rows':_0x4ebe30});});},'ChatQueuesWaitingInteractions':function(_0xe4e069){return new Promise(function(_0x307263,_0x5ce513){var _0x2063cd=_[_0xb984('0x44')](_0x2e7986[_0xb984('0x4f')]);_0x307263({'count':_0x2063cd[_0xb984('0x14')],'rows':_0x2063cd});});},'MailQueuesWaitingInteractions':function(_0x11992a){return new Promise(function(_0x19f73b,_0x4f51a0){var _0x1bb691=_['values'](_0x2e7986[_0xb984('0x50')]);_0x19f73b({'count':_0x1bb691[_0xb984('0x14')],'rows':_0x1bb691});});},'OpenchannelQueuesWaitingInteractions':function(_0x249101){return new Promise(function(_0x133cfc,_0x1d18e8){var _0x532ddc=_[_0xb984('0x44')](_0x2e7986[_0xb984('0x51')]);_0x133cfc({'count':_0x532ddc[_0xb984('0x14')],'rows':_0x532ddc});});},'SmsQueuesWaitingInteractions':function(_0x4c4e45){return new Promise(function(_0x1cfdcc,_0x2b5bd1){var _0x19fb4f=_[_0xb984('0x44')](_0x2e7986[_0xb984('0x52')]);_0x1cfdcc({'count':_0x19fb4f['length'],'rows':_0x19fb4f});});},'FaxQueuesWaitingInteractions':function(_0x504d1a){return new Promise(function(_0x16ad6b,_0x31d101){var _0x2353cd=_[_0xb984('0x44')](_0x2e7986['faxQueuesWaitingInteractions']);_0x16ad6b({'count':_0x2353cd[_0xb984('0x14')],'rows':_0x2353cd});});},'WhatsappQueuesWaitingInteractions':function(_0x34ce92){return new Promise(function(_0x286d56,_0x199e48){var _0x5e4b1f=_[_0xb984('0x44')](_0x2e7986[_0xb984('0x53')]);_0x286d56({'count':_0x5e4b1f[_0xb984('0x14')],'rows':_0x5e4b1f});});}};var _0x1a619f=jayson['server'](_0x549791)[_0xb984('0x54')]();_0x1a619f['on'](_0xb984('0x32'),function(_0x1d62e6){logger[_0xb984('0x32')](JSON[_0xb984('0x2e')](_0x1d62e6));return _0x7a1b60(_0x1d62e6);});_0x1a619f[_0xb984('0xe')](0x232c,_0xb984('0x55'),function(){console[_0xb984('0x56')](_0xb984('0x57'),0x232c);return _0x203dba(_0xb984('0x58')+0x232c);});});};