869e1050969a4dd1a71f0fcb13ed61d3d5a40518
[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 _0x8b0c=['[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','xml2json','util','../../config/logger','agi','./rpc','./mailRpc','getSquareProjects','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','target','addEdge','source','value','toJson','mxGraphModel','inspect','production','start','debug','root','joinAt','YYYY-MM-DD\x20HH:mm:ss','info','format','arg_1','callerid','dnid','uniqueid','traverseBFS','stringify','context','extension','priority','response','code','result','evtHangup','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','vertex'];(function(_0x1a36e0,_0x646221){var _0x33c254=function(_0x11fda9){while(--_0x11fda9){_0x1a36e0['push'](_0x1a36e0['shift']());}};_0x33c254(++_0x646221);}(_0x8b0c,0x80));var _0xc8b0=function(_0x4baa80,_0x43e743){_0x4baa80=_0x4baa80-0x0;var _0x2a123a=_0x8b0c[_0x4baa80];return _0x2a123a;};'use strict';var _=require(_0xc8b0('0x0'));var moment=require(_0xc8b0('0x1'));var parser=require(_0xc8b0('0x2'));var util=require(_0xc8b0('0x3'));var logger=require(_0xc8b0('0x4'))(_0xc8b0('0x5'));var rpc=require(_0xc8b0('0x6'));var mailRpc=require(_0xc8b0('0x7'));var Graph=require('./graph');var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xc8b0('0x8')]()['catch'](function(_0x1e8c23){logger[_0xc8b0('0x9')](_0xc8b0('0xa'),_0x1e8c23[_0xc8b0('0xb')]);return[];});}function addVertex(_0x212d37,_0xbc7957,_0x47372b){_0xbc7957[_0xc8b0('0xc')]=_0x47372b;if(_0xbc7957[_0xc8b0('0xd')](_0xc8b0('0xe'))){_0xbc7957[_0xc8b0('0xf')]=parseInt(_0xbc7957[_0xc8b0('0xe')],0xa);}_0x212d37[_0xc8b0('0x10')](_[_0xc8b0('0x11')](_0xbc7957,_0xc8b0('0x12')));}function initGraph(_0x2651ac,_0xf26f2b){var _0x26699a=new Graph();for(var _0x299c7c in _0x2651ac){if(_0x2651ac['hasOwnProperty'](_0x299c7c)){if(_[_0xc8b0('0x13')](_0x2651ac[_0x299c7c])){for(var _0x340584=0x0;_0x340584<_0x2651ac[_0x299c7c][_0xc8b0('0x14')];_0x340584+=0x1){addVertex(_0x26699a,_0x2651ac[_0x299c7c][_0x340584],_0x299c7c);}}else{addVertex(_0x26699a,_0x2651ac[_0x299c7c],_0x299c7c);}}}for(var _0x50c9cd=0x0;_0x50c9cd<_0xf26f2b['length'];_0x50c9cd+=0x1){if(_0xf26f2b[_0x50c9cd]['source']&&_0xf26f2b[_0x50c9cd][_0xc8b0('0x15')]){_0x26699a[_0xc8b0('0x16')](_0xf26f2b[_0x50c9cd][_0xc8b0('0x17')],_0xf26f2b[_0x50c9cd][_0xc8b0('0x15')],_0xf26f2b[_0x50c9cd][_0xc8b0('0x18')]);}}return _0x26699a;}function getRoot(_0x5b4ba1){return parser[_0xc8b0('0x19')](_0x5b4ba1,{'object':!![]})[_0xc8b0('0x1a')]['root'];}function inspect(_0x1bb785){return util[_0xc8b0('0x1b')](_0x1bb785,{'showHidden':![],'depth':null});}function initialize(_0x32e5d9,_0x750584){var _0x5c090d=getRoot(_0x32e5d9[_0xc8b0('0x1c')]);if(!_0x5c090d||!_0x5c090d[_0xc8b0('0x1d')])return;var _0x34a3b3,_0x2cc869,_0x1b0059;logger[_0xc8b0('0x1e')](_0xc8b0('0x1f'),JSON['stringify'](_0x5c090d,null,0x2));_0x750584[_0xc8b0('0x20')]=moment()['format'](_0xc8b0('0x21'));_0x34a3b3=initGraph(_['omit'](_0x5c090d,_0xc8b0('0x12')),_0x5c090d[_0xc8b0('0x12')]);_0x2cc869=new Vertices(_0x750584,rpc,mailRpc);logger[_0xc8b0('0x22')](util[_0xc8b0('0x23')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x750584[_0xc8b0('0x24')],_0x750584['calleridname'],_0x750584[_0xc8b0('0x25')],_0x750584[_0xc8b0('0x26')],_0x750584[_0xc8b0('0x27')]));_0x34a3b3[_0xc8b0('0x28')](_0x5c090d[_0xc8b0('0x1d')]['id'],function(_0x4976a6){try{_0x4976a6=_0x2cc869['clear'](_0x4976a6);logger['debug']('vertex',JSON[_0xc8b0('0x29')](_0x4976a6,null,0x2));if(_0x4976a6[_0xc8b0('0xc')]==='gotoc'){logger['info']('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x750584[_0xc8b0('0x2a')]=_0x4976a6[_0xc8b0('0x2a')]||_0x750584[_0xc8b0('0x2a')];_0x750584[_0xc8b0('0x2b')]=_0x4976a6[_0xc8b0('0x2b')];_0x750584[_0xc8b0('0x2c')]=_0x4976a6[_0xc8b0('0x2c')]?_0x4976a6[_0xc8b0('0x2c')]-0x1:0x1;return null;}else if(_0x4976a6&&_0x2cc869[_0x4976a6[_0xc8b0('0xc')]]){_0x1b0059=_0x2cc869[_0x4976a6['agicommand']](_0x4976a6);logger['info'](_0xc8b0('0x2d'),JSON[_0xc8b0('0x29')](_0x1b0059,null,0x2));if(_0x1b0059&&_0x1b0059[_0xc8b0('0x2e')]===AGI_CODE_SUCCESS&&_0x1b0059[_0xc8b0('0x2f')]!==AGI_RESULT_ERROR&&!_0x750584[_0xc8b0('0x30')]){logger['debug'](_0xc8b0('0x2d'),inspect(_0x1b0059));return _[_0xc8b0('0x31')](_0x1b0059[_0xc8b0('0x2f')])?null:_0x1b0059['result'][_0xc8b0('0x32')]();}else{logger[_0xc8b0('0x9')](_0xc8b0('0x2d'),inspect(_0x1b0059));return null;}}else{logger['error'](_0xc8b0('0x33'));return null;}}catch(_0x1b8b7f){logger[_0xc8b0('0x9')](_0x1b8b7f[_0xc8b0('0xb')]);return null;}});if(_0x5c090d[_0xc8b0('0x34')]){logger[_0xc8b0('0x22')](util[_0xc8b0('0x23')](_0xc8b0('0x35'),_0x750584[_0xc8b0('0x24')],_0x750584['calleridname'],_0x750584[_0xc8b0('0x25')],_0x750584[_0xc8b0('0x26')],_0x750584[_0xc8b0('0x27')]));_0x34a3b3[_0xc8b0('0x28')](_0x5c090d[_0xc8b0('0x34')]['id'],function(_0x194f5a){try{_0x194f5a=_0x2cc869['clear'](_0x194f5a);logger['debug'](_0xc8b0('0x36'),JSON[_0xc8b0('0x29')](_0x194f5a,null,0x2));if(_0x194f5a&&_0x2cc869[_0x194f5a[_0xc8b0('0xc')]]){_0x1b0059=_0x2cc869[_0x194f5a[_0xc8b0('0xc')]](_0x194f5a);if(_0x1b0059){logger[_0xc8b0('0x1e')](_0xc8b0('0x2d'),inspect(_0x1b0059));return _[_0xc8b0('0x31')](_0x1b0059['result'])?null:_0x1b0059[_0xc8b0('0x2f')][_0xc8b0('0x32')]();}else{logger['error'](_0xc8b0('0x2d'),inspect(_0x1b0059));return null;}}else{logger[_0xc8b0('0x9')](_0xc8b0('0x33'));return null;}}catch(_0x5b4ded){logger[_0xc8b0('0x9')](_0x5b4ded[_0xc8b0('0xb')]);return null;}});}logger['info'](util[_0xc8b0('0x23')](_0xc8b0('0x37'),_0x750584[_0xc8b0('0x24')],_0x750584['calleridname'],_0x750584[_0xc8b0('0x25')],_0x750584[_0xc8b0('0x26')],_0x750584['uniqueid']));logger[_0xc8b0('0x22')](util[_0xc8b0('0x23')](_0xc8b0('0x38'),_0x750584[_0xc8b0('0x2a')],_0x750584[_0xc8b0('0x2b')],parseInt(_0x750584['priority'],0xa)+0x1));_0x750584[_0xc8b0('0x39')](_0x750584[_0xc8b0('0x2a')],_0x750584[_0xc8b0('0x2b')],parseInt(_0x750584['priority'],0xa)+0x1);_0x750584[_0xc8b0('0x3a')]();}function handleNotFound(_0x39dd2c){logger[_0xc8b0('0x9')](util[_0xc8b0('0x23')](_0xc8b0('0x3b'),_0x39dd2c[_0xc8b0('0x24')]));_0x39dd2c[_0xc8b0('0x39')](_0x39dd2c['context'],_0x39dd2c[_0xc8b0('0x2b')],parseInt(_0x39dd2c[_0xc8b0('0x2c')],0xa)+0x1);_0x39dd2c[_0xc8b0('0x3a')]();}function handleUnpublished(_0x4c78e4){logger['error'](util[_0xc8b0('0x23')]('Project\x20%s\x20not\x20published',_0x4c78e4['arg_1']));_0x4c78e4[_0xc8b0('0x39')](_0x4c78e4[_0xc8b0('0x2a')],_0x4c78e4[_0xc8b0('0x2b')],parseInt(_0x4c78e4[_0xc8b0('0x2c')],0xa)+0x1);_0x4c78e4[_0xc8b0('0x3a')]();}module[_0xc8b0('0x3c')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};