Built motion from commit 3c2ce842.|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 _0x26b7=['priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found','finally','calleridname','clear','debug','dnid','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','close','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','exports','moment','util','../../config/logger','agi','./rpc','./mailRpc','./graph','getSquareProjects','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','retry','maxRetry','omit','mxCell','length','source','addEdge','target','toJson','mxGraphModel','root','inspect','production','stringify','joinAt','YYYY-MM-DD\x20HH:mm:ss','info','format','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','uniqueid','traverseBFS','start','vertex','agicommand','context','extension'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x26b7,0xfa));var _0x726b=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0x26b7[_0x160c73];return _0xd9302;};'use strict';var _=require('lodash');var moment=require(_0x726b('0x0'));var parser=require('xml2json');var util=require(_0x726b('0x1'));var logger=require(_0x726b('0x2'))(_0x726b('0x3'));var rpc=require(_0x726b('0x4'));var mailRpc=require(_0x726b('0x5'));var Graph=require(_0x726b('0x6'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x726b('0x7')]()['catch'](function(_0x5b1f31){logger[_0x726b('0x8')](_0x726b('0x9'),_0x5b1f31[_0x726b('0xa')]);return[];});}function addVertex(_0x3a83cc,_0x165dd5,_0x589b87){_0x165dd5['agicommand']=_0x589b87;if(_0x165dd5[_0x726b('0xb')](_0x726b('0xc'))){_0x165dd5[_0x726b('0xd')]=parseInt(_0x165dd5[_0x726b('0xc')],0xa);}_0x3a83cc['addVertex'](_[_0x726b('0xe')](_0x165dd5,_0x726b('0xf')));}function initGraph(_0x1d5fac,_0x4fbc5d){var _0x54715c=new Graph();for(var _0x156c1a in _0x1d5fac){if(_0x1d5fac[_0x726b('0xb')](_0x156c1a)){if(_['isArray'](_0x1d5fac[_0x156c1a])){for(var _0x44c91e=0x0;_0x44c91e<_0x1d5fac[_0x156c1a][_0x726b('0x10')];_0x44c91e+=0x1){addVertex(_0x54715c,_0x1d5fac[_0x156c1a][_0x44c91e],_0x156c1a);}}else{addVertex(_0x54715c,_0x1d5fac[_0x156c1a],_0x156c1a);}}}for(var _0x1ded7c=0x0;_0x1ded7c<_0x4fbc5d[_0x726b('0x10')];_0x1ded7c+=0x1){if(_0x4fbc5d[_0x1ded7c][_0x726b('0x11')]&&_0x4fbc5d[_0x1ded7c]['target']){_0x54715c[_0x726b('0x12')](_0x4fbc5d[_0x1ded7c]['source'],_0x4fbc5d[_0x1ded7c][_0x726b('0x13')],_0x4fbc5d[_0x1ded7c]['value']);}}return _0x54715c;}function getRoot(_0x410a2f){return parser[_0x726b('0x14')](_0x410a2f,{'object':!![]})[_0x726b('0x15')][_0x726b('0x16')];}function inspect(_0x8e9514){return util[_0x726b('0x17')](_0x8e9514,{'showHidden':![],'depth':null});}function initialize(_0x422c76,_0x4a71d6){var _0x8fb615=getRoot(_0x422c76[_0x726b('0x18')]);if(!_0x8fb615||!_0x8fb615['start'])return;var _0x4b00da,_0x1b42c7,_0x4a9340;logger['debug'](_0x726b('0x16'),JSON[_0x726b('0x19')](_0x8fb615,null,0x2));_0x4a71d6[_0x726b('0x1a')]=moment()['format'](_0x726b('0x1b'));_0x4b00da=initGraph(_['omit'](_0x8fb615,_0x726b('0xf')),_0x8fb615[_0x726b('0xf')]);_0x1b42c7=new Vertices(_0x4a71d6,rpc,mailRpc);logger[_0x726b('0x1c')](util[_0x726b('0x1d')](_0x726b('0x1e'),_0x4a71d6[_0x726b('0x1f')],_0x4a71d6['calleridname'],_0x4a71d6[_0x726b('0x20')],_0x4a71d6['dnid'],_0x4a71d6[_0x726b('0x21')]));_0x4b00da[_0x726b('0x22')](_0x8fb615[_0x726b('0x23')]['id'],function(_0x36ea61){try{_0x36ea61=_0x1b42c7['clear'](_0x36ea61);logger['debug'](_0x726b('0x24'),JSON[_0x726b('0x19')](_0x36ea61,null,0x2));if(_0x36ea61[_0x726b('0x25')]==='gotoc'){logger['info']('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x4a71d6[_0x726b('0x26')]=_0x36ea61[_0x726b('0x26')]||_0x4a71d6[_0x726b('0x26')];_0x4a71d6[_0x726b('0x27')]=_0x36ea61[_0x726b('0x27')];_0x4a71d6[_0x726b('0x28')]=_0x36ea61['priority']?_0x36ea61[_0x726b('0x28')]-0x1:0x1;return null;}else if(_0x36ea61&&_0x1b42c7[_0x36ea61[_0x726b('0x25')]]){_0x4a9340=_0x1b42c7[_0x36ea61[_0x726b('0x25')]](_0x36ea61);logger['info'](_0x726b('0x29'),JSON[_0x726b('0x19')](_0x4a9340,null,0x2));if(_0x4a9340&&_0x4a9340[_0x726b('0x2a')]===AGI_CODE_SUCCESS&&_0x4a9340[_0x726b('0x2b')]!==AGI_RESULT_ERROR&&!_0x4a71d6['evtHangup']){logger['debug'](_0x726b('0x29'),inspect(_0x4a9340));return _[_0x726b('0x2c')](_0x4a9340['result'])?null:_0x4a9340[_0x726b('0x2b')][_0x726b('0x2d')]();}else{logger['error'](_0x726b('0x29'),inspect(_0x4a9340));return null;}}else{logger[_0x726b('0x8')](_0x726b('0x2e'));return null;}}catch(_0x4501f6){logger[_0x726b('0x8')](_0x4501f6[_0x726b('0xa')]);return null;}});if(_0x8fb615[_0x726b('0x2f')]){logger[_0x726b('0x1c')](util['format']('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4a71d6[_0x726b('0x1f')],_0x4a71d6[_0x726b('0x30')],_0x4a71d6[_0x726b('0x20')],_0x4a71d6['dnid'],_0x4a71d6[_0x726b('0x21')]));_0x4b00da[_0x726b('0x22')](_0x8fb615['finally']['id'],function(_0x3b25e5){try{_0x3b25e5=_0x1b42c7[_0x726b('0x31')](_0x3b25e5);logger[_0x726b('0x32')](_0x726b('0x24'),JSON['stringify'](_0x3b25e5,null,0x2));if(_0x3b25e5&&_0x1b42c7[_0x3b25e5[_0x726b('0x25')]]){_0x4a9340=_0x1b42c7[_0x3b25e5[_0x726b('0x25')]](_0x3b25e5);if(_0x4a9340){logger[_0x726b('0x32')](_0x726b('0x29'),inspect(_0x4a9340));return _[_0x726b('0x2c')](_0x4a9340['result'])?null:_0x4a9340[_0x726b('0x2b')]['toString']();}else{logger[_0x726b('0x8')](_0x726b('0x29'),inspect(_0x4a9340));return null;}}else{logger[_0x726b('0x8')](_0x726b('0x2e'));return null;}}catch(_0x3e02ab){logger[_0x726b('0x8')](_0x3e02ab[_0x726b('0xa')]);return null;}});}logger[_0x726b('0x1c')](util[_0x726b('0x1d')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4a71d6[_0x726b('0x1f')],_0x4a71d6[_0x726b('0x30')],_0x4a71d6[_0x726b('0x20')],_0x4a71d6[_0x726b('0x33')],_0x4a71d6[_0x726b('0x21')]));logger[_0x726b('0x1c')](util['format'](_0x726b('0x34'),_0x4a71d6[_0x726b('0x26')],_0x4a71d6[_0x726b('0x27')],parseInt(_0x4a71d6[_0x726b('0x28')],0xa)+0x1));_0x4a71d6[_0x726b('0x35')](_0x4a71d6[_0x726b('0x26')],_0x4a71d6[_0x726b('0x27')],parseInt(_0x4a71d6[_0x726b('0x28')],0xa)+0x1);_0x4a71d6[_0x726b('0x36')]();}function handleNotFound(_0x54a939){logger[_0x726b('0x8')](util['format'](_0x726b('0x37'),_0x54a939[_0x726b('0x1f')]));_0x54a939[_0x726b('0x35')](_0x54a939[_0x726b('0x26')],_0x54a939[_0x726b('0x27')],parseInt(_0x54a939[_0x726b('0x28')],0xa)+0x1);_0x54a939[_0x726b('0x36')]();}function handleUnpublished(_0x10cdf9){logger['error'](util[_0x726b('0x1d')](_0x726b('0x38'),_0x10cdf9[_0x726b('0x1f')]));_0x10cdf9[_0x726b('0x35')](_0x10cdf9['context'],_0x10cdf9['extension'],parseInt(_0x10cdf9[_0x726b('0x28')],0xa)+0x1);_0x10cdf9['close']();}module[_0x726b('0x39')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};