Built motion from commit c738b9ac.|2.6.25
[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 _0xcbd6=['info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','dnid','traverseBFS','debug','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','evtHangup','isUndefined','toString','agicommand\x20not\x20found','finally','format','calleridname','uniqueid','clear','continueAt','close','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','lodash','moment','xml2json','util','agi','./rpc','./mailRpc','./graph','./vertices','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','maxRetry','retry','omit','mxCell','length','source','target','value','toJson','inspect','production','start','stringify','joinAt','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x5c9307,_0x5b97e4){var _0x373e29=function(_0xefebbd){while(--_0xefebbd){_0x5c9307['push'](_0x5c9307['shift']());}};_0x373e29(++_0x5b97e4);}(_0xcbd6,0x1ed));var _0x6cbd=function(_0x2a0753,_0x169edf){_0x2a0753=_0x2a0753-0x0;var _0xccbbf6=_0xcbd6[_0x2a0753];return _0xccbbf6;};'use strict';var _=require(_0x6cbd('0x0'));var moment=require(_0x6cbd('0x1'));var parser=require(_0x6cbd('0x2'));var util=require(_0x6cbd('0x3'));var logger=require('../../config/logger')(_0x6cbd('0x4'));var rpc=require(_0x6cbd('0x5'));var mailRpc=require(_0x6cbd('0x6'));var Graph=require(_0x6cbd('0x7'));var Vertices=require(_0x6cbd('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()['catch'](function(_0x2e7bd7){logger[_0x6cbd('0x9')](_0x6cbd('0xa'),_0x2e7bd7[_0x6cbd('0xb')]);return[];});}function addVertex(_0x3d89cc,_0x1b5eca,_0x3bd2f9){_0x1b5eca[_0x6cbd('0xc')]=_0x3bd2f9;if(_0x1b5eca[_0x6cbd('0xd')]('retry')){_0x1b5eca[_0x6cbd('0xe')]=parseInt(_0x1b5eca[_0x6cbd('0xf')],0xa);}_0x3d89cc['addVertex'](_[_0x6cbd('0x10')](_0x1b5eca,_0x6cbd('0x11')));}function initGraph(_0x41135e,_0x2c218b){var _0x5a7dbc=new Graph();for(var _0x35a29b in _0x41135e){if(_0x41135e[_0x6cbd('0xd')](_0x35a29b)){if(_['isArray'](_0x41135e[_0x35a29b])){for(var _0x24742b=0x0;_0x24742b<_0x41135e[_0x35a29b][_0x6cbd('0x12')];_0x24742b+=0x1){addVertex(_0x5a7dbc,_0x41135e[_0x35a29b][_0x24742b],_0x35a29b);}}else{addVertex(_0x5a7dbc,_0x41135e[_0x35a29b],_0x35a29b);}}}for(var _0x433297=0x0;_0x433297<_0x2c218b['length'];_0x433297+=0x1){if(_0x2c218b[_0x433297][_0x6cbd('0x13')]&&_0x2c218b[_0x433297]['target']){_0x5a7dbc['addEdge'](_0x2c218b[_0x433297][_0x6cbd('0x13')],_0x2c218b[_0x433297][_0x6cbd('0x14')],_0x2c218b[_0x433297][_0x6cbd('0x15')]);}}return _0x5a7dbc;}function getRoot(_0x153d35){return parser[_0x6cbd('0x16')](_0x153d35,{'object':!![]})['mxGraphModel']['root'];}function inspect(_0x637f18){return util[_0x6cbd('0x17')](_0x637f18,{'showHidden':![],'depth':null});}function initialize(_0x18c3dc,_0x458282){var _0x592529=getRoot(_0x18c3dc[_0x6cbd('0x18')]);if(!_0x592529||!_0x592529[_0x6cbd('0x19')])return;var _0x86da13,_0x3ae0cf,_0x17e02a;logger['debug']('root',JSON[_0x6cbd('0x1a')](_0x592529,null,0x2));_0x458282[_0x6cbd('0x1b')]=moment()['format'](_0x6cbd('0x1c'));_0x86da13=initGraph(_[_0x6cbd('0x10')](_0x592529,_0x6cbd('0x11')),_0x592529[_0x6cbd('0x11')]);_0x3ae0cf=new Vertices(_0x458282,rpc,mailRpc);logger[_0x6cbd('0x1d')](util['format'](_0x6cbd('0x1e'),_0x458282[_0x6cbd('0x1f')],_0x458282['calleridname'],_0x458282[_0x6cbd('0x20')],_0x458282[_0x6cbd('0x21')],_0x458282['uniqueid']));_0x86da13[_0x6cbd('0x22')](_0x592529[_0x6cbd('0x19')]['id'],function(_0x52de0b){try{_0x52de0b=_0x3ae0cf['clear'](_0x52de0b);logger[_0x6cbd('0x23')](_0x6cbd('0x24'),JSON[_0x6cbd('0x1a')](_0x52de0b,null,0x2));if(_0x52de0b[_0x6cbd('0xc')]===_0x6cbd('0x25')){logger[_0x6cbd('0x1d')](_0x6cbd('0x26'));_0x458282['context']=_0x52de0b[_0x6cbd('0x27')]||_0x458282['context'];_0x458282[_0x6cbd('0x28')]=_0x52de0b[_0x6cbd('0x28')];_0x458282[_0x6cbd('0x29')]=_0x52de0b[_0x6cbd('0x29')]?_0x52de0b[_0x6cbd('0x29')]-0x1:0x1;return null;}else if(_0x52de0b&&_0x3ae0cf[_0x52de0b[_0x6cbd('0xc')]]){_0x17e02a=_0x3ae0cf[_0x52de0b['agicommand']](_0x52de0b);logger[_0x6cbd('0x1d')](_0x6cbd('0x2a'),JSON[_0x6cbd('0x1a')](_0x17e02a,null,0x2));if(_0x17e02a&&_0x17e02a[_0x6cbd('0x2b')]===AGI_CODE_SUCCESS&&_0x17e02a[_0x6cbd('0x2c')]!==AGI_RESULT_ERROR&&!_0x458282[_0x6cbd('0x2d')]){logger[_0x6cbd('0x23')]('response',inspect(_0x17e02a));return _[_0x6cbd('0x2e')](_0x17e02a[_0x6cbd('0x2c')])?null:_0x17e02a['result'][_0x6cbd('0x2f')]();}else{logger['error'](_0x6cbd('0x2a'),inspect(_0x17e02a));return null;}}else{logger[_0x6cbd('0x9')](_0x6cbd('0x30'));return null;}}catch(_0x36d0cc){logger[_0x6cbd('0x9')](_0x36d0cc[_0x6cbd('0xb')]);return null;}});if(_0x592529[_0x6cbd('0x31')]){logger[_0x6cbd('0x1d')](util[_0x6cbd('0x32')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x458282[_0x6cbd('0x1f')],_0x458282[_0x6cbd('0x33')],_0x458282[_0x6cbd('0x20')],_0x458282['dnid'],_0x458282[_0x6cbd('0x34')]));_0x86da13['traverseBFS'](_0x592529[_0x6cbd('0x31')]['id'],function(_0x311059){try{_0x311059=_0x3ae0cf[_0x6cbd('0x35')](_0x311059);logger[_0x6cbd('0x23')](_0x6cbd('0x24'),JSON[_0x6cbd('0x1a')](_0x311059,null,0x2));if(_0x311059&&_0x3ae0cf[_0x311059[_0x6cbd('0xc')]]){_0x17e02a=_0x3ae0cf[_0x311059[_0x6cbd('0xc')]](_0x311059);if(_0x17e02a){logger[_0x6cbd('0x23')](_0x6cbd('0x2a'),inspect(_0x17e02a));return _[_0x6cbd('0x2e')](_0x17e02a[_0x6cbd('0x2c')])?null:_0x17e02a['result']['toString']();}else{logger['error'](_0x6cbd('0x2a'),inspect(_0x17e02a));return null;}}else{logger[_0x6cbd('0x9')](_0x6cbd('0x30'));return null;}}catch(_0x3aff35){logger[_0x6cbd('0x9')](_0x3aff35[_0x6cbd('0xb')]);return null;}});}logger[_0x6cbd('0x1d')](util[_0x6cbd('0x32')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x458282[_0x6cbd('0x1f')],_0x458282[_0x6cbd('0x33')],_0x458282[_0x6cbd('0x20')],_0x458282[_0x6cbd('0x21')],_0x458282[_0x6cbd('0x34')]));logger[_0x6cbd('0x1d')](util[_0x6cbd('0x32')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x458282['context'],_0x458282[_0x6cbd('0x28')],parseInt(_0x458282[_0x6cbd('0x29')],0xa)+0x1));_0x458282[_0x6cbd('0x36')](_0x458282[_0x6cbd('0x27')],_0x458282[_0x6cbd('0x28')],parseInt(_0x458282[_0x6cbd('0x29')],0xa)+0x1);_0x458282[_0x6cbd('0x37')]();}function handleNotFound(_0x35281b){logger[_0x6cbd('0x9')](util[_0x6cbd('0x32')](_0x6cbd('0x38'),_0x35281b[_0x6cbd('0x1f')]));_0x35281b[_0x6cbd('0x36')](_0x35281b[_0x6cbd('0x27')],_0x35281b[_0x6cbd('0x28')],parseInt(_0x35281b['priority'],0xa)+0x1);_0x35281b['close']();}function handleUnpublished(_0x5ced34){logger['error'](util[_0x6cbd('0x32')](_0x6cbd('0x39'),_0x5ced34[_0x6cbd('0x1f')]));_0x5ced34[_0x6cbd('0x36')](_0x5ced34[_0x6cbd('0x27')],_0x5ced34[_0x6cbd('0x28')],parseInt(_0x5ced34['priority'],0xa)+0x1);_0x5ced34[_0x6cbd('0x37')]();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};