2a27347a1d8e3e3ffb90925aa011782a340bab11
[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 _0xe702=['./mailRpc','./vertices','getSquareProjects','error','stack','agicommand','hasOwnProperty','retry','omit','mxCell','isArray','length','source','target','addEdge','value','mxGraphModel','root','inspect','start','debug','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','traverseBFS','vertex','stringify','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','evtHangup','isUndefined','agicommand\x20not\x20found','finally','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','Project\x20%s\x20not\x20found','continueAt','close','Project\x20%s\x20not\x20published','exports','lodash','moment','xml2json','util','../../config/logger','agi','./rpc'];(function(_0x3045aa,_0x43683b){var _0x585070=function(_0x5b5522){while(--_0x5b5522){_0x3045aa['push'](_0x3045aa['shift']());}};_0x585070(++_0x43683b);}(_0xe702,0x1d1));var _0x2e70=function(_0x33032e,_0x31411a){_0x33032e=_0x33032e-0x0;var _0x13316b=_0xe702[_0x33032e];return _0x13316b;};'use strict';var _=require(_0x2e70('0x0'));var moment=require(_0x2e70('0x1'));var parser=require(_0x2e70('0x2'));var util=require(_0x2e70('0x3'));var logger=require(_0x2e70('0x4'))(_0x2e70('0x5'));var rpc=require(_0x2e70('0x6'));var mailRpc=require(_0x2e70('0x7'));var Graph=require('./graph');var Vertices=require(_0x2e70('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x2e70('0x9')]()['catch'](function(_0x39865c){logger[_0x2e70('0xa')]('Unable\x20to\x20download\x20CallySquare\x20projects',_0x39865c[_0x2e70('0xb')]);return[];});}function addVertex(_0x4b7e66,_0xaaaaf3,_0x2ca78b){_0xaaaaf3[_0x2e70('0xc')]=_0x2ca78b;if(_0xaaaaf3[_0x2e70('0xd')](_0x2e70('0xe'))){_0xaaaaf3['maxRetry']=parseInt(_0xaaaaf3['retry'],0xa);}_0x4b7e66['addVertex'](_[_0x2e70('0xf')](_0xaaaaf3,_0x2e70('0x10')));}function initGraph(_0x50dfc1,_0x1622ca){var _0x3051cf=new Graph();for(var _0x111ea9 in _0x50dfc1){if(_0x50dfc1['hasOwnProperty'](_0x111ea9)){if(_[_0x2e70('0x11')](_0x50dfc1[_0x111ea9])){for(var _0x4b1ebf=0x0;_0x4b1ebf<_0x50dfc1[_0x111ea9][_0x2e70('0x12')];_0x4b1ebf+=0x1){addVertex(_0x3051cf,_0x50dfc1[_0x111ea9][_0x4b1ebf],_0x111ea9);}}else{addVertex(_0x3051cf,_0x50dfc1[_0x111ea9],_0x111ea9);}}}for(var _0x4b9919=0x0;_0x4b9919<_0x1622ca['length'];_0x4b9919+=0x1){if(_0x1622ca[_0x4b9919][_0x2e70('0x13')]&&_0x1622ca[_0x4b9919][_0x2e70('0x14')]){_0x3051cf[_0x2e70('0x15')](_0x1622ca[_0x4b9919][_0x2e70('0x13')],_0x1622ca[_0x4b9919][_0x2e70('0x14')],_0x1622ca[_0x4b9919][_0x2e70('0x16')]);}}return _0x3051cf;}function getRoot(_0x19fa12){return parser['toJson'](_0x19fa12,{'object':!![]})[_0x2e70('0x17')][_0x2e70('0x18')];}function inspect(_0xde365){return util[_0x2e70('0x19')](_0xde365,{'showHidden':![],'depth':null});}function initialize(_0xef304,_0x1cc5d9){var _0x2611d7=getRoot(_0xef304['production']);if(!_0x2611d7||!_0x2611d7[_0x2e70('0x1a')])return;var _0x55a3a0,_0x40883f,_0x1fec0c;logger[_0x2e70('0x1b')]('root',JSON['stringify'](_0x2611d7,null,0x2));_0x1cc5d9[_0x2e70('0x1c')]=moment()[_0x2e70('0x1d')](_0x2e70('0x1e'));_0x55a3a0=initGraph(_[_0x2e70('0xf')](_0x2611d7,'mxCell'),_0x2611d7['mxCell']);_0x40883f=new Vertices(_0x1cc5d9,rpc,mailRpc);logger[_0x2e70('0x1f')](util[_0x2e70('0x1d')](_0x2e70('0x20'),_0x1cc5d9[_0x2e70('0x21')],_0x1cc5d9[_0x2e70('0x22')],_0x1cc5d9[_0x2e70('0x23')],_0x1cc5d9[_0x2e70('0x24')],_0x1cc5d9[_0x2e70('0x25')]));_0x55a3a0[_0x2e70('0x26')](_0x2611d7[_0x2e70('0x1a')]['id'],function(_0x848ba9){try{_0x848ba9=_0x40883f['clear'](_0x848ba9);logger[_0x2e70('0x1b')](_0x2e70('0x27'),JSON[_0x2e70('0x28')](_0x848ba9,null,0x2));if(_0x848ba9['agicommand']===_0x2e70('0x29')){logger[_0x2e70('0x1f')](_0x2e70('0x2a'));_0x1cc5d9['context']=_0x848ba9[_0x2e70('0x2b')]||_0x1cc5d9['context'];_0x1cc5d9[_0x2e70('0x2c')]=_0x848ba9[_0x2e70('0x2c')];_0x1cc5d9[_0x2e70('0x2d')]=_0x848ba9[_0x2e70('0x2d')]?_0x848ba9[_0x2e70('0x2d')]-0x1:0x1;return null;}else if(_0x848ba9&&_0x40883f[_0x848ba9[_0x2e70('0xc')]]){_0x1fec0c=_0x40883f[_0x848ba9[_0x2e70('0xc')]](_0x848ba9);logger[_0x2e70('0x1f')](_0x2e70('0x2e'),JSON[_0x2e70('0x28')](_0x1fec0c,null,0x2));if(_0x1fec0c&&_0x1fec0c[_0x2e70('0x2f')]===AGI_CODE_SUCCESS&&_0x1fec0c[_0x2e70('0x30')]!==AGI_RESULT_ERROR&&!_0x1cc5d9[_0x2e70('0x31')]){logger[_0x2e70('0x1b')](_0x2e70('0x2e'),inspect(_0x1fec0c));return _[_0x2e70('0x32')](_0x1fec0c[_0x2e70('0x30')])?null:_0x1fec0c['result']['toString']();}else{logger['error'](_0x2e70('0x2e'),inspect(_0x1fec0c));return null;}}else{logger[_0x2e70('0xa')](_0x2e70('0x33'));return null;}}catch(_0x702ced){logger[_0x2e70('0xa')](_0x702ced[_0x2e70('0xb')]);return null;}});if(_0x2611d7['finally']){logger[_0x2e70('0x1f')](util['format']('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1cc5d9[_0x2e70('0x21')],_0x1cc5d9[_0x2e70('0x22')],_0x1cc5d9[_0x2e70('0x23')],_0x1cc5d9['dnid'],_0x1cc5d9[_0x2e70('0x25')]));_0x55a3a0[_0x2e70('0x26')](_0x2611d7[_0x2e70('0x34')]['id'],function(_0x353c4b){try{_0x353c4b=_0x40883f['clear'](_0x353c4b);logger['debug'](_0x2e70('0x27'),JSON['stringify'](_0x353c4b,null,0x2));if(_0x353c4b&&_0x40883f[_0x353c4b[_0x2e70('0xc')]]){_0x1fec0c=_0x40883f[_0x353c4b[_0x2e70('0xc')]](_0x353c4b);if(_0x1fec0c){logger[_0x2e70('0x1b')](_0x2e70('0x2e'),inspect(_0x1fec0c));return _[_0x2e70('0x32')](_0x1fec0c[_0x2e70('0x30')])?null:_0x1fec0c[_0x2e70('0x30')]['toString']();}else{logger['error'](_0x2e70('0x2e'),inspect(_0x1fec0c));return null;}}else{logger[_0x2e70('0xa')](_0x2e70('0x33'));return null;}}catch(_0x5801ef){logger[_0x2e70('0xa')](_0x5801ef[_0x2e70('0xb')]);return null;}});}logger[_0x2e70('0x1f')](util[_0x2e70('0x1d')](_0x2e70('0x35'),_0x1cc5d9[_0x2e70('0x21')],_0x1cc5d9[_0x2e70('0x22')],_0x1cc5d9[_0x2e70('0x23')],_0x1cc5d9[_0x2e70('0x24')],_0x1cc5d9[_0x2e70('0x25')]));logger['info'](util[_0x2e70('0x1d')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x1cc5d9['context'],_0x1cc5d9[_0x2e70('0x2c')],parseInt(_0x1cc5d9['priority'],0xa)+0x1));_0x1cc5d9['continueAt'](_0x1cc5d9[_0x2e70('0x2b')],_0x1cc5d9[_0x2e70('0x2c')],parseInt(_0x1cc5d9[_0x2e70('0x2d')],0xa)+0x1);_0x1cc5d9['close']();}function handleNotFound(_0x18f4c6){logger[_0x2e70('0xa')](util['format'](_0x2e70('0x36'),_0x18f4c6[_0x2e70('0x21')]));_0x18f4c6[_0x2e70('0x37')](_0x18f4c6[_0x2e70('0x2b')],_0x18f4c6[_0x2e70('0x2c')],parseInt(_0x18f4c6[_0x2e70('0x2d')],0xa)+0x1);_0x18f4c6[_0x2e70('0x38')]();}function handleUnpublished(_0x1baa22){logger[_0x2e70('0xa')](util[_0x2e70('0x1d')](_0x2e70('0x39'),_0x1baa22[_0x2e70('0x21')]));_0x1baa22[_0x2e70('0x37')](_0x1baa22[_0x2e70('0x2b')],_0x1baa22['extension'],parseInt(_0x1baa22[_0x2e70('0x2d')],0xa)+0x1);_0x1baa22[_0x2e70('0x38')]();}module[_0x2e70('0x3a')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};