Built motion from commit f623a78c.|2.6.31
[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 _0xe4e1=['source','toJson','mxGraphModel','root','inspect','production','start','debug','stringify','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','mxCell','info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','callerid','dnid','uniqueid','traverseBFS','clear','vertex','gotoc','context','extension','priority','response','code','result','evtHangup','toString','error','agicommand\x20not\x20found','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','finally','isUndefined','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','close','Project\x20%s\x20not\x20found','continueAt','exports','lodash','moment','xml2json','agi','./rpc','./graph','./vertices','getSquareProjects','catch','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','retry','maxRetry','omit','hasOwnProperty','isArray','length','target','addEdge'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0xe4e1,0xa9));var _0x1e4e=function(_0x2bc074,_0x34fc7e){_0x2bc074=_0x2bc074-0x0;var _0x58391c=_0xe4e1[_0x2bc074];return _0x58391c;};'use strict';var _=require(_0x1e4e('0x0'));var moment=require(_0x1e4e('0x1'));var parser=require(_0x1e4e('0x2'));var util=require('util');var logger=require('../../config/logger')(_0x1e4e('0x3'));var rpc=require(_0x1e4e('0x4'));var mailRpc=require('./mailRpc');var Graph=require(_0x1e4e('0x5'));var Vertices=require(_0x1e4e('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x1e4e('0x7')]()[_0x1e4e('0x8')](function(_0x985577){logger['error'](_0x1e4e('0x9'),_0x985577[_0x1e4e('0xa')]);return[];});}function addVertex(_0x4717b2,_0x238a1a,_0x2cdd79){_0x238a1a[_0x1e4e('0xb')]=_0x2cdd79;if(_0x238a1a['hasOwnProperty'](_0x1e4e('0xc'))){_0x238a1a[_0x1e4e('0xd')]=parseInt(_0x238a1a[_0x1e4e('0xc')],0xa);}_0x4717b2['addVertex'](_[_0x1e4e('0xe')](_0x238a1a,'mxCell'));}function initGraph(_0x24e733,_0x2a6483){var _0xb03c8e=new Graph();for(var _0x4be0a3 in _0x24e733){if(_0x24e733[_0x1e4e('0xf')](_0x4be0a3)){if(_[_0x1e4e('0x10')](_0x24e733[_0x4be0a3])){for(var _0x5d03e9=0x0;_0x5d03e9<_0x24e733[_0x4be0a3][_0x1e4e('0x11')];_0x5d03e9+=0x1){addVertex(_0xb03c8e,_0x24e733[_0x4be0a3][_0x5d03e9],_0x4be0a3);}}else{addVertex(_0xb03c8e,_0x24e733[_0x4be0a3],_0x4be0a3);}}}for(var _0x3db138=0x0;_0x3db138<_0x2a6483[_0x1e4e('0x11')];_0x3db138+=0x1){if(_0x2a6483[_0x3db138]['source']&&_0x2a6483[_0x3db138][_0x1e4e('0x12')]){_0xb03c8e[_0x1e4e('0x13')](_0x2a6483[_0x3db138][_0x1e4e('0x14')],_0x2a6483[_0x3db138][_0x1e4e('0x12')],_0x2a6483[_0x3db138]['value']);}}return _0xb03c8e;}function getRoot(_0x26125c){return parser[_0x1e4e('0x15')](_0x26125c,{'object':!![]})[_0x1e4e('0x16')][_0x1e4e('0x17')];}function inspect(_0x4213e9){return util[_0x1e4e('0x18')](_0x4213e9,{'showHidden':![],'depth':null});}function initialize(_0x414766,_0x4e0a22){var _0x6f2e25=getRoot(_0x414766[_0x1e4e('0x19')]);if(!_0x6f2e25||!_0x6f2e25[_0x1e4e('0x1a')])return;var _0x46a8e3,_0x125531,_0x4658c6;logger[_0x1e4e('0x1b')](_0x1e4e('0x17'),JSON[_0x1e4e('0x1c')](_0x6f2e25,null,0x2));_0x4e0a22[_0x1e4e('0x1d')]=moment()[_0x1e4e('0x1e')](_0x1e4e('0x1f'));_0x46a8e3=initGraph(_[_0x1e4e('0xe')](_0x6f2e25,_0x1e4e('0x20')),_0x6f2e25[_0x1e4e('0x20')]);_0x125531=new Vertices(_0x4e0a22,rpc,mailRpc);logger[_0x1e4e('0x21')](util[_0x1e4e('0x1e')](_0x1e4e('0x22'),_0x4e0a22['arg_1'],_0x4e0a22[_0x1e4e('0x23')],_0x4e0a22[_0x1e4e('0x24')],_0x4e0a22[_0x1e4e('0x25')],_0x4e0a22[_0x1e4e('0x26')]));_0x46a8e3[_0x1e4e('0x27')](_0x6f2e25['start']['id'],function(_0x585e18){try{_0x585e18=_0x125531[_0x1e4e('0x28')](_0x585e18);logger[_0x1e4e('0x1b')](_0x1e4e('0x29'),JSON['stringify'](_0x585e18,null,0x2));if(_0x585e18[_0x1e4e('0xb')]===_0x1e4e('0x2a')){logger[_0x1e4e('0x21')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x4e0a22[_0x1e4e('0x2b')]=_0x585e18['context']||_0x4e0a22['context'];_0x4e0a22['extension']=_0x585e18[_0x1e4e('0x2c')];_0x4e0a22[_0x1e4e('0x2d')]=_0x585e18[_0x1e4e('0x2d')]?_0x585e18[_0x1e4e('0x2d')]-0x1:0x1;return null;}else if(_0x585e18&&_0x125531[_0x585e18['agicommand']]){_0x4658c6=_0x125531[_0x585e18['agicommand']](_0x585e18);logger[_0x1e4e('0x21')](_0x1e4e('0x2e'),JSON[_0x1e4e('0x1c')](_0x4658c6,null,0x2));if(_0x4658c6&&_0x4658c6[_0x1e4e('0x2f')]===AGI_CODE_SUCCESS&&_0x4658c6[_0x1e4e('0x30')]!==AGI_RESULT_ERROR&&!_0x4e0a22[_0x1e4e('0x31')]){logger['debug'](_0x1e4e('0x2e'),inspect(_0x4658c6));return _['isUndefined'](_0x4658c6[_0x1e4e('0x30')])?null:_0x4658c6[_0x1e4e('0x30')][_0x1e4e('0x32')]();}else{logger[_0x1e4e('0x33')](_0x1e4e('0x2e'),inspect(_0x4658c6));return null;}}else{logger['error'](_0x1e4e('0x34'));return null;}}catch(_0xf73854){logger[_0x1e4e('0x33')](_0xf73854[_0x1e4e('0xa')]);return null;}});if(_0x6f2e25['finally']){logger[_0x1e4e('0x21')](util[_0x1e4e('0x1e')](_0x1e4e('0x35'),_0x4e0a22[_0x1e4e('0x36')],_0x4e0a22['calleridname'],_0x4e0a22[_0x1e4e('0x24')],_0x4e0a22['dnid'],_0x4e0a22['uniqueid']));_0x46a8e3[_0x1e4e('0x27')](_0x6f2e25[_0x1e4e('0x37')]['id'],function(_0x276be4){try{_0x276be4=_0x125531[_0x1e4e('0x28')](_0x276be4);logger[_0x1e4e('0x1b')](_0x1e4e('0x29'),JSON[_0x1e4e('0x1c')](_0x276be4,null,0x2));if(_0x276be4&&_0x125531[_0x276be4[_0x1e4e('0xb')]]){_0x4658c6=_0x125531[_0x276be4['agicommand']](_0x276be4);if(_0x4658c6){logger[_0x1e4e('0x1b')](_0x1e4e('0x2e'),inspect(_0x4658c6));return _[_0x1e4e('0x38')](_0x4658c6[_0x1e4e('0x30')])?null:_0x4658c6[_0x1e4e('0x30')][_0x1e4e('0x32')]();}else{logger['error'](_0x1e4e('0x2e'),inspect(_0x4658c6));return null;}}else{logger['error'](_0x1e4e('0x34'));return null;}}catch(_0x3a731f){logger[_0x1e4e('0x33')](_0x3a731f[_0x1e4e('0xa')]);return null;}});}logger['info'](util[_0x1e4e('0x1e')](_0x1e4e('0x39'),_0x4e0a22[_0x1e4e('0x36')],_0x4e0a22['calleridname'],_0x4e0a22['callerid'],_0x4e0a22[_0x1e4e('0x25')],_0x4e0a22[_0x1e4e('0x26')]));logger['info'](util[_0x1e4e('0x1e')](_0x1e4e('0x3a'),_0x4e0a22[_0x1e4e('0x2b')],_0x4e0a22[_0x1e4e('0x2c')],parseInt(_0x4e0a22[_0x1e4e('0x2d')],0xa)+0x1));_0x4e0a22['continueAt'](_0x4e0a22[_0x1e4e('0x2b')],_0x4e0a22[_0x1e4e('0x2c')],parseInt(_0x4e0a22[_0x1e4e('0x2d')],0xa)+0x1);_0x4e0a22[_0x1e4e('0x3b')]();}function handleNotFound(_0x3715a3){logger[_0x1e4e('0x33')](util['format'](_0x1e4e('0x3c'),_0x3715a3[_0x1e4e('0x36')]));_0x3715a3[_0x1e4e('0x3d')](_0x3715a3['context'],_0x3715a3['extension'],parseInt(_0x3715a3[_0x1e4e('0x2d')],0xa)+0x1);_0x3715a3[_0x1e4e('0x3b')]();}function handleUnpublished(_0x58bbc8){logger[_0x1e4e('0x33')](util['format']('Project\x20%s\x20not\x20published',_0x58bbc8[_0x1e4e('0x36')]));_0x58bbc8[_0x1e4e('0x3d')](_0x58bbc8[_0x1e4e('0x2b')],_0x58bbc8[_0x1e4e('0x2c')],parseInt(_0x58bbc8[_0x1e4e('0x2d')],0xa)+0x1);_0x58bbc8[_0x1e4e('0x3b')]();}module[_0x1e4e('0x3e')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};