Built motion from commit 00bf23f6.|2.6.16
[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 _0x10c8=['evtHangup','result','toString','error','response','agicommand\x20not\x20found','finally','calleridname','callerid','isUndefined','continueAt','Project\x20%s\x20not\x20published','close','exports','xml2json','util','agi','./rpc','./mailRpc','./graph','./vertices','getSquareProjects','catch','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','retry','addVertex','omit','isArray','length','source','target','addEdge','toJson','root','inspect','debug','stringify','joinAt','format','mxCell','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','dnid','uniqueid','traverseBFS','start','clear','vertex','agicommand','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','info','code'];(function(_0x30a1fc,_0x4a98b8){var _0x19fe40=function(_0x577bae){while(--_0x577bae){_0x30a1fc['push'](_0x30a1fc['shift']());}};_0x19fe40(++_0x4a98b8);}(_0x10c8,0x1a4));var _0x810c=function(_0x33f18d,_0x3f8aa5){_0x33f18d=_0x33f18d-0x0;var _0x37c5a5=_0x10c8[_0x33f18d];return _0x37c5a5;};'use strict';var _=require('lodash');var moment=require('moment');var parser=require(_0x810c('0x0'));var util=require(_0x810c('0x1'));var logger=require('../../config/logger')(_0x810c('0x2'));var rpc=require(_0x810c('0x3'));var mailRpc=require(_0x810c('0x4'));var Graph=require(_0x810c('0x5'));var Vertices=require(_0x810c('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x810c('0x7')]()[_0x810c('0x8')](function(_0xa8cf45){logger['error'](_0x810c('0x9'),_0xa8cf45[_0x810c('0xa')]);return[];});}function addVertex(_0x3c86fa,_0x40ff58,_0x5acb64){_0x40ff58['agicommand']=_0x5acb64;if(_0x40ff58[_0x810c('0xb')](_0x810c('0xc'))){_0x40ff58['maxRetry']=parseInt(_0x40ff58['retry'],0xa);}_0x3c86fa[_0x810c('0xd')](_[_0x810c('0xe')](_0x40ff58,'mxCell'));}function initGraph(_0x58fede,_0x2aa562){var _0x26cfbf=new Graph();for(var _0x1a3ac1 in _0x58fede){if(_0x58fede['hasOwnProperty'](_0x1a3ac1)){if(_[_0x810c('0xf')](_0x58fede[_0x1a3ac1])){for(var _0x42b1f7=0x0;_0x42b1f7<_0x58fede[_0x1a3ac1][_0x810c('0x10')];_0x42b1f7+=0x1){addVertex(_0x26cfbf,_0x58fede[_0x1a3ac1][_0x42b1f7],_0x1a3ac1);}}else{addVertex(_0x26cfbf,_0x58fede[_0x1a3ac1],_0x1a3ac1);}}}for(var _0x32f2a2=0x0;_0x32f2a2<_0x2aa562['length'];_0x32f2a2+=0x1){if(_0x2aa562[_0x32f2a2][_0x810c('0x11')]&&_0x2aa562[_0x32f2a2][_0x810c('0x12')]){_0x26cfbf[_0x810c('0x13')](_0x2aa562[_0x32f2a2][_0x810c('0x11')],_0x2aa562[_0x32f2a2][_0x810c('0x12')],_0x2aa562[_0x32f2a2]['value']);}}return _0x26cfbf;}function getRoot(_0x4bf9aa){return parser[_0x810c('0x14')](_0x4bf9aa,{'object':!![]})['mxGraphModel'][_0x810c('0x15')];}function inspect(_0x4bcb0c){return util[_0x810c('0x16')](_0x4bcb0c,{'showHidden':![],'depth':null});}function initialize(_0xa0ac70,_0x4b1871){var _0x1ec037=getRoot(_0xa0ac70['production']);if(!_0x1ec037||!_0x1ec037['start'])return;var _0x5bcb06,_0x574a14,_0x2490e3;logger[_0x810c('0x17')](_0x810c('0x15'),JSON[_0x810c('0x18')](_0x1ec037,null,0x2));_0x4b1871[_0x810c('0x19')]=moment()[_0x810c('0x1a')]('YYYY-MM-DD\x20HH:mm:ss');_0x5bcb06=initGraph(_[_0x810c('0xe')](_0x1ec037,'mxCell'),_0x1ec037[_0x810c('0x1b')]);_0x574a14=new Vertices(_0x4b1871,rpc,mailRpc);logger['info'](util[_0x810c('0x1a')](_0x810c('0x1c'),_0x4b1871[_0x810c('0x1d')],_0x4b1871['calleridname'],_0x4b1871['callerid'],_0x4b1871[_0x810c('0x1e')],_0x4b1871[_0x810c('0x1f')]));_0x5bcb06[_0x810c('0x20')](_0x1ec037[_0x810c('0x21')]['id'],function(_0x274fc8){try{_0x274fc8=_0x574a14[_0x810c('0x22')](_0x274fc8);logger[_0x810c('0x17')](_0x810c('0x23'),JSON[_0x810c('0x18')](_0x274fc8,null,0x2));if(_0x274fc8[_0x810c('0x24')]===_0x810c('0x25')){logger['info'](_0x810c('0x26'));_0x4b1871[_0x810c('0x27')]=_0x274fc8['context']||_0x4b1871[_0x810c('0x27')];_0x4b1871[_0x810c('0x28')]=_0x274fc8[_0x810c('0x28')];_0x4b1871[_0x810c('0x29')]=_0x274fc8[_0x810c('0x29')]?_0x274fc8['priority']-0x1:0x1;return null;}else if(_0x274fc8&&_0x574a14[_0x274fc8[_0x810c('0x24')]]){_0x2490e3=_0x574a14[_0x274fc8[_0x810c('0x24')]](_0x274fc8);logger[_0x810c('0x2a')]('response',JSON[_0x810c('0x18')](_0x2490e3,null,0x2));if(_0x2490e3&&_0x2490e3[_0x810c('0x2b')]===AGI_CODE_SUCCESS&&_0x2490e3['result']!==AGI_RESULT_ERROR&&!_0x4b1871[_0x810c('0x2c')]){logger[_0x810c('0x17')]('response',inspect(_0x2490e3));return _['isUndefined'](_0x2490e3[_0x810c('0x2d')])?null:_0x2490e3[_0x810c('0x2d')][_0x810c('0x2e')]();}else{logger[_0x810c('0x2f')](_0x810c('0x30'),inspect(_0x2490e3));return null;}}else{logger[_0x810c('0x2f')](_0x810c('0x31'));return null;}}catch(_0x4775ea){logger['error'](_0x4775ea[_0x810c('0xa')]);return null;}});if(_0x1ec037[_0x810c('0x32')]){logger[_0x810c('0x2a')](util[_0x810c('0x1a')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4b1871['arg_1'],_0x4b1871[_0x810c('0x33')],_0x4b1871[_0x810c('0x34')],_0x4b1871[_0x810c('0x1e')],_0x4b1871[_0x810c('0x1f')]));_0x5bcb06[_0x810c('0x20')](_0x1ec037[_0x810c('0x32')]['id'],function(_0x53cc4b){try{_0x53cc4b=_0x574a14[_0x810c('0x22')](_0x53cc4b);logger[_0x810c('0x17')](_0x810c('0x23'),JSON[_0x810c('0x18')](_0x53cc4b,null,0x2));if(_0x53cc4b&&_0x574a14[_0x53cc4b[_0x810c('0x24')]]){_0x2490e3=_0x574a14[_0x53cc4b[_0x810c('0x24')]](_0x53cc4b);if(_0x2490e3){logger[_0x810c('0x17')](_0x810c('0x30'),inspect(_0x2490e3));return _[_0x810c('0x35')](_0x2490e3[_0x810c('0x2d')])?null:_0x2490e3[_0x810c('0x2d')][_0x810c('0x2e')]();}else{logger[_0x810c('0x2f')](_0x810c('0x30'),inspect(_0x2490e3));return null;}}else{logger[_0x810c('0x2f')](_0x810c('0x31'));return null;}}catch(_0x2010a7){logger['error'](_0x2010a7[_0x810c('0xa')]);return null;}});}logger[_0x810c('0x2a')](util[_0x810c('0x1a')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4b1871[_0x810c('0x1d')],_0x4b1871[_0x810c('0x33')],_0x4b1871[_0x810c('0x34')],_0x4b1871['dnid'],_0x4b1871[_0x810c('0x1f')]));logger[_0x810c('0x2a')](util[_0x810c('0x1a')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x4b1871['context'],_0x4b1871['extension'],parseInt(_0x4b1871[_0x810c('0x29')],0xa)+0x1));_0x4b1871[_0x810c('0x36')](_0x4b1871[_0x810c('0x27')],_0x4b1871[_0x810c('0x28')],parseInt(_0x4b1871[_0x810c('0x29')],0xa)+0x1);_0x4b1871['close']();}function handleNotFound(_0x411332){logger['error'](util['format']('Project\x20%s\x20not\x20found',_0x411332[_0x810c('0x1d')]));_0x411332[_0x810c('0x36')](_0x411332[_0x810c('0x27')],_0x411332[_0x810c('0x28')],parseInt(_0x411332['priority'],0xa)+0x1);_0x411332['close']();}function handleUnpublished(_0x554a17){logger[_0x810c('0x2f')](util[_0x810c('0x1a')](_0x810c('0x37'),_0x554a17[_0x810c('0x1d')]));_0x554a17[_0x810c('0x36')](_0x554a17[_0x810c('0x27')],_0x554a17[_0x810c('0x28')],parseInt(_0x554a17['priority'],0xa)+0x1);_0x554a17[_0x810c('0x38')]();}module[_0x810c('0x39')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};