e247abe9858967bb92864522001703c970e44e20
[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 _0x64ae=['calleridname','uniqueid','[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','Project\x20%s\x20not\x20published','exports','lodash','moment','xml2json','util','../../config/logger','agi','./graph','getSquareProjects','error','Unable\x20to\x20download\x20CallySquare\x20projects','agicommand','hasOwnProperty','maxRetry','retry','addVertex','mxCell','isArray','length','source','target','value','toJson','mxGraphModel','root','inspect','stringify','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','omit','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','traverseBFS','start','clear','debug','vertex','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','evtHangup','response','isUndefined','toString','agicommand\x20not\x20found','stack','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s'];(function(_0x4ec4c6,_0xee1082){var _0x25c91d=function(_0xdfd764){while(--_0xdfd764){_0x4ec4c6['push'](_0x4ec4c6['shift']());}};_0x25c91d(++_0xee1082);}(_0x64ae,0x87));var _0xe64a=function(_0x5a0826,_0x1d3677){_0x5a0826=_0x5a0826-0x0;var _0x2912d3=_0x64ae[_0x5a0826];return _0x2912d3;};'use strict';var _=require(_0xe64a('0x0'));var moment=require(_0xe64a('0x1'));var parser=require(_0xe64a('0x2'));var util=require(_0xe64a('0x3'));var logger=require(_0xe64a('0x4'))(_0xe64a('0x5'));var rpc=require('./rpc');var mailRpc=require('./mailRpc');var Graph=require(_0xe64a('0x6'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xe64a('0x7')]()['catch'](function(_0x1db2a3){logger[_0xe64a('0x8')](_0xe64a('0x9'),_0x1db2a3['stack']);return[];});}function addVertex(_0xa714e9,_0x2fc630,_0xf03f7){_0x2fc630[_0xe64a('0xa')]=_0xf03f7;if(_0x2fc630[_0xe64a('0xb')]('retry')){_0x2fc630[_0xe64a('0xc')]=parseInt(_0x2fc630[_0xe64a('0xd')],0xa);}_0xa714e9[_0xe64a('0xe')](_['omit'](_0x2fc630,_0xe64a('0xf')));}function initGraph(_0x54dc18,_0x4527a7){var _0x47060c=new Graph();for(var _0xcab766 in _0x54dc18){if(_0x54dc18[_0xe64a('0xb')](_0xcab766)){if(_[_0xe64a('0x10')](_0x54dc18[_0xcab766])){for(var _0x1b4086=0x0;_0x1b4086<_0x54dc18[_0xcab766][_0xe64a('0x11')];_0x1b4086+=0x1){addVertex(_0x47060c,_0x54dc18[_0xcab766][_0x1b4086],_0xcab766);}}else{addVertex(_0x47060c,_0x54dc18[_0xcab766],_0xcab766);}}}for(var _0x5b4810=0x0;_0x5b4810<_0x4527a7[_0xe64a('0x11')];_0x5b4810+=0x1){if(_0x4527a7[_0x5b4810][_0xe64a('0x12')]&&_0x4527a7[_0x5b4810]['target']){_0x47060c['addEdge'](_0x4527a7[_0x5b4810][_0xe64a('0x12')],_0x4527a7[_0x5b4810][_0xe64a('0x13')],_0x4527a7[_0x5b4810][_0xe64a('0x14')]);}}return _0x47060c;}function getRoot(_0x5aa52b){return parser[_0xe64a('0x15')](_0x5aa52b,{'object':!![]})[_0xe64a('0x16')][_0xe64a('0x17')];}function inspect(_0x4fba68){return util[_0xe64a('0x18')](_0x4fba68,{'showHidden':![],'depth':null});}function initialize(_0x58ea1f,_0x2d891b){var _0x2074b8=getRoot(_0x58ea1f['production']);if(!_0x2074b8||!_0x2074b8['start'])return;var _0x16976f,_0x50cc82,_0x584945;logger['debug'](_0xe64a('0x17'),JSON[_0xe64a('0x19')](_0x2074b8,null,0x2));_0x2d891b[_0xe64a('0x1a')]=moment()[_0xe64a('0x1b')](_0xe64a('0x1c'));_0x16976f=initGraph(_[_0xe64a('0x1d')](_0x2074b8,'mxCell'),_0x2074b8['mxCell']);_0x50cc82=new Vertices(_0x2d891b,rpc,mailRpc);logger[_0xe64a('0x1e')](util['format'](_0xe64a('0x1f'),_0x2d891b[_0xe64a('0x20')],_0x2d891b['calleridname'],_0x2d891b[_0xe64a('0x21')],_0x2d891b[_0xe64a('0x22')],_0x2d891b['uniqueid']));_0x16976f[_0xe64a('0x23')](_0x2074b8[_0xe64a('0x24')]['id'],function(_0x13c1c7){try{_0x13c1c7=_0x50cc82[_0xe64a('0x25')](_0x13c1c7);logger[_0xe64a('0x26')](_0xe64a('0x27'),JSON[_0xe64a('0x19')](_0x13c1c7,null,0x2));if(_0x13c1c7[_0xe64a('0xa')]==='gotoc'){logger[_0xe64a('0x1e')](_0xe64a('0x28'));_0x2d891b['context']=_0x13c1c7[_0xe64a('0x29')]||_0x2d891b[_0xe64a('0x29')];_0x2d891b[_0xe64a('0x2a')]=_0x13c1c7[_0xe64a('0x2a')];_0x2d891b[_0xe64a('0x2b')]=_0x13c1c7[_0xe64a('0x2b')]?_0x13c1c7[_0xe64a('0x2b')]-0x1:0x1;return null;}else if(_0x13c1c7&&_0x50cc82[_0x13c1c7['agicommand']]){_0x584945=_0x50cc82[_0x13c1c7[_0xe64a('0xa')]](_0x13c1c7);logger[_0xe64a('0x1e')]('response',JSON['stringify'](_0x584945,null,0x2));if(_0x584945&&_0x584945[_0xe64a('0x2c')]===AGI_CODE_SUCCESS&&_0x584945[_0xe64a('0x2d')]!==AGI_RESULT_ERROR&&!_0x2d891b[_0xe64a('0x2e')]){logger[_0xe64a('0x26')](_0xe64a('0x2f'),inspect(_0x584945));return _[_0xe64a('0x30')](_0x584945[_0xe64a('0x2d')])?null:_0x584945[_0xe64a('0x2d')][_0xe64a('0x31')]();}else{logger['error'](_0xe64a('0x2f'),inspect(_0x584945));return null;}}else{logger[_0xe64a('0x8')](_0xe64a('0x32'));return null;}}catch(_0x225f93){logger[_0xe64a('0x8')](_0x225f93[_0xe64a('0x33')]);return null;}});if(_0x2074b8[_0xe64a('0x34')]){logger[_0xe64a('0x1e')](util[_0xe64a('0x1b')](_0xe64a('0x35'),_0x2d891b['arg_1'],_0x2d891b[_0xe64a('0x36')],_0x2d891b[_0xe64a('0x21')],_0x2d891b['dnid'],_0x2d891b[_0xe64a('0x37')]));_0x16976f[_0xe64a('0x23')](_0x2074b8[_0xe64a('0x34')]['id'],function(_0x453b74){try{_0x453b74=_0x50cc82[_0xe64a('0x25')](_0x453b74);logger['debug'](_0xe64a('0x27'),JSON[_0xe64a('0x19')](_0x453b74,null,0x2));if(_0x453b74&&_0x50cc82[_0x453b74['agicommand']]){_0x584945=_0x50cc82[_0x453b74['agicommand']](_0x453b74);if(_0x584945){logger[_0xe64a('0x26')]('response',inspect(_0x584945));return _['isUndefined'](_0x584945[_0xe64a('0x2d')])?null:_0x584945[_0xe64a('0x2d')][_0xe64a('0x31')]();}else{logger['error'](_0xe64a('0x2f'),inspect(_0x584945));return null;}}else{logger[_0xe64a('0x8')](_0xe64a('0x32'));return null;}}catch(_0x559a6d){logger[_0xe64a('0x8')](_0x559a6d[_0xe64a('0x33')]);return null;}});}logger[_0xe64a('0x1e')](util[_0xe64a('0x1b')](_0xe64a('0x38'),_0x2d891b[_0xe64a('0x20')],_0x2d891b[_0xe64a('0x36')],_0x2d891b['callerid'],_0x2d891b[_0xe64a('0x22')],_0x2d891b[_0xe64a('0x37')]));logger[_0xe64a('0x1e')](util[_0xe64a('0x1b')](_0xe64a('0x39'),_0x2d891b[_0xe64a('0x29')],_0x2d891b['extension'],parseInt(_0x2d891b[_0xe64a('0x2b')],0xa)+0x1));_0x2d891b[_0xe64a('0x3a')](_0x2d891b[_0xe64a('0x29')],_0x2d891b[_0xe64a('0x2a')],parseInt(_0x2d891b[_0xe64a('0x2b')],0xa)+0x1);_0x2d891b[_0xe64a('0x3b')]();}function handleNotFound(_0x388c1c){logger[_0xe64a('0x8')](util[_0xe64a('0x1b')](_0xe64a('0x3c'),_0x388c1c[_0xe64a('0x20')]));_0x388c1c['continueAt'](_0x388c1c[_0xe64a('0x29')],_0x388c1c['extension'],parseInt(_0x388c1c[_0xe64a('0x2b')],0xa)+0x1);_0x388c1c['close']();}function handleUnpublished(_0x2a71e6){logger[_0xe64a('0x8')](util[_0xe64a('0x1b')](_0xe64a('0x3d'),_0x2a71e6[_0xe64a('0x20')]));_0x2a71e6[_0xe64a('0x3a')](_0x2a71e6[_0xe64a('0x29')],_0x2a71e6[_0xe64a('0x2a')],parseInt(_0x2a71e6[_0xe64a('0x2b')],0xa)+0x1);_0x2a71e6[_0xe64a('0x3b')]();}module[_0xe64a('0x3e')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};