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 _0x174c=['evtHangup','isUndefined','toString','agicommand\x20not\x20found','finally','format','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','uniqueid','stringify','[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','continueAt','close','Project\x20%s\x20not\x20published','exports','moment','xml2json','util','./rpc','./mailRpc','./graph','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','retry','maxRetry','addVertex','mxCell','isArray','length','source','target','addEdge','toJson','inspect','production','start','debug','root','joinAt','YYYY-MM-DD\x20HH:mm:ss','omit','arg_1','calleridname','callerid','dnid','clear','vertex','agicommand','gotoc','info','context','extension','priority','response','code','result'];(function(_0x11805c,_0x5bbf28){var _0x4140ab=function(_0x5d1d5a){while(--_0x5d1d5a){_0x11805c['push'](_0x11805c['shift']());}};_0x4140ab(++_0x5bbf28);}(_0x174c,0xff));var _0xc174=function(_0x5a51c1,_0x394c67){_0x5a51c1=_0x5a51c1-0x0;var _0x38f5fb=_0x174c[_0x5a51c1];return _0x38f5fb;};'use strict';var _=require('lodash');var moment=require(_0xc174('0x0'));var parser=require(_0xc174('0x1'));var util=require(_0xc174('0x2'));var logger=require('../../config/logger')('agi');var rpc=require(_0xc174('0x3'));var mailRpc=require(_0xc174('0x4'));var Graph=require(_0xc174('0x5'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xc174('0x6')]()[_0xc174('0x7')](function(_0x18f9dc){logger[_0xc174('0x8')](_0xc174('0x9'),_0x18f9dc[_0xc174('0xa')]);return[];});}function addVertex(_0x5b9455,_0x1971f3,_0x56d2a7){_0x1971f3['agicommand']=_0x56d2a7;if(_0x1971f3[_0xc174('0xb')](_0xc174('0xc'))){_0x1971f3[_0xc174('0xd')]=parseInt(_0x1971f3[_0xc174('0xc')],0xa);}_0x5b9455[_0xc174('0xe')](_['omit'](_0x1971f3,_0xc174('0xf')));}function initGraph(_0x20f527,_0x204643){var _0x4a1db2=new Graph();for(var _0x34698f in _0x20f527){if(_0x20f527[_0xc174('0xb')](_0x34698f)){if(_[_0xc174('0x10')](_0x20f527[_0x34698f])){for(var _0x5512e0=0x0;_0x5512e0<_0x20f527[_0x34698f][_0xc174('0x11')];_0x5512e0+=0x1){addVertex(_0x4a1db2,_0x20f527[_0x34698f][_0x5512e0],_0x34698f);}}else{addVertex(_0x4a1db2,_0x20f527[_0x34698f],_0x34698f);}}}for(var _0x257097=0x0;_0x257097<_0x204643[_0xc174('0x11')];_0x257097+=0x1){if(_0x204643[_0x257097][_0xc174('0x12')]&&_0x204643[_0x257097][_0xc174('0x13')]){_0x4a1db2[_0xc174('0x14')](_0x204643[_0x257097][_0xc174('0x12')],_0x204643[_0x257097][_0xc174('0x13')],_0x204643[_0x257097]['value']);}}return _0x4a1db2;}function getRoot(_0x50ea32){return parser[_0xc174('0x15')](_0x50ea32,{'object':!![]})['mxGraphModel']['root'];}function inspect(_0x2f2dee){return util[_0xc174('0x16')](_0x2f2dee,{'showHidden':![],'depth':null});}function initialize(_0x4753a7,_0x14a2b2){var _0x55b763=getRoot(_0x4753a7[_0xc174('0x17')]);if(!_0x55b763||!_0x55b763[_0xc174('0x18')])return;var _0x330dda,_0x39dcc8,_0x4a59ee;logger[_0xc174('0x19')](_0xc174('0x1a'),JSON['stringify'](_0x55b763,null,0x2));_0x14a2b2[_0xc174('0x1b')]=moment()['format'](_0xc174('0x1c'));_0x330dda=initGraph(_[_0xc174('0x1d')](_0x55b763,_0xc174('0xf')),_0x55b763['mxCell']);_0x39dcc8=new Vertices(_0x14a2b2,rpc,mailRpc);logger['info'](util['format']('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x14a2b2[_0xc174('0x1e')],_0x14a2b2[_0xc174('0x1f')],_0x14a2b2[_0xc174('0x20')],_0x14a2b2[_0xc174('0x21')],_0x14a2b2['uniqueid']));_0x330dda['traverseBFS'](_0x55b763['start']['id'],function(_0x1f0a6e){try{_0x1f0a6e=_0x39dcc8[_0xc174('0x22')](_0x1f0a6e);logger[_0xc174('0x19')](_0xc174('0x23'),JSON['stringify'](_0x1f0a6e,null,0x2));if(_0x1f0a6e[_0xc174('0x24')]===_0xc174('0x25')){logger[_0xc174('0x26')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x14a2b2['context']=_0x1f0a6e[_0xc174('0x27')]||_0x14a2b2[_0xc174('0x27')];_0x14a2b2[_0xc174('0x28')]=_0x1f0a6e[_0xc174('0x28')];_0x14a2b2[_0xc174('0x29')]=_0x1f0a6e[_0xc174('0x29')]?_0x1f0a6e[_0xc174('0x29')]-0x1:0x1;return null;}else if(_0x1f0a6e&&_0x39dcc8[_0x1f0a6e[_0xc174('0x24')]]){_0x4a59ee=_0x39dcc8[_0x1f0a6e['agicommand']](_0x1f0a6e);logger['info'](_0xc174('0x2a'),JSON['stringify'](_0x4a59ee,null,0x2));if(_0x4a59ee&&_0x4a59ee[_0xc174('0x2b')]===AGI_CODE_SUCCESS&&_0x4a59ee[_0xc174('0x2c')]!==AGI_RESULT_ERROR&&!_0x14a2b2[_0xc174('0x2d')]){logger[_0xc174('0x19')](_0xc174('0x2a'),inspect(_0x4a59ee));return _[_0xc174('0x2e')](_0x4a59ee[_0xc174('0x2c')])?null:_0x4a59ee[_0xc174('0x2c')][_0xc174('0x2f')]();}else{logger[_0xc174('0x8')]('response',inspect(_0x4a59ee));return null;}}else{logger['error'](_0xc174('0x30'));return null;}}catch(_0x4b20a3){logger['error'](_0x4b20a3[_0xc174('0xa')]);return null;}});if(_0x55b763[_0xc174('0x31')]){logger[_0xc174('0x26')](util[_0xc174('0x32')](_0xc174('0x33'),_0x14a2b2[_0xc174('0x1e')],_0x14a2b2[_0xc174('0x1f')],_0x14a2b2['callerid'],_0x14a2b2[_0xc174('0x21')],_0x14a2b2[_0xc174('0x34')]));_0x330dda['traverseBFS'](_0x55b763['finally']['id'],function(_0x5a1ecd){try{_0x5a1ecd=_0x39dcc8['clear'](_0x5a1ecd);logger[_0xc174('0x19')](_0xc174('0x23'),JSON[_0xc174('0x35')](_0x5a1ecd,null,0x2));if(_0x5a1ecd&&_0x39dcc8[_0x5a1ecd['agicommand']]){_0x4a59ee=_0x39dcc8[_0x5a1ecd[_0xc174('0x24')]](_0x5a1ecd);if(_0x4a59ee){logger[_0xc174('0x19')](_0xc174('0x2a'),inspect(_0x4a59ee));return _['isUndefined'](_0x4a59ee[_0xc174('0x2c')])?null:_0x4a59ee[_0xc174('0x2c')][_0xc174('0x2f')]();}else{logger[_0xc174('0x8')]('response',inspect(_0x4a59ee));return null;}}else{logger['error'](_0xc174('0x30'));return null;}}catch(_0xc7612b){logger['error'](_0xc7612b[_0xc174('0xa')]);return null;}});}logger[_0xc174('0x26')](util['format'](_0xc174('0x36'),_0x14a2b2['arg_1'],_0x14a2b2['calleridname'],_0x14a2b2[_0xc174('0x20')],_0x14a2b2[_0xc174('0x21')],_0x14a2b2[_0xc174('0x34')]));logger[_0xc174('0x26')](util[_0xc174('0x32')](_0xc174('0x37'),_0x14a2b2['context'],_0x14a2b2['extension'],parseInt(_0x14a2b2[_0xc174('0x29')],0xa)+0x1));_0x14a2b2['continueAt'](_0x14a2b2[_0xc174('0x27')],_0x14a2b2[_0xc174('0x28')],parseInt(_0x14a2b2['priority'],0xa)+0x1);_0x14a2b2['close']();}function handleNotFound(_0x5b240e){logger[_0xc174('0x8')](util[_0xc174('0x32')]('Project\x20%s\x20not\x20found',_0x5b240e['arg_1']));_0x5b240e[_0xc174('0x38')](_0x5b240e['context'],_0x5b240e['extension'],parseInt(_0x5b240e['priority'],0xa)+0x1);_0x5b240e[_0xc174('0x39')]();}function handleUnpublished(_0x4b962a){logger[_0xc174('0x8')](util['format'](_0xc174('0x3a'),_0x4b962a[_0xc174('0x1e')]));_0x4b962a[_0xc174('0x38')](_0x4b962a['context'],_0x4b962a[_0xc174('0x28')],parseInt(_0x4b962a[_0xc174('0x29')],0xa)+0x1);_0x4b962a['close']();}module[_0xc174('0x3b')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};