Built motion from commit (unavailable).|2.5.13
[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 _0xceff=['../rpc/whatsappQueueReport','../lib/rule-engine','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','channel','message','interaction','length','applications','existsSync','join','.js','app','toLowerCase','autoreply','appdata','split','push','slice','dialogflow','dialogflowv2','tag','TagId','format','%s:%s:%s','./interval','intervals','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','rules','execute','Applications\x20executed','stringify','matchPath','emit','complete','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','QueueReport','update','UserId','error\x20update\x20queue\x20report','message\x20is\x20empty','agent','agents','busy','end','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','values','chatQueues','available','loggedIn','paused','mailQueues','name','openchannelQueues','waiting','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','server','http','listen','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','jayson/promise','bluebird','../../../config/environment','routing','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/faxQueueReport'];(function(_0x3630b3,_0xf9b5b4){var _0x39f866=function(_0x2721f1){while(--_0x2721f1){_0x3630b3['push'](_0x3630b3['shift']());}};_0x39f866(++_0xf9b5b4);}(_0xceff,0xb0));var _0xfcef=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0xceff[_0x24061a];return _0x82054e;};'use strict';var _=require(_0xfcef('0x0'));var util=require('util');var path=require('path');var fs=require('fs');var jayson=require(_0xfcef('0x1'));var BPromise=require(_0xfcef('0x2'));var uuid=require('uuid');var config=require(_0xfcef('0x3'));var logger=require('../../../config/logger')(_0xfcef('0x4'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport'),'mailQueueReport':require(_0xfcef('0x5')),'chatQueueReport':require(_0xfcef('0x6')),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require(_0xfcef('0x7')),'whatsappQueueReport':require(_0xfcef('0x8'))};var RuleEngine=require(_0xfcef('0x9'));function getId(_0x5c01bb,_0x21793e,_0x5f3e4c){return util['format'](_0xfcef('0xa'),_0x5c01bb,_0x21793e||0x0,_0x5f3e4c||0x0);}function getIntervals(_0x3492d5,_0x35ebf2){var _0x14702d=[];if(!_[_0xfcef('0xb')](_0x35ebf2[_0xfcef('0xc')])&&!_[_0xfcef('0xb')](_0x3492d5[_0x35ebf2[_0xfcef('0xc')]])&&!_[_0xfcef('0xb')](_0x3492d5[_0x35ebf2[_0xfcef('0xc')]][_0xfcef('0xd')])){_0x14702d=_[_0xfcef('0xe')](_0x3492d5[_0x35ebf2['IntervalId']]['Intervals'],'interval');}else if(!_[_0xfcef('0xb')](_0x35ebf2[_0xfcef('0xf')])){_0x14702d=[_0x35ebf2[_0xfcef('0xf')]];}return _0x14702d;}exports['listen']=function(_0x569568){_0x569568['rules']={};return new BPromise(function(_0x3f79a8,_0x46aeb0){var _0x3348ef={'Start':function(_0x20aa18){var _0x51a649=this;return new Promise(function(_0x32f772,_0x4e279b){if(_0x20aa18){try{var _0x3a1837=[];var _0x3032e4=getId(_0x20aa18[_0xfcef('0x10')],_0x20aa18['message']?_0x20aa18[_0xfcef('0x11')]['id']:0x0,_0x20aa18['interaction']?_0x20aa18[_0xfcef('0x12')]['id']:0x0);if(_0x20aa18['applications']&&_['isArray'](_0x20aa18['applications'])&&_0x20aa18['applications'][_0xfcef('0x13')]){for(var _0x638c67=0x0;_0x638c67<_0x20aa18[_0xfcef('0x14')][_0xfcef('0x13')];_0x638c67+=0x1){var _0x454620=_0x20aa18[_0xfcef('0x14')][_0x638c67];if(fs[_0xfcef('0x15')](path[_0xfcef('0x16')](__dirname,_0xfcef('0x14'),_0x454620['app']+_0xfcef('0x17')))){var _0x1171c1=[];switch(_0x454620[_0xfcef('0x18')][_0xfcef('0x19')]()){case _0xfcef('0x1a'):var _0x3fe464=_0x454620[_0xfcef('0x1b')][_0xfcef('0x1c')](',');_0x1171c1['push'](_0x3fe464[0x0]);_0x1171c1[_0xfcef('0x1d')](_0x3fe464[_0xfcef('0x1e')](0x1,_0x3fe464[_0xfcef('0x13')])['join'](','));break;case _0xfcef('0x1f'):var _0x1f461b=_0x454620['appdata'][_0xfcef('0x1c')](',');_0x1171c1[_0xfcef('0x1d')](_0x1f461b[0x0]);_0x1171c1[_0xfcef('0x1d')](_0x1f461b[0x1]);_0x1171c1[_0xfcef('0x1d')](_0x1f461b[_0xfcef('0x1e')](0x2,_0x1f461b[_0xfcef('0x13')])[_0xfcef('0x16')](','));break;case _0xfcef('0x20'):var _0x126005=_0x454620[_0xfcef('0x1b')][_0xfcef('0x1c')](',');_0x1171c1[_0xfcef('0x1d')](_0x126005[0x0]);_0x1171c1[_0xfcef('0x1d')](_0x126005[0x1]);_0x1171c1[_0xfcef('0x1d')](_0x126005[0x2]);_0x1171c1[_0xfcef('0x1d')](_0x126005[0x3]);_0x1171c1['push'](_0x126005[_0xfcef('0x1e')](0x4,_0x126005[_0xfcef('0x13')])[_0xfcef('0x16')](','));break;case'amazonlex':var _0x21222d=_0x454620[_0xfcef('0x1b')][_0xfcef('0x1c')](',');_0x1171c1[_0xfcef('0x1d')](_0x21222d[0x0]);_0x1171c1['push'](_0x21222d[0x1]);_0x1171c1[_0xfcef('0x1d')](_0x21222d[0x2]);_0x1171c1[_0xfcef('0x1d')](_0x21222d[0x3]);_0x1171c1[_0xfcef('0x1d')](_0x21222d[_0xfcef('0x1e')](0x4,_0x21222d['length'])[_0xfcef('0x16')](','));break;case _0xfcef('0x11'):_0x1171c1[_0xfcef('0x1d')](_0x454620[_0xfcef('0x1b')]);break;case _0xfcef('0x21'):_0x1171c1[_0xfcef('0x1d')](_0x454620[_0xfcef('0x22')]);_0x1171c1['push'](_0x454620[_0xfcef('0x1b')]);break;default:_0x1171c1=_['isNil'](_0x454620[_0xfcef('0x1b')])?[]:_0x454620[_0xfcef('0x1b')][_0xfcef('0x1c')](',');}var _0x2d7423={'id':util[_0xfcef('0x23')](_0xfcef('0x24'),_0x3032e4,_0x454620['id'],_0x454620['app']),'condition':require(_0xfcef('0x25'))['condition'](_0x3032e4,getIntervals(_0x569568[_0xfcef('0x26')],_0x454620),_0x569568),'consequence':require('./applications/'+_0x454620[_0xfcef('0x18')])[_0xfcef('0x27')](_0x3032e4,_0x1171c1,_0x569568,_0x20aa18),'p':_0x454620[_0xfcef('0x28')]||0x0};logger[_0xfcef('0x29')](_0xfcef('0x2a'),_0x2d7423['id'],_0xfcef('0x2b'),getIntervals(_0x569568[_0xfcef('0x26')],_0x454620)[_0xfcef('0x16')](_0xfcef('0x2c')));_0x3a1837['push'](_0x2d7423);}else{logger[_0xfcef('0x2d')](_0xfcef('0x2e'),path[_0xfcef('0x16')](__dirname,_0xfcef('0x14'),_0x454620[_0xfcef('0x18')]+_0xfcef('0x17')));}}_0x569568[_0xfcef('0x2f')][_0x3032e4]=new RuleEngine(_0x3a1837);_0x569568[_0xfcef('0x2f')][_0x3032e4][_0xfcef('0x30')](_0x20aa18,function(_0xe99771){logger[_0xfcef('0x29')](_0xfcef('0x31'),JSON[_0xfcef('0x32')](_0xe99771[_0xfcef('0x33')]));if(_0x569568[_0xfcef('0x2f')][_0x3032e4]){_0x569568[_0xfcef('0x2f')][_0x3032e4][_0xfcef('0x34')](_0xfcef('0x35'));}});return _0x32f772({'code':0xc8,'message':_0x20aa18});}else{logger[_0xfcef('0x29')](_0xfcef('0x36'));return _0x32f772({'code':0xc8,'message':_0x20aa18});}}catch(_0x2613cd){logger[_0xfcef('0x2d')](_0x2613cd[_0xfcef('0x37')]);return _0x4e279b(_0x51a649[_0xfcef('0x2d')](0x1f4,_0x2613cd));}}return _0x4e279b(_0xfcef('0x38'));});},'AcceptMessage':function(_0x3fc216){var _0x2d76a6=this;return new Promise(function(_0x4e67d9,_0x68ccb6){if(_0x3fc216[_0xfcef('0x11')]&&_0x3fc216[_0xfcef('0x11')]['id']){try{var _0x5c7497=getId(_0x3fc216[_0xfcef('0x10')],_0x3fc216[_0xfcef('0x11')]?_0x3fc216[_0xfcef('0x11')]['id']:0x0,_0x3fc216[_0xfcef('0x12')]?_0x3fc216[_0xfcef('0x12')]['id']:0x0);if(_0x569568[_0xfcef('0x2f')][_0x5c7497]){_0x569568['rules'][_0x5c7497][_0xfcef('0x34')]('end');if(rpc[_0x3fc216[_0xfcef('0x10')]+'QueueReport']){rpc[_0x3fc216['channel']+_0xfcef('0x39')][_0xfcef('0x3a')](_0x5c7497,{'UserId':_0x3fc216[_0xfcef('0x11')][_0xfcef('0x3b')]})['catch'](function(_0x9211d5){logger[_0xfcef('0x2d')](_0xfcef('0x3c'));});}}return _0x4e67d9({'code':0xc8,'message':_0x3fc216});}catch(_0x10b67f){logger[_0xfcef('0x2d')](_0x10b67f[_0xfcef('0x37')]);return _0x68ccb6(_0x2d76a6[_0xfcef('0x2d')](0x1f4,_0x10b67f));}}logger['error']('message\x20is\x20empty');return _0x68ccb6(_0x2d76a6[_0xfcef('0x2d')](0x1f4,_0xfcef('0x3d')));});},'RejectMessage':function(_0x570001){var _0x25f2e7=this;return new Promise(function(_0x284e4d,_0x5df1d1){if(_0x570001[_0xfcef('0x3e')]&&_0x570001['agent']['id']){try{if(_0x569568[_0xfcef('0x3f')][_0x570001[_0xfcef('0x3e')]['id']]){_0x569568[_0xfcef('0x3f')][_0x570001[_0xfcef('0x3e')]['id']][_0xfcef('0x40')]=![];_0x569568[_0xfcef('0x3f')][_0x570001[_0xfcef('0x3e')]['id']]['busyQueue']=undefined;}return _0x284e4d({'code':0xc8,'message':_0x570001});}catch(_0x5a6049){logger[_0xfcef('0x2d')](_0x5a6049['stack']);return _0x5df1d1(_0x25f2e7[_0xfcef('0x2d')](0x1f4,_0x5a6049));}}logger[_0xfcef('0x2d')](_0xfcef('0x3d'));return _0x5df1d1(_0x25f2e7[_0xfcef('0x2d')](0x1f4,_0xfcef('0x3d')));});},'AbandonInteraction':function(_0x13c308){var _0x2a9a17=this;return new Promise(function(_0x351433,_0x1f727b){if(_0x13c308[_0xfcef('0x10')]&&_0x13c308[_0xfcef('0x12')]&&_0x13c308[_0xfcef('0x12')]['id']){try{var _0x4578cc=getId(_0x13c308['channel'],_0x13c308[_0xfcef('0x11')]?_0x13c308[_0xfcef('0x11')]['id']:0x0,_0x13c308[_0xfcef('0x12')]?_0x13c308[_0xfcef('0x12')]['id']:0x0);if(_0x569568[_0xfcef('0x2f')][_0x4578cc]){_0x569568[_0xfcef('0x2f')][_0x4578cc]['emit'](_0xfcef('0x41'));}return _0x351433({'code':0xc8,'message':_0x13c308});}catch(_0x4f2fce){logger[_0xfcef('0x2d')](_0x4f2fce[_0xfcef('0x37')]);return _0x1f727b(_0x2a9a17['error'](0x1f4,_0x4f2fce));}}logger['error'](_0xfcef('0x3d'));return _0x1f727b(_0x2a9a17[_0xfcef('0x2d')](0x1f4,_0xfcef('0x3d')));});},'AgentCapacity':function(_0x2eb34b){var _0x11f441=this;return new Promise(function(_0x54fdc3,_0x46a77f){if(_0x569568['agents'][_0xfcef('0x42')](_0x2eb34b['id'])){for(var _0x1aa311 in _0x2eb34b[_0xfcef('0x43')]){if(_0x2eb34b[_0xfcef('0x43')][_0xfcef('0x42')](_0x1aa311)){if(_0x569568[_0xfcef('0x3f')][_0x2eb34b['id']][_0xfcef('0x42')](_0x1aa311+'CurrentCapacity')){_0x569568[_0xfcef('0x3f')][_0x2eb34b['id']][_0x1aa311+_0xfcef('0x44')]=parseInt(_0x2eb34b['capacity'][_0x1aa311],0xa);}}}_0x569568[_0xfcef('0x3f')][_0x2eb34b['id']][_0xfcef('0x45')]();return _0x54fdc3({'code':0xc8,'message':_0x569568[_0xfcef('0x3f')][_0x2eb34b['id']]});}else{return _0x46a77f(_0x11f441['error'](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0xdd6d1e){return new Promise(function(_0x5a11b9,_0x1ebc8a){var _0x38c262=_[_0xfcef('0x46')](_0x569568[_0xfcef('0x3f')]);_0x5a11b9({'count':_0x38c262[_0xfcef('0x13')],'rows':_0x38c262});});},'ChatQueues':function(_0x4d5baf){return new Promise(function(_0x339122,_0x8f28d5){var _0x4966ea=[];for(var _0x39c24d in _0x569568[_0xfcef('0x47')]){if(_0x569568[_0xfcef('0x47')][_0xfcef('0x42')](_0x39c24d)){var _0x4a7339=_0x569568[_0xfcef('0x47')][_0x39c24d];var _0x760fbb={'id':_0x4a7339['id'],'available':_0x4a7339[_0xfcef('0x48')],'loggedIn':_0x4a7339[_0xfcef('0x49')],'name':_0x4a7339['name'],'paused':_0x4a7339[_0xfcef('0x4a')],'waiting':_0x4a7339['waiting']};_0x4966ea[_0xfcef('0x1d')](_0x760fbb);}}_0x339122({'count':_0x4966ea['length'],'rows':_0x4966ea});});},'MailQueues':function(_0x5ac8be){return new Promise(function(_0x2738a1,_0xa476f6){var _0x4a0cbc=[];for(var _0x4c7fe5 in _0x569568[_0xfcef('0x4b')]){if(_0x569568[_0xfcef('0x4b')][_0xfcef('0x42')](_0x4c7fe5)){var _0x2f5faa=_0x569568[_0xfcef('0x4b')][_0x4c7fe5];var _0x23f7ec={'id':_0x2f5faa['id'],'available':_0x2f5faa[_0xfcef('0x48')],'loggedIn':_0x2f5faa['loggedIn'],'name':_0x2f5faa[_0xfcef('0x4c')],'paused':_0x2f5faa['paused'],'waiting':_0x2f5faa['waiting']};_0x4a0cbc['push'](_0x23f7ec);}}_0x2738a1({'count':_0x4a0cbc[_0xfcef('0x13')],'rows':_0x4a0cbc});});},'OpenchannelQueues':function(_0x150b6f){return new Promise(function(_0x1ce427,_0x3144ef){var _0x3cecb0=[];for(var _0xe48708 in _0x569568[_0xfcef('0x4d')]){if(_0x569568[_0xfcef('0x4d')][_0xfcef('0x42')](_0xe48708)){var _0x4d3a4e=_0x569568[_0xfcef('0x4d')][_0xe48708];var _0x11c036={'id':_0x4d3a4e['id'],'available':_0x4d3a4e[_0xfcef('0x48')],'loggedIn':_0x4d3a4e[_0xfcef('0x49')],'name':_0x4d3a4e[_0xfcef('0x4c')],'paused':_0x4d3a4e[_0xfcef('0x4a')],'waiting':_0x4d3a4e[_0xfcef('0x4e')]};_0x3cecb0['push'](_0x11c036);}}_0x1ce427({'count':_0x3cecb0['length'],'rows':_0x3cecb0});});},'SmsQueues':function(_0xa735c2){return new Promise(function(_0x1d4b31,_0x1a5076){var _0x23be3e=[];for(var _0x13e920 in _0x569568[_0xfcef('0x4f')]){if(_0x569568['smsQueues'][_0xfcef('0x42')](_0x13e920)){var _0x5911b6=_0x569568[_0xfcef('0x4f')][_0x13e920];var _0x284b7e={'id':_0x5911b6['id'],'available':_0x5911b6[_0xfcef('0x48')],'loggedIn':_0x5911b6[_0xfcef('0x49')],'name':_0x5911b6[_0xfcef('0x4c')],'paused':_0x5911b6[_0xfcef('0x4a')],'waiting':_0x5911b6[_0xfcef('0x4e')]};_0x23be3e[_0xfcef('0x1d')](_0x284b7e);}}_0x1d4b31({'count':_0x23be3e[_0xfcef('0x13')],'rows':_0x23be3e});});},'FaxQueues':function(_0x5ce540){return new Promise(function(_0x12a8b9,_0x3fdb9f){var _0x98b77d=[];for(var _0x25ac7a in _0x569568['faxQueues']){if(_0x569568[_0xfcef('0x50')][_0xfcef('0x42')](_0x25ac7a)){var _0x4cce90=_0x569568['faxQueues'][_0x25ac7a];var _0x33c137={'id':_0x4cce90['id'],'available':_0x4cce90['available'],'loggedIn':_0x4cce90[_0xfcef('0x49')],'name':_0x4cce90[_0xfcef('0x4c')],'paused':_0x4cce90[_0xfcef('0x4a')],'waiting':_0x4cce90['waiting']};_0x98b77d[_0xfcef('0x1d')](_0x33c137);}}_0x12a8b9({'count':_0x98b77d[_0xfcef('0x13')],'rows':_0x98b77d});});},'WhatsappQueues':function(_0x51462f){return new Promise(function(_0x26bd9b,_0x512ff3){var _0x4e5341=[];for(var _0x25095d in _0x569568[_0xfcef('0x51')]){if(_0x569568[_0xfcef('0x51')][_0xfcef('0x42')](_0x25095d)){var _0x3c102b=_0x569568['whatsappQueues'][_0x25095d];var _0x1380fe={'id':_0x3c102b['id'],'available':_0x3c102b[_0xfcef('0x48')],'loggedIn':_0x3c102b[_0xfcef('0x49')],'name':_0x3c102b[_0xfcef('0x4c')],'paused':_0x3c102b[_0xfcef('0x4a')],'waiting':_0x3c102b[_0xfcef('0x4e')]};_0x4e5341[_0xfcef('0x1d')](_0x1380fe);}}_0x26bd9b({'count':_0x4e5341[_0xfcef('0x13')],'rows':_0x4e5341});});},'ChatQueuesWaitingInteractions':function(_0x2d4664){return new Promise(function(_0x739523,_0x70d97c){var _0x51521e=_[_0xfcef('0x46')](_0x569568[_0xfcef('0x52')]);_0x739523({'count':_0x51521e[_0xfcef('0x13')],'rows':_0x51521e});});},'MailQueuesWaitingInteractions':function(_0x2eceef){return new Promise(function(_0x2826d6,_0x4e5796){var _0x741d1f=_[_0xfcef('0x46')](_0x569568[_0xfcef('0x53')]);_0x2826d6({'count':_0x741d1f[_0xfcef('0x13')],'rows':_0x741d1f});});},'OpenchannelQueuesWaitingInteractions':function(_0x51b27e){return new Promise(function(_0x3933e9,_0x2c8050){var _0x47736c=_[_0xfcef('0x46')](_0x569568[_0xfcef('0x54')]);_0x3933e9({'count':_0x47736c[_0xfcef('0x13')],'rows':_0x47736c});});},'SmsQueuesWaitingInteractions':function(_0x4b2d14){return new Promise(function(_0x3b8f4d,_0x3b4685){var _0x43278b=_[_0xfcef('0x46')](_0x569568['smsQueuesWaitingInteractions']);_0x3b8f4d({'count':_0x43278b[_0xfcef('0x13')],'rows':_0x43278b});});},'FaxQueuesWaitingInteractions':function(_0x405fe5){return new Promise(function(_0x59e324,_0x59ac0e){var _0x595ed3=_[_0xfcef('0x46')](_0x569568['faxQueuesWaitingInteractions']);_0x59e324({'count':_0x595ed3[_0xfcef('0x13')],'rows':_0x595ed3});});},'WhatsappQueuesWaitingInteractions':function(_0x24b61a){return new Promise(function(_0x741cbd,_0x9f81f1){var _0x157cf1=_[_0xfcef('0x46')](_0x569568['whatsappQueuesWaitingInteractions']);_0x741cbd({'count':_0x157cf1[_0xfcef('0x13')],'rows':_0x157cf1});});}};var _0x3d7077=jayson[_0xfcef('0x55')](_0x3348ef)[_0xfcef('0x56')]();_0x3d7077['on'](_0xfcef('0x2d'),function(_0x114d03){logger[_0xfcef('0x2d')](JSON[_0xfcef('0x32')](_0x114d03));return _0x46aeb0(_0x114d03);});_0x3d7077[_0xfcef('0x57')](0x232c,_0xfcef('0x58'),function(){console[_0xfcef('0x59')](_0xfcef('0x5a'),0x232c);return _0x3f79a8(_0xfcef('0x5b')+0x232c);});});};