34ad90971d0342e147c7393191276b91cbb6a0c7
[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 _0x2a94=['inspect','production','start','debug','stringify','joinAt','format','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','clear','vertex','gotoc','context','extension','priority','response','code','evtHangup','isUndefined','result','toString','error','agicommand\x20not\x20found','stack','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','finally','[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\x20found','exports','lodash','moment','util','agi','./rpc','./mailRpc','./graph','Unable\x20to\x20download\x20CallySquare\x20projects','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','source','target','addEdge','value','toJson','mxGraphModel','root'];(function(_0x1406ae,_0x292395){var _0x23a076=function(_0x5e147a){while(--_0x5e147a){_0x1406ae['push'](_0x1406ae['shift']());}};_0x23a076(++_0x292395);}(_0x2a94,0x64));var _0x42a9=function(_0x1ad802,_0x2d6005){_0x1ad802=_0x1ad802-0x0;var _0x1566e5=_0x2a94[_0x1ad802];return _0x1566e5;};'use strict';var _=require(_0x42a9('0x0'));var moment=require(_0x42a9('0x1'));var parser=require('xml2json');var util=require(_0x42a9('0x2'));var logger=require('../../config/logger')(_0x42a9('0x3'));var rpc=require(_0x42a9('0x4'));var mailRpc=require(_0x42a9('0x5'));var Graph=require(_0x42a9('0x6'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()['catch'](function(_0x4c7547){logger['error'](_0x42a9('0x7'),_0x4c7547['stack']);return[];});}function addVertex(_0x36d41f,_0x52b32c,_0x257ffd){_0x52b32c[_0x42a9('0x8')]=_0x257ffd;if(_0x52b32c[_0x42a9('0x9')](_0x42a9('0xa'))){_0x52b32c[_0x42a9('0xb')]=parseInt(_0x52b32c[_0x42a9('0xa')],0xa);}_0x36d41f[_0x42a9('0xc')](_[_0x42a9('0xd')](_0x52b32c,_0x42a9('0xe')));}function initGraph(_0x378b42,_0x5a2e1e){var _0x480470=new Graph();for(var _0x462fb7 in _0x378b42){if(_0x378b42[_0x42a9('0x9')](_0x462fb7)){if(_[_0x42a9('0xf')](_0x378b42[_0x462fb7])){for(var _0xc64550=0x0;_0xc64550<_0x378b42[_0x462fb7]['length'];_0xc64550+=0x1){addVertex(_0x480470,_0x378b42[_0x462fb7][_0xc64550],_0x462fb7);}}else{addVertex(_0x480470,_0x378b42[_0x462fb7],_0x462fb7);}}}for(var _0x32df5d=0x0;_0x32df5d<_0x5a2e1e[_0x42a9('0x10')];_0x32df5d+=0x1){if(_0x5a2e1e[_0x32df5d][_0x42a9('0x11')]&&_0x5a2e1e[_0x32df5d][_0x42a9('0x12')]){_0x480470[_0x42a9('0x13')](_0x5a2e1e[_0x32df5d][_0x42a9('0x11')],_0x5a2e1e[_0x32df5d][_0x42a9('0x12')],_0x5a2e1e[_0x32df5d][_0x42a9('0x14')]);}}return _0x480470;}function getRoot(_0x122aaf){return parser[_0x42a9('0x15')](_0x122aaf,{'object':!![]})[_0x42a9('0x16')][_0x42a9('0x17')];}function inspect(_0x5cd45f){return util[_0x42a9('0x18')](_0x5cd45f,{'showHidden':![],'depth':null});}function initialize(_0x7b8248,_0x279704){var _0x305736=getRoot(_0x7b8248[_0x42a9('0x19')]);if(!_0x305736||!_0x305736[_0x42a9('0x1a')])return;var _0x4daddf,_0xf7a967,_0x4cf015;logger[_0x42a9('0x1b')](_0x42a9('0x17'),JSON[_0x42a9('0x1c')](_0x305736,null,0x2));_0x279704[_0x42a9('0x1d')]=moment()[_0x42a9('0x1e')]('YYYY-MM-DD\x20HH:mm:ss');_0x4daddf=initGraph(_['omit'](_0x305736,_0x42a9('0xe')),_0x305736[_0x42a9('0xe')]);_0xf7a967=new Vertices(_0x279704,rpc,mailRpc);logger[_0x42a9('0x1f')](util['format'](_0x42a9('0x20'),_0x279704[_0x42a9('0x21')],_0x279704[_0x42a9('0x22')],_0x279704[_0x42a9('0x23')],_0x279704[_0x42a9('0x24')],_0x279704[_0x42a9('0x25')]));_0x4daddf[_0x42a9('0x26')](_0x305736[_0x42a9('0x1a')]['id'],function(_0x43d698){try{_0x43d698=_0xf7a967[_0x42a9('0x27')](_0x43d698);logger['debug'](_0x42a9('0x28'),JSON['stringify'](_0x43d698,null,0x2));if(_0x43d698[_0x42a9('0x8')]===_0x42a9('0x29')){logger['info']('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x279704[_0x42a9('0x2a')]=_0x43d698[_0x42a9('0x2a')]||_0x279704[_0x42a9('0x2a')];_0x279704[_0x42a9('0x2b')]=_0x43d698[_0x42a9('0x2b')];_0x279704[_0x42a9('0x2c')]=_0x43d698[_0x42a9('0x2c')]?_0x43d698[_0x42a9('0x2c')]-0x1:0x1;return null;}else if(_0x43d698&&_0xf7a967[_0x43d698[_0x42a9('0x8')]]){_0x4cf015=_0xf7a967[_0x43d698[_0x42a9('0x8')]](_0x43d698);logger[_0x42a9('0x1f')](_0x42a9('0x2d'),JSON[_0x42a9('0x1c')](_0x4cf015,null,0x2));if(_0x4cf015&&_0x4cf015[_0x42a9('0x2e')]===AGI_CODE_SUCCESS&&_0x4cf015['result']!==AGI_RESULT_ERROR&&!_0x279704[_0x42a9('0x2f')]){logger[_0x42a9('0x1b')](_0x42a9('0x2d'),inspect(_0x4cf015));return _[_0x42a9('0x30')](_0x4cf015['result'])?null:_0x4cf015[_0x42a9('0x31')][_0x42a9('0x32')]();}else{logger[_0x42a9('0x33')](_0x42a9('0x2d'),inspect(_0x4cf015));return null;}}else{logger[_0x42a9('0x33')](_0x42a9('0x34'));return null;}}catch(_0x283800){logger[_0x42a9('0x33')](_0x283800[_0x42a9('0x35')]);return null;}});if(_0x305736['finally']){logger[_0x42a9('0x1f')](util[_0x42a9('0x1e')](_0x42a9('0x36'),_0x279704['arg_1'],_0x279704[_0x42a9('0x22')],_0x279704[_0x42a9('0x23')],_0x279704[_0x42a9('0x24')],_0x279704[_0x42a9('0x25')]));_0x4daddf[_0x42a9('0x26')](_0x305736[_0x42a9('0x37')]['id'],function(_0x31febf){try{_0x31febf=_0xf7a967[_0x42a9('0x27')](_0x31febf);logger[_0x42a9('0x1b')](_0x42a9('0x28'),JSON[_0x42a9('0x1c')](_0x31febf,null,0x2));if(_0x31febf&&_0xf7a967[_0x31febf['agicommand']]){_0x4cf015=_0xf7a967[_0x31febf[_0x42a9('0x8')]](_0x31febf);if(_0x4cf015){logger[_0x42a9('0x1b')](_0x42a9('0x2d'),inspect(_0x4cf015));return _[_0x42a9('0x30')](_0x4cf015[_0x42a9('0x31')])?null:_0x4cf015['result']['toString']();}else{logger[_0x42a9('0x33')](_0x42a9('0x2d'),inspect(_0x4cf015));return null;}}else{logger[_0x42a9('0x33')](_0x42a9('0x34'));return null;}}catch(_0x2814ec){logger[_0x42a9('0x33')](_0x2814ec['stack']);return null;}});}logger[_0x42a9('0x1f')](util[_0x42a9('0x1e')](_0x42a9('0x38'),_0x279704[_0x42a9('0x21')],_0x279704[_0x42a9('0x22')],_0x279704[_0x42a9('0x23')],_0x279704[_0x42a9('0x24')],_0x279704[_0x42a9('0x25')]));logger[_0x42a9('0x1f')](util['format'](_0x42a9('0x39'),_0x279704[_0x42a9('0x2a')],_0x279704['extension'],parseInt(_0x279704[_0x42a9('0x2c')],0xa)+0x1));_0x279704[_0x42a9('0x3a')](_0x279704[_0x42a9('0x2a')],_0x279704['extension'],parseInt(_0x279704[_0x42a9('0x2c')],0xa)+0x1);_0x279704[_0x42a9('0x3b')]();}function handleNotFound(_0x17d8ce){logger[_0x42a9('0x33')](util['format'](_0x42a9('0x3c'),_0x17d8ce[_0x42a9('0x21')]));_0x17d8ce[_0x42a9('0x3a')](_0x17d8ce[_0x42a9('0x2a')],_0x17d8ce[_0x42a9('0x2b')],parseInt(_0x17d8ce[_0x42a9('0x2c')],0xa)+0x1);_0x17d8ce[_0x42a9('0x3b')]();}function handleUnpublished(_0x5ee489){logger[_0x42a9('0x33')](util[_0x42a9('0x1e')]('Project\x20%s\x20not\x20published',_0x5ee489['arg_1']));_0x5ee489[_0x42a9('0x3a')](_0x5ee489[_0x42a9('0x2a')],_0x5ee489[_0x42a9('0x2b')],parseInt(_0x5ee489['priority'],0xa)+0x1);_0x5ee489[_0x42a9('0x3b')]();}module[_0x42a9('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};