Built motion from commit (unavailable).|2.5.9
[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 _0xfb11=['dialogflowv2','amazonlex','tag','format','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','execute','info','Applications\x20executed','stringify','matchPath','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','emit','end','QueueReport','update','UserId','catch','message\x20is\x20empty','agent','agents','busy','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','name','paused','waiting','mailQueues','available','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','http','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','path','bluebird','uuid','../../../config/environment','routing','../rpc/openchannelQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','rules','channel','message','interaction','isArray','applications','length','existsSync','app','.js','toLowerCase','autoreply','appdata','push','slice','join','dialogflow','split'];(function(_0x3e17e0,_0x48de7b){var _0x3239f9=function(_0x459f0){while(--_0x459f0){_0x3e17e0['push'](_0x3e17e0['shift']());}};_0x3239f9(++_0x48de7b);}(_0xfb11,0x160));var _0x1fb1=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0xfb11[_0x220dbb];return _0x2b77de;};'use strict';var _=require(_0x1fb1('0x0'));var util=require('util');var path=require(_0x1fb1('0x1'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0x1fb1('0x2'));var uuid=require(_0x1fb1('0x3'));var config=require(_0x1fb1('0x4'));var logger=require('../../../config/logger')(_0x1fb1('0x5'));var rpc={'openchannelQueueReport':require(_0x1fb1('0x6')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require(_0x1fb1('0x7')),'smsQueueReport':require(_0x1fb1('0x8')),'faxQueueReport':require(_0x1fb1('0x9')),'whatsappQueueReport':require(_0x1fb1('0xa'))};var RuleEngine=require(_0x1fb1('0xb'));function getId(_0x5d794b,_0xc075c9,_0x15f0de){return util['format'](_0x1fb1('0xc'),_0x5d794b,_0xc075c9||0x0,_0x15f0de||0x0);}function getIntervals(_0x58c2e0,_0x162287){var _0x46ad93=[];if(!_[_0x1fb1('0xd')](_0x162287[_0x1fb1('0xe')])&&!_['isNil'](_0x58c2e0[_0x162287[_0x1fb1('0xe')]])&&!_[_0x1fb1('0xd')](_0x58c2e0[_0x162287['IntervalId']][_0x1fb1('0xf')])){_0x46ad93=_[_0x1fb1('0x10')](_0x58c2e0[_0x162287[_0x1fb1('0xe')]][_0x1fb1('0xf')],_0x1fb1('0x11'));}else if(!_[_0x1fb1('0xd')](_0x162287[_0x1fb1('0x11')])){_0x46ad93=[_0x162287[_0x1fb1('0x11')]];}return _0x46ad93;}exports['listen']=function(_0x558b86){_0x558b86[_0x1fb1('0x12')]={};return new BPromise(function(_0x58996c,_0x37d143){var _0x130e45={'Start':function(_0x5b8740){var _0x5e7cd9=this;return new Promise(function(_0x111a00,_0x210195){if(_0x5b8740){try{var _0x1e9dcb=[];var _0x1e954e=getId(_0x5b8740[_0x1fb1('0x13')],_0x5b8740[_0x1fb1('0x14')]?_0x5b8740['message']['id']:0x0,_0x5b8740['interaction']?_0x5b8740[_0x1fb1('0x15')]['id']:0x0);if(_0x5b8740['applications']&&_[_0x1fb1('0x16')](_0x5b8740[_0x1fb1('0x17')])&&_0x5b8740[_0x1fb1('0x17')][_0x1fb1('0x18')]){for(var _0x13b125=0x0;_0x13b125<_0x5b8740[_0x1fb1('0x17')][_0x1fb1('0x18')];_0x13b125+=0x1){var _0x132014=_0x5b8740[_0x1fb1('0x17')][_0x13b125];if(fs[_0x1fb1('0x19')](path['join'](__dirname,_0x1fb1('0x17'),_0x132014[_0x1fb1('0x1a')]+_0x1fb1('0x1b')))){var _0x3eea53=[];switch(_0x132014[_0x1fb1('0x1a')][_0x1fb1('0x1c')]()){case _0x1fb1('0x1d'):var _0x41c81f=_0x132014[_0x1fb1('0x1e')]['split'](',');_0x3eea53['push'](_0x41c81f[0x0]);_0x3eea53[_0x1fb1('0x1f')](_0x41c81f[_0x1fb1('0x20')](0x1,_0x41c81f[_0x1fb1('0x18')])[_0x1fb1('0x21')](','));break;case _0x1fb1('0x22'):var _0x2bc84e=_0x132014['appdata'][_0x1fb1('0x23')](',');_0x3eea53[_0x1fb1('0x1f')](_0x2bc84e[0x0]);_0x3eea53[_0x1fb1('0x1f')](_0x2bc84e[0x1]);_0x3eea53[_0x1fb1('0x1f')](_0x2bc84e['slice'](0x2,_0x2bc84e[_0x1fb1('0x18')])[_0x1fb1('0x21')](','));break;case _0x1fb1('0x24'):var _0x509532=_0x132014['appdata'][_0x1fb1('0x23')](',');_0x3eea53['push'](_0x509532[0x0]);_0x3eea53[_0x1fb1('0x1f')](_0x509532[0x1]);_0x3eea53[_0x1fb1('0x1f')](_0x509532[0x2]);_0x3eea53[_0x1fb1('0x1f')](_0x509532[0x3]);_0x3eea53[_0x1fb1('0x1f')](_0x509532['slice'](0x4,_0x509532[_0x1fb1('0x18')])['join'](','));break;case _0x1fb1('0x25'):var _0x5477b1=_0x132014['appdata'][_0x1fb1('0x23')](',');_0x3eea53[_0x1fb1('0x1f')](_0x5477b1[0x0]);_0x3eea53[_0x1fb1('0x1f')](_0x5477b1[0x1]);_0x3eea53[_0x1fb1('0x1f')](_0x5477b1[0x2]);_0x3eea53['push'](_0x5477b1[0x3]);_0x3eea53['push'](_0x5477b1[_0x1fb1('0x20')](0x4,_0x5477b1[_0x1fb1('0x18')])[_0x1fb1('0x21')](','));break;case'message':_0x3eea53[_0x1fb1('0x1f')](_0x132014[_0x1fb1('0x1e')]);break;case _0x1fb1('0x26'):_0x3eea53[_0x1fb1('0x1f')](_0x132014['TagId']);_0x3eea53[_0x1fb1('0x1f')](_0x132014[_0x1fb1('0x1e')]);break;default:_0x3eea53=_[_0x1fb1('0xd')](_0x132014[_0x1fb1('0x1e')])?[]:_0x132014[_0x1fb1('0x1e')]['split'](',');}var _0x5982c0={'id':util[_0x1fb1('0x27')](_0x1fb1('0x28'),_0x1e954e,_0x132014['id'],_0x132014['app']),'condition':require(_0x1fb1('0x29'))[_0x1fb1('0x2a')](_0x1e954e,getIntervals(_0x558b86[_0x1fb1('0x2b')],_0x132014),_0x558b86),'consequence':require(_0x1fb1('0x2c')+_0x132014[_0x1fb1('0x1a')])[_0x1fb1('0x2d')](_0x1e954e,_0x3eea53,_0x558b86,_0x5b8740),'p':_0x132014['priority']||0x0};logger['info'](_0x1fb1('0x2e'),_0x5982c0['id'],_0x1fb1('0x2f'),getIntervals(_0x558b86[_0x1fb1('0x2b')],_0x132014)['join'](_0x1fb1('0x30')));_0x1e9dcb[_0x1fb1('0x1f')](_0x5982c0);}else{logger[_0x1fb1('0x31')](_0x1fb1('0x32'),path['join'](__dirname,_0x1fb1('0x17'),_0x132014[_0x1fb1('0x1a')]+'.js'));}}_0x558b86[_0x1fb1('0x12')][_0x1e954e]=new RuleEngine(_0x1e9dcb);_0x558b86[_0x1fb1('0x12')][_0x1e954e][_0x1fb1('0x33')](_0x5b8740,function(_0x339211){logger[_0x1fb1('0x34')](_0x1fb1('0x35'),JSON[_0x1fb1('0x36')](_0x339211[_0x1fb1('0x37')]));if(_0x558b86['rules'][_0x1e954e]){_0x558b86[_0x1fb1('0x12')][_0x1e954e]['emit'](_0x1fb1('0x38'));}});return _0x111a00({'code':0xc8,'message':_0x5b8740});}else{logger[_0x1fb1('0x34')](_0x1fb1('0x39'));return _0x111a00({'code':0xc8,'message':_0x5b8740});}}catch(_0x4d5df2){logger['error'](_0x4d5df2[_0x1fb1('0x3a')]);return _0x210195(_0x5e7cd9[_0x1fb1('0x31')](0x1f4,_0x4d5df2));}}return _0x210195(_0x1fb1('0x3b'));});},'AcceptMessage':function(_0x1f6d41){var _0x4dc2ad=this;return new Promise(function(_0x39d701,_0x3693d8){if(_0x1f6d41[_0x1fb1('0x14')]&&_0x1f6d41[_0x1fb1('0x14')]['id']){try{var _0x130de0=getId(_0x1f6d41[_0x1fb1('0x13')],_0x1f6d41['message']?_0x1f6d41[_0x1fb1('0x14')]['id']:0x0,_0x1f6d41[_0x1fb1('0x15')]?_0x1f6d41[_0x1fb1('0x15')]['id']:0x0);if(_0x558b86[_0x1fb1('0x12')][_0x130de0]){_0x558b86[_0x1fb1('0x12')][_0x130de0][_0x1fb1('0x3c')](_0x1fb1('0x3d'));if(rpc[_0x1f6d41[_0x1fb1('0x13')]+_0x1fb1('0x3e')]){rpc[_0x1f6d41[_0x1fb1('0x13')]+_0x1fb1('0x3e')][_0x1fb1('0x3f')](_0x130de0,{'UserId':_0x1f6d41[_0x1fb1('0x14')][_0x1fb1('0x40')]})[_0x1fb1('0x41')](function(_0x55c305){logger[_0x1fb1('0x31')]('error\x20update\x20queue\x20report');});}}return _0x39d701({'code':0xc8,'message':_0x1f6d41});}catch(_0x818023){logger[_0x1fb1('0x31')](_0x818023['stack']);return _0x3693d8(_0x4dc2ad[_0x1fb1('0x31')](0x1f4,_0x818023));}}logger[_0x1fb1('0x31')](_0x1fb1('0x42'));return _0x3693d8(_0x4dc2ad['error'](0x1f4,_0x1fb1('0x42')));});},'RejectMessage':function(_0x539f13){var _0xa7454b=this;return new Promise(function(_0x6142a5,_0x2a5d18){if(_0x539f13[_0x1fb1('0x43')]&&_0x539f13[_0x1fb1('0x43')]['id']){try{if(_0x558b86[_0x1fb1('0x44')][_0x539f13['agent']['id']]){_0x558b86[_0x1fb1('0x44')][_0x539f13[_0x1fb1('0x43')]['id']][_0x1fb1('0x45')]=![];_0x558b86['agents'][_0x539f13['agent']['id']][_0x1fb1('0x46')]=undefined;}return _0x6142a5({'code':0xc8,'message':_0x539f13});}catch(_0x3e4d53){logger[_0x1fb1('0x31')](_0x3e4d53['stack']);return _0x2a5d18(_0xa7454b[_0x1fb1('0x31')](0x1f4,_0x3e4d53));}}logger[_0x1fb1('0x31')](_0x1fb1('0x42'));return _0x2a5d18(_0xa7454b[_0x1fb1('0x31')](0x1f4,_0x1fb1('0x42')));});},'AbandonInteraction':function(_0x5396d9){var _0x41f61c=this;return new Promise(function(_0x38891e,_0x18e48e){if(_0x5396d9[_0x1fb1('0x13')]&&_0x5396d9[_0x1fb1('0x15')]&&_0x5396d9[_0x1fb1('0x15')]['id']){try{var _0x11c801=getId(_0x5396d9[_0x1fb1('0x13')],_0x5396d9[_0x1fb1('0x14')]?_0x5396d9[_0x1fb1('0x14')]['id']:0x0,_0x5396d9['interaction']?_0x5396d9[_0x1fb1('0x15')]['id']:0x0);if(_0x558b86[_0x1fb1('0x12')][_0x11c801]){_0x558b86[_0x1fb1('0x12')][_0x11c801][_0x1fb1('0x3c')](_0x1fb1('0x3d'));}return _0x38891e({'code':0xc8,'message':_0x5396d9});}catch(_0x223ef4){logger[_0x1fb1('0x31')](_0x223ef4[_0x1fb1('0x3a')]);return _0x18e48e(_0x41f61c['error'](0x1f4,_0x223ef4));}}logger[_0x1fb1('0x31')](_0x1fb1('0x42'));return _0x18e48e(_0x41f61c[_0x1fb1('0x31')](0x1f4,_0x1fb1('0x42')));});},'AgentCapacity':function(_0x3db8f8){var _0x1112c1=this;return new Promise(function(_0x30e55e,_0x4663c4){if(_0x558b86[_0x1fb1('0x44')][_0x1fb1('0x47')](_0x3db8f8['id'])){for(var _0x470716 in _0x3db8f8[_0x1fb1('0x48')]){if(_0x3db8f8['capacity'][_0x1fb1('0x47')](_0x470716)){if(_0x558b86['agents'][_0x3db8f8['id']][_0x1fb1('0x47')](_0x470716+'CurrentCapacity')){_0x558b86[_0x1fb1('0x44')][_0x3db8f8['id']][_0x470716+_0x1fb1('0x49')]=parseInt(_0x3db8f8[_0x1fb1('0x48')][_0x470716],0xa);}}}_0x558b86[_0x1fb1('0x44')][_0x3db8f8['id']][_0x1fb1('0x4a')]();return _0x30e55e({'code':0xc8,'message':_0x558b86['agents'][_0x3db8f8['id']]});}else{return _0x4663c4(_0x1112c1['error'](0x1f4,_0x1fb1('0x4b')));}});},'Agents':function(_0x325b76){return new Promise(function(_0xdeebba,_0x1da46a){var _0x5eb7d7=_[_0x1fb1('0x4c')](_0x558b86[_0x1fb1('0x44')]);_0xdeebba({'count':_0x5eb7d7[_0x1fb1('0x18')],'rows':_0x5eb7d7});});},'ChatQueues':function(_0x43b64c){return new Promise(function(_0x312328,_0x32f19b){var _0x3d5d26=[];for(var _0x40f0e7 in _0x558b86[_0x1fb1('0x4d')]){if(_0x558b86[_0x1fb1('0x4d')]['hasOwnProperty'](_0x40f0e7)){var _0x479d9c=_0x558b86[_0x1fb1('0x4d')][_0x40f0e7];var _0x298d96={'id':_0x479d9c['id'],'available':_0x479d9c['available'],'loggedIn':_0x479d9c[_0x1fb1('0x4e')],'name':_0x479d9c[_0x1fb1('0x4f')],'paused':_0x479d9c[_0x1fb1('0x50')],'waiting':_0x479d9c[_0x1fb1('0x51')]};_0x3d5d26['push'](_0x298d96);}}_0x312328({'count':_0x3d5d26[_0x1fb1('0x18')],'rows':_0x3d5d26});});},'MailQueues':function(_0x50a061){return new Promise(function(_0x3fa206,_0x20aed1){var _0x31393c=[];for(var _0x9f8330 in _0x558b86[_0x1fb1('0x52')]){if(_0x558b86['mailQueues']['hasOwnProperty'](_0x9f8330)){var _0x3bd6f3=_0x558b86[_0x1fb1('0x52')][_0x9f8330];var _0x22dafa={'id':_0x3bd6f3['id'],'available':_0x3bd6f3[_0x1fb1('0x53')],'loggedIn':_0x3bd6f3['loggedIn'],'name':_0x3bd6f3[_0x1fb1('0x4f')],'paused':_0x3bd6f3[_0x1fb1('0x50')],'waiting':_0x3bd6f3[_0x1fb1('0x51')]};_0x31393c[_0x1fb1('0x1f')](_0x22dafa);}}_0x3fa206({'count':_0x31393c[_0x1fb1('0x18')],'rows':_0x31393c});});},'OpenchannelQueues':function(_0x336e39){return new Promise(function(_0x6be349,_0x508bf){var _0x55d07e=[];for(var _0x8d4f7a in _0x558b86[_0x1fb1('0x54')]){if(_0x558b86[_0x1fb1('0x54')][_0x1fb1('0x47')](_0x8d4f7a)){var _0x4a4708=_0x558b86[_0x1fb1('0x54')][_0x8d4f7a];var _0x584f13={'id':_0x4a4708['id'],'available':_0x4a4708[_0x1fb1('0x53')],'loggedIn':_0x4a4708[_0x1fb1('0x4e')],'name':_0x4a4708[_0x1fb1('0x4f')],'paused':_0x4a4708['paused'],'waiting':_0x4a4708[_0x1fb1('0x51')]};_0x55d07e[_0x1fb1('0x1f')](_0x584f13);}}_0x6be349({'count':_0x55d07e[_0x1fb1('0x18')],'rows':_0x55d07e});});},'SmsQueues':function(_0x422898){return new Promise(function(_0x249c82,_0x4aa711){var _0x752b22=[];for(var _0x491fb9 in _0x558b86[_0x1fb1('0x55')]){if(_0x558b86[_0x1fb1('0x55')]['hasOwnProperty'](_0x491fb9)){var _0x207414=_0x558b86[_0x1fb1('0x55')][_0x491fb9];var _0x28a0f6={'id':_0x207414['id'],'available':_0x207414[_0x1fb1('0x53')],'loggedIn':_0x207414[_0x1fb1('0x4e')],'name':_0x207414[_0x1fb1('0x4f')],'paused':_0x207414[_0x1fb1('0x50')],'waiting':_0x207414['waiting']};_0x752b22[_0x1fb1('0x1f')](_0x28a0f6);}}_0x249c82({'count':_0x752b22[_0x1fb1('0x18')],'rows':_0x752b22});});},'FaxQueues':function(_0x53ee18){return new Promise(function(_0x2334f9,_0x2eee69){var _0x3733c5=[];for(var _0x5691a5 in _0x558b86[_0x1fb1('0x56')]){if(_0x558b86[_0x1fb1('0x56')][_0x1fb1('0x47')](_0x5691a5)){var _0x3e69f2=_0x558b86['faxQueues'][_0x5691a5];var _0x3cd518={'id':_0x3e69f2['id'],'available':_0x3e69f2[_0x1fb1('0x53')],'loggedIn':_0x3e69f2[_0x1fb1('0x4e')],'name':_0x3e69f2[_0x1fb1('0x4f')],'paused':_0x3e69f2['paused'],'waiting':_0x3e69f2[_0x1fb1('0x51')]};_0x3733c5[_0x1fb1('0x1f')](_0x3cd518);}}_0x2334f9({'count':_0x3733c5[_0x1fb1('0x18')],'rows':_0x3733c5});});},'WhatsappQueues':function(_0x1b88cc){return new Promise(function(_0x7f23da,_0xb43f85){var _0x4135da=[];for(var _0x4e181d in _0x558b86[_0x1fb1('0x57')]){if(_0x558b86['whatsappQueues']['hasOwnProperty'](_0x4e181d)){var _0xfdc85=_0x558b86[_0x1fb1('0x57')][_0x4e181d];var _0x5403ff={'id':_0xfdc85['id'],'available':_0xfdc85[_0x1fb1('0x53')],'loggedIn':_0xfdc85[_0x1fb1('0x4e')],'name':_0xfdc85['name'],'paused':_0xfdc85[_0x1fb1('0x50')],'waiting':_0xfdc85[_0x1fb1('0x51')]};_0x4135da[_0x1fb1('0x1f')](_0x5403ff);}}_0x7f23da({'count':_0x4135da['length'],'rows':_0x4135da});});},'ChatQueuesWaitingInteractions':function(_0x2d9c84){return new Promise(function(_0x3cb29d,_0x5d8a51){var _0x3aa541=_[_0x1fb1('0x4c')](_0x558b86[_0x1fb1('0x58')]);_0x3cb29d({'count':_0x3aa541[_0x1fb1('0x18')],'rows':_0x3aa541});});},'MailQueuesWaitingInteractions':function(_0x3ea942){return new Promise(function(_0x1a55a5,_0x194947){var _0x54e91a=_[_0x1fb1('0x4c')](_0x558b86['mailQueuesWaitingInteractions']);_0x1a55a5({'count':_0x54e91a['length'],'rows':_0x54e91a});});},'OpenchannelQueuesWaitingInteractions':function(_0x16cefb){return new Promise(function(_0x2ad9fd,_0x2ef6d3){var _0x4d0465=_['values'](_0x558b86[_0x1fb1('0x59')]);_0x2ad9fd({'count':_0x4d0465[_0x1fb1('0x18')],'rows':_0x4d0465});});},'SmsQueuesWaitingInteractions':function(_0x155693){return new Promise(function(_0x3dfe0e,_0x48f8f8){var _0xe6fb64=_['values'](_0x558b86[_0x1fb1('0x5a')]);_0x3dfe0e({'count':_0xe6fb64['length'],'rows':_0xe6fb64});});},'FaxQueuesWaitingInteractions':function(_0x62b9af){return new Promise(function(_0x43eaba,_0x596d09){var _0x77ac58=_[_0x1fb1('0x4c')](_0x558b86[_0x1fb1('0x5b')]);_0x43eaba({'count':_0x77ac58[_0x1fb1('0x18')],'rows':_0x77ac58});});},'WhatsappQueuesWaitingInteractions':function(_0x3e2b13){return new Promise(function(_0x2ca027,_0x99dcf6){var _0x348828=_[_0x1fb1('0x4c')](_0x558b86[_0x1fb1('0x5c')]);_0x2ca027({'count':_0x348828[_0x1fb1('0x18')],'rows':_0x348828});});}};var _0x1504c7=jayson['server'](_0x130e45)[_0x1fb1('0x5d')]();_0x1504c7['on']('error',function(_0x4bb437){logger[_0x1fb1('0x31')](JSON[_0x1fb1('0x36')](_0x4bb437));return _0x37d143(_0x4bb437);});_0x1504c7['listen'](0x232c,'127.0.0.1',function(){console[_0x1fb1('0x5e')](_0x1fb1('0x5f'),0x232c);return _0x58996c(_0x1fb1('0x60')+0x232c);});});};