Built motion from commit 4d4d9a88.|2.6.26
[motion2.git] / server / services / agi / project.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 _0x82d1=['./mailRpc','./graph','./vertices','getSquareProjects','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','length','source','target','toJson','mxGraphModel','root','inspect','production','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','callerid','dnid','uniqueid','traverseBFS','start','clear','debug','vertex','context','extension','priority','response','stringify','code','result','evtHangup','isUndefined','toString','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','agicommand\x20not\x20found','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','Project\x20%s\x20not\x20found','continueAt','close','exports','lodash','moment','util','../../config/logger','./rpc'];(function(_0x4b902f,_0x527163){var _0x288a4=function(_0x3b1afc){while(--_0x3b1afc){_0x4b902f['push'](_0x4b902f['shift']());}};_0x288a4(++_0x527163);}(_0x82d1,0x1d3));var _0x182d=function(_0x432460,_0x5d446d){_0x432460=_0x432460-0x0;var _0x3fd04b=_0x82d1[_0x432460];return _0x3fd04b;};'use strict';var _=require(_0x182d('0x0'));var moment=require(_0x182d('0x1'));var parser=require('xml2json');var util=require(_0x182d('0x2'));var logger=require(_0x182d('0x3'))('agi');var rpc=require(_0x182d('0x4'));var mailRpc=require(_0x182d('0x5'));var Graph=require(_0x182d('0x6'));var Vertices=require(_0x182d('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x182d('0x8')]()['catch'](function(_0x474352){logger[_0x182d('0x9')](_0x182d('0xa'),_0x474352[_0x182d('0xb')]);return[];});}function addVertex(_0x1cedbb,_0x470bce,_0x5b215d){_0x470bce[_0x182d('0xc')]=_0x5b215d;if(_0x470bce[_0x182d('0xd')](_0x182d('0xe'))){_0x470bce[_0x182d('0xf')]=parseInt(_0x470bce[_0x182d('0xe')],0xa);}_0x1cedbb[_0x182d('0x10')](_[_0x182d('0x11')](_0x470bce,_0x182d('0x12')));}function initGraph(_0x1827c7,_0x1a3334){var _0x174efc=new Graph();for(var _0xc8f76b in _0x1827c7){if(_0x1827c7[_0x182d('0xd')](_0xc8f76b)){if(_['isArray'](_0x1827c7[_0xc8f76b])){for(var _0x3f92e0=0x0;_0x3f92e0<_0x1827c7[_0xc8f76b]['length'];_0x3f92e0+=0x1){addVertex(_0x174efc,_0x1827c7[_0xc8f76b][_0x3f92e0],_0xc8f76b);}}else{addVertex(_0x174efc,_0x1827c7[_0xc8f76b],_0xc8f76b);}}}for(var _0x4fc163=0x0;_0x4fc163<_0x1a3334[_0x182d('0x13')];_0x4fc163+=0x1){if(_0x1a3334[_0x4fc163][_0x182d('0x14')]&&_0x1a3334[_0x4fc163][_0x182d('0x15')]){_0x174efc['addEdge'](_0x1a3334[_0x4fc163][_0x182d('0x14')],_0x1a3334[_0x4fc163][_0x182d('0x15')],_0x1a3334[_0x4fc163]['value']);}}return _0x174efc;}function getRoot(_0x43ac69){return parser[_0x182d('0x16')](_0x43ac69,{'object':!![]})[_0x182d('0x17')][_0x182d('0x18')];}function inspect(_0x14f1fc){return util[_0x182d('0x19')](_0x14f1fc,{'showHidden':![],'depth':null});}function initialize(_0x14abb6,_0x37ab5b){var _0x5165bc=getRoot(_0x14abb6[_0x182d('0x1a')]);if(!_0x5165bc||!_0x5165bc['start'])return;var _0x471df4,_0x5dc693,_0x1af412;logger['debug'](_0x182d('0x18'),JSON['stringify'](_0x5165bc,null,0x2));_0x37ab5b[_0x182d('0x1b')]=moment()[_0x182d('0x1c')](_0x182d('0x1d'));_0x471df4=initGraph(_[_0x182d('0x11')](_0x5165bc,_0x182d('0x12')),_0x5165bc[_0x182d('0x12')]);_0x5dc693=new Vertices(_0x37ab5b,rpc,mailRpc);logger[_0x182d('0x1e')](util['format'](_0x182d('0x1f'),_0x37ab5b['arg_1'],_0x37ab5b['calleridname'],_0x37ab5b[_0x182d('0x20')],_0x37ab5b[_0x182d('0x21')],_0x37ab5b[_0x182d('0x22')]));_0x471df4[_0x182d('0x23')](_0x5165bc[_0x182d('0x24')]['id'],function(_0x18a4fd){try{_0x18a4fd=_0x5dc693[_0x182d('0x25')](_0x18a4fd);logger[_0x182d('0x26')](_0x182d('0x27'),JSON['stringify'](_0x18a4fd,null,0x2));if(_0x18a4fd['agicommand']==='gotoc'){logger[_0x182d('0x1e')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x37ab5b[_0x182d('0x28')]=_0x18a4fd[_0x182d('0x28')]||_0x37ab5b[_0x182d('0x28')];_0x37ab5b['extension']=_0x18a4fd[_0x182d('0x29')];_0x37ab5b[_0x182d('0x2a')]=_0x18a4fd[_0x182d('0x2a')]?_0x18a4fd[_0x182d('0x2a')]-0x1:0x1;return null;}else if(_0x18a4fd&&_0x5dc693[_0x18a4fd[_0x182d('0xc')]]){_0x1af412=_0x5dc693[_0x18a4fd[_0x182d('0xc')]](_0x18a4fd);logger[_0x182d('0x1e')](_0x182d('0x2b'),JSON[_0x182d('0x2c')](_0x1af412,null,0x2));if(_0x1af412&&_0x1af412[_0x182d('0x2d')]===AGI_CODE_SUCCESS&&_0x1af412[_0x182d('0x2e')]!==AGI_RESULT_ERROR&&!_0x37ab5b[_0x182d('0x2f')]){logger['debug']('response',inspect(_0x1af412));return _[_0x182d('0x30')](_0x1af412[_0x182d('0x2e')])?null:_0x1af412[_0x182d('0x2e')][_0x182d('0x31')]();}else{logger[_0x182d('0x9')]('response',inspect(_0x1af412));return null;}}else{logger[_0x182d('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x4747e8){logger[_0x182d('0x9')](_0x4747e8[_0x182d('0xb')]);return null;}});if(_0x5165bc[_0x182d('0x32')]){logger[_0x182d('0x1e')](util[_0x182d('0x1c')](_0x182d('0x33'),_0x37ab5b['arg_1'],_0x37ab5b['calleridname'],_0x37ab5b[_0x182d('0x20')],_0x37ab5b[_0x182d('0x21')],_0x37ab5b[_0x182d('0x22')]));_0x471df4[_0x182d('0x23')](_0x5165bc['finally']['id'],function(_0x153338){try{_0x153338=_0x5dc693[_0x182d('0x25')](_0x153338);logger[_0x182d('0x26')](_0x182d('0x27'),JSON['stringify'](_0x153338,null,0x2));if(_0x153338&&_0x5dc693[_0x153338['agicommand']]){_0x1af412=_0x5dc693[_0x153338['agicommand']](_0x153338);if(_0x1af412){logger[_0x182d('0x26')](_0x182d('0x2b'),inspect(_0x1af412));return _[_0x182d('0x30')](_0x1af412[_0x182d('0x2e')])?null:_0x1af412[_0x182d('0x2e')]['toString']();}else{logger[_0x182d('0x9')](_0x182d('0x2b'),inspect(_0x1af412));return null;}}else{logger['error'](_0x182d('0x34'));return null;}}catch(_0x387ad9){logger['error'](_0x387ad9[_0x182d('0xb')]);return null;}});}logger[_0x182d('0x1e')](util[_0x182d('0x1c')](_0x182d('0x35'),_0x37ab5b[_0x182d('0x36')],_0x37ab5b['calleridname'],_0x37ab5b['callerid'],_0x37ab5b[_0x182d('0x21')],_0x37ab5b[_0x182d('0x22')]));logger[_0x182d('0x1e')](util[_0x182d('0x1c')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x37ab5b[_0x182d('0x28')],_0x37ab5b[_0x182d('0x29')],parseInt(_0x37ab5b[_0x182d('0x2a')],0xa)+0x1));_0x37ab5b['continueAt'](_0x37ab5b[_0x182d('0x28')],_0x37ab5b[_0x182d('0x29')],parseInt(_0x37ab5b[_0x182d('0x2a')],0xa)+0x1);_0x37ab5b['close']();}function handleNotFound(_0x460531){logger['error'](util['format'](_0x182d('0x37'),_0x460531[_0x182d('0x36')]));_0x460531[_0x182d('0x38')](_0x460531['context'],_0x460531[_0x182d('0x29')],parseInt(_0x460531['priority'],0xa)+0x1);_0x460531[_0x182d('0x39')]();}function handleUnpublished(_0x6d8cbf){logger[_0x182d('0x9')](util[_0x182d('0x1c')]('Project\x20%s\x20not\x20published',_0x6d8cbf[_0x182d('0x36')]));_0x6d8cbf[_0x182d('0x38')](_0x6d8cbf[_0x182d('0x28')],_0x6d8cbf['extension'],parseInt(_0x6d8cbf[_0x182d('0x2a')],0xa)+0x1);_0x6d8cbf[_0x182d('0x39')]();}module[_0x182d('0x3a')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};