44bbeb1d6d22f04a78ed3dddb462335cae2ec80f
[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 _0xa76a=['error','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','traverseBFS','isUndefined','[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','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','close','exports','lodash','moment','xml2json','../../config/logger','agi','./rpc','./mailRpc','./graph','./vertices','getSquareProjects','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','retry','maxRetry','addVertex','omit','mxCell','length','source','target','addEdge','value','mxGraphModel','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','callerid','dnid','uniqueid','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','evtHangup','response','toString'];(function(_0x172133,_0x10246b){var _0x2460e5=function(_0x3c4918){while(--_0x3c4918){_0x172133['push'](_0x172133['shift']());}};_0x2460e5(++_0x10246b);}(_0xa76a,0x88));var _0xaa76=function(_0xfcbcb8,_0x35bf6b){_0xfcbcb8=_0xfcbcb8-0x0;var _0x1b1f97=_0xa76a[_0xfcbcb8];return _0x1b1f97;};'use strict';var _=require(_0xaa76('0x0'));var moment=require(_0xaa76('0x1'));var parser=require(_0xaa76('0x2'));var util=require('util');var logger=require(_0xaa76('0x3'))(_0xaa76('0x4'));var rpc=require(_0xaa76('0x5'));var mailRpc=require(_0xaa76('0x6'));var Graph=require(_0xaa76('0x7'));var Vertices=require(_0xaa76('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xaa76('0x9')]()['catch'](function(_0x415ea1){logger['error'](_0xaa76('0xa'),_0x415ea1[_0xaa76('0xb')]);return[];});}function addVertex(_0x1d559e,_0x28e679,_0x128fb9){_0x28e679[_0xaa76('0xc')]=_0x128fb9;if(_0x28e679['hasOwnProperty'](_0xaa76('0xd'))){_0x28e679[_0xaa76('0xe')]=parseInt(_0x28e679['retry'],0xa);}_0x1d559e[_0xaa76('0xf')](_[_0xaa76('0x10')](_0x28e679,_0xaa76('0x11')));}function initGraph(_0x267c87,_0x3e4d5f){var _0x54d78b=new Graph();for(var _0x8745b9 in _0x267c87){if(_0x267c87['hasOwnProperty'](_0x8745b9)){if(_['isArray'](_0x267c87[_0x8745b9])){for(var _0x2ccfe2=0x0;_0x2ccfe2<_0x267c87[_0x8745b9][_0xaa76('0x12')];_0x2ccfe2+=0x1){addVertex(_0x54d78b,_0x267c87[_0x8745b9][_0x2ccfe2],_0x8745b9);}}else{addVertex(_0x54d78b,_0x267c87[_0x8745b9],_0x8745b9);}}}for(var _0x22dbf9=0x0;_0x22dbf9<_0x3e4d5f[_0xaa76('0x12')];_0x22dbf9+=0x1){if(_0x3e4d5f[_0x22dbf9][_0xaa76('0x13')]&&_0x3e4d5f[_0x22dbf9][_0xaa76('0x14')]){_0x54d78b[_0xaa76('0x15')](_0x3e4d5f[_0x22dbf9][_0xaa76('0x13')],_0x3e4d5f[_0x22dbf9][_0xaa76('0x14')],_0x3e4d5f[_0x22dbf9][_0xaa76('0x16')]);}}return _0x54d78b;}function getRoot(_0x13be12){return parser['toJson'](_0x13be12,{'object':!![]})[_0xaa76('0x17')]['root'];}function inspect(_0x469319){return util['inspect'](_0x469319,{'showHidden':![],'depth':null});}function initialize(_0x554da8,_0x538736){var _0x533102=getRoot(_0x554da8['production']);if(!_0x533102||!_0x533102[_0xaa76('0x18')])return;var _0xac6a3,_0x53fc2a,_0x4410c4;logger[_0xaa76('0x19')]('root',JSON[_0xaa76('0x1a')](_0x533102,null,0x2));_0x538736[_0xaa76('0x1b')]=moment()[_0xaa76('0x1c')]('YYYY-MM-DD\x20HH:mm:ss');_0xac6a3=initGraph(_[_0xaa76('0x10')](_0x533102,'mxCell'),_0x533102[_0xaa76('0x11')]);_0x53fc2a=new Vertices(_0x538736,rpc,mailRpc);logger[_0xaa76('0x1d')](util[_0xaa76('0x1c')](_0xaa76('0x1e'),_0x538736[_0xaa76('0x1f')],_0x538736['calleridname'],_0x538736[_0xaa76('0x20')],_0x538736[_0xaa76('0x21')],_0x538736[_0xaa76('0x22')]));_0xac6a3['traverseBFS'](_0x533102[_0xaa76('0x18')]['id'],function(_0x4848f6){try{_0x4848f6=_0x53fc2a[_0xaa76('0x23')](_0x4848f6);logger[_0xaa76('0x19')](_0xaa76('0x24'),JSON[_0xaa76('0x1a')](_0x4848f6,null,0x2));if(_0x4848f6[_0xaa76('0xc')]===_0xaa76('0x25')){logger[_0xaa76('0x1d')](_0xaa76('0x26'));_0x538736[_0xaa76('0x27')]=_0x4848f6[_0xaa76('0x27')]||_0x538736['context'];_0x538736[_0xaa76('0x28')]=_0x4848f6['extension'];_0x538736['priority']=_0x4848f6[_0xaa76('0x29')]?_0x4848f6[_0xaa76('0x29')]-0x1:0x1;return null;}else if(_0x4848f6&&_0x53fc2a[_0x4848f6[_0xaa76('0xc')]]){_0x4410c4=_0x53fc2a[_0x4848f6[_0xaa76('0xc')]](_0x4848f6);logger[_0xaa76('0x1d')]('response',JSON[_0xaa76('0x1a')](_0x4410c4,null,0x2));if(_0x4410c4&&_0x4410c4[_0xaa76('0x2a')]===AGI_CODE_SUCCESS&&_0x4410c4[_0xaa76('0x2b')]!==AGI_RESULT_ERROR&&!_0x538736[_0xaa76('0x2c')]){logger[_0xaa76('0x19')](_0xaa76('0x2d'),inspect(_0x4410c4));return _['isUndefined'](_0x4410c4[_0xaa76('0x2b')])?null:_0x4410c4[_0xaa76('0x2b')][_0xaa76('0x2e')]();}else{logger[_0xaa76('0x2f')]('response',inspect(_0x4410c4));return null;}}else{logger[_0xaa76('0x2f')](_0xaa76('0x30'));return null;}}catch(_0x2e618e){logger[_0xaa76('0x2f')](_0x2e618e[_0xaa76('0xb')]);return null;}});if(_0x533102[_0xaa76('0x31')]){logger[_0xaa76('0x1d')](util[_0xaa76('0x1c')](_0xaa76('0x32'),_0x538736[_0xaa76('0x1f')],_0x538736[_0xaa76('0x33')],_0x538736[_0xaa76('0x20')],_0x538736[_0xaa76('0x21')],_0x538736[_0xaa76('0x22')]));_0xac6a3[_0xaa76('0x34')](_0x533102[_0xaa76('0x31')]['id'],function(_0xb5ddcc){try{_0xb5ddcc=_0x53fc2a[_0xaa76('0x23')](_0xb5ddcc);logger[_0xaa76('0x19')](_0xaa76('0x24'),JSON[_0xaa76('0x1a')](_0xb5ddcc,null,0x2));if(_0xb5ddcc&&_0x53fc2a[_0xb5ddcc['agicommand']]){_0x4410c4=_0x53fc2a[_0xb5ddcc[_0xaa76('0xc')]](_0xb5ddcc);if(_0x4410c4){logger[_0xaa76('0x19')]('response',inspect(_0x4410c4));return _[_0xaa76('0x35')](_0x4410c4[_0xaa76('0x2b')])?null:_0x4410c4[_0xaa76('0x2b')][_0xaa76('0x2e')]();}else{logger[_0xaa76('0x2f')](_0xaa76('0x2d'),inspect(_0x4410c4));return null;}}else{logger[_0xaa76('0x2f')](_0xaa76('0x30'));return null;}}catch(_0x445912){logger[_0xaa76('0x2f')](_0x445912['stack']);return null;}});}logger[_0xaa76('0x1d')](util['format'](_0xaa76('0x36'),_0x538736[_0xaa76('0x1f')],_0x538736[_0xaa76('0x33')],_0x538736[_0xaa76('0x20')],_0x538736['dnid'],_0x538736[_0xaa76('0x22')]));logger[_0xaa76('0x1d')](util[_0xaa76('0x1c')](_0xaa76('0x37'),_0x538736[_0xaa76('0x27')],_0x538736[_0xaa76('0x28')],parseInt(_0x538736[_0xaa76('0x29')],0xa)+0x1));_0x538736[_0xaa76('0x38')](_0x538736[_0xaa76('0x27')],_0x538736[_0xaa76('0x28')],parseInt(_0x538736[_0xaa76('0x29')],0xa)+0x1);_0x538736['close']();}function handleNotFound(_0x583535){logger[_0xaa76('0x2f')](util[_0xaa76('0x1c')](_0xaa76('0x39'),_0x583535[_0xaa76('0x1f')]));_0x583535[_0xaa76('0x38')](_0x583535[_0xaa76('0x27')],_0x583535[_0xaa76('0x28')],parseInt(_0x583535[_0xaa76('0x29')],0xa)+0x1);_0x583535['close']();}function handleUnpublished(_0x5269e4){logger[_0xaa76('0x2f')](util[_0xaa76('0x1c')](_0xaa76('0x3a'),_0x5269e4[_0xaa76('0x1f')]));_0x5269e4[_0xaa76('0x38')](_0x5269e4[_0xaa76('0x27')],_0x5269e4[_0xaa76('0x28')],parseInt(_0x5269e4['priority'],0xa)+0x1);_0x5269e4[_0xaa76('0x3b')]();}module[_0xaa76('0x3c')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};