a32e63ebd7ae5c43c4b605433d6bcc64d0a11ec8
[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 _0xf800=['start','debug','root','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','info','arg_1','calleridname','dnid','clear','vertex','stringify','agicommand','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','extension','priority','response','result','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','callerid','uniqueid','context','close','Project\x20%s\x20not\x20found','continueAt','exports','moment','xml2json','util','../../config/logger','agi','./rpc','./mailRpc','./graph','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','addVertex','omit','mxCell','length','source','target','addEdge','value','mxGraphModel','inspect','production'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf800,0x176));var _0x0f80=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf800[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var moment=require(_0x0f80('0x0'));var parser=require(_0x0f80('0x1'));var util=require(_0x0f80('0x2'));var logger=require(_0x0f80('0x3'))(_0x0f80('0x4'));var rpc=require(_0x0f80('0x5'));var mailRpc=require(_0x0f80('0x6'));var Graph=require(_0x0f80('0x7'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x0f80('0x8')]()[_0x0f80('0x9')](function(_0x5818b2){logger[_0x0f80('0xa')](_0x0f80('0xb'),_0x5818b2[_0x0f80('0xc')]);return[];});}function addVertex(_0x24523d,_0x1a9c53,_0x2d7095){_0x1a9c53['agicommand']=_0x2d7095;if(_0x1a9c53[_0x0f80('0xd')]('retry')){_0x1a9c53['maxRetry']=parseInt(_0x1a9c53['retry'],0xa);}_0x24523d[_0x0f80('0xe')](_[_0x0f80('0xf')](_0x1a9c53,_0x0f80('0x10')));}function initGraph(_0x58fdb7,_0x151205){var _0x2dde2b=new Graph();for(var _0x10ad98 in _0x58fdb7){if(_0x58fdb7[_0x0f80('0xd')](_0x10ad98)){if(_['isArray'](_0x58fdb7[_0x10ad98])){for(var _0x3704bc=0x0;_0x3704bc<_0x58fdb7[_0x10ad98][_0x0f80('0x11')];_0x3704bc+=0x1){addVertex(_0x2dde2b,_0x58fdb7[_0x10ad98][_0x3704bc],_0x10ad98);}}else{addVertex(_0x2dde2b,_0x58fdb7[_0x10ad98],_0x10ad98);}}}for(var _0x530643=0x0;_0x530643<_0x151205[_0x0f80('0x11')];_0x530643+=0x1){if(_0x151205[_0x530643][_0x0f80('0x12')]&&_0x151205[_0x530643][_0x0f80('0x13')]){_0x2dde2b[_0x0f80('0x14')](_0x151205[_0x530643][_0x0f80('0x12')],_0x151205[_0x530643][_0x0f80('0x13')],_0x151205[_0x530643][_0x0f80('0x15')]);}}return _0x2dde2b;}function getRoot(_0x4b063a){return parser['toJson'](_0x4b063a,{'object':!![]})[_0x0f80('0x16')]['root'];}function inspect(_0x19c5e3){return util[_0x0f80('0x17')](_0x19c5e3,{'showHidden':![],'depth':null});}function initialize(_0x40b2ed,_0x3978fa){var _0x38969d=getRoot(_0x40b2ed[_0x0f80('0x18')]);if(!_0x38969d||!_0x38969d[_0x0f80('0x19')])return;var _0x1c34ca,_0x22a713,_0x3a0add;logger[_0x0f80('0x1a')](_0x0f80('0x1b'),JSON['stringify'](_0x38969d,null,0x2));_0x3978fa[_0x0f80('0x1c')]=moment()[_0x0f80('0x1d')](_0x0f80('0x1e'));_0x1c34ca=initGraph(_[_0x0f80('0xf')](_0x38969d,_0x0f80('0x10')),_0x38969d['mxCell']);_0x22a713=new Vertices(_0x3978fa,rpc,mailRpc);logger[_0x0f80('0x1f')](util[_0x0f80('0x1d')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3978fa[_0x0f80('0x20')],_0x3978fa[_0x0f80('0x21')],_0x3978fa['callerid'],_0x3978fa[_0x0f80('0x22')],_0x3978fa['uniqueid']));_0x1c34ca['traverseBFS'](_0x38969d[_0x0f80('0x19')]['id'],function(_0x2526a0){try{_0x2526a0=_0x22a713[_0x0f80('0x23')](_0x2526a0);logger[_0x0f80('0x1a')](_0x0f80('0x24'),JSON[_0x0f80('0x25')](_0x2526a0,null,0x2));if(_0x2526a0[_0x0f80('0x26')]===_0x0f80('0x27')){logger[_0x0f80('0x1f')](_0x0f80('0x28'));_0x3978fa['context']=_0x2526a0['context']||_0x3978fa['context'];_0x3978fa['extension']=_0x2526a0[_0x0f80('0x29')];_0x3978fa[_0x0f80('0x2a')]=_0x2526a0[_0x0f80('0x2a')]?_0x2526a0[_0x0f80('0x2a')]-0x1:0x1;return null;}else if(_0x2526a0&&_0x22a713[_0x2526a0[_0x0f80('0x26')]]){_0x3a0add=_0x22a713[_0x2526a0[_0x0f80('0x26')]](_0x2526a0);logger['info'](_0x0f80('0x2b'),JSON[_0x0f80('0x25')](_0x3a0add,null,0x2));if(_0x3a0add&&_0x3a0add['code']===AGI_CODE_SUCCESS&&_0x3a0add[_0x0f80('0x2c')]!==AGI_RESULT_ERROR&&!_0x3978fa['evtHangup']){logger[_0x0f80('0x1a')](_0x0f80('0x2b'),inspect(_0x3a0add));return _[_0x0f80('0x2d')](_0x3a0add[_0x0f80('0x2c')])?null:_0x3a0add[_0x0f80('0x2c')][_0x0f80('0x2e')]();}else{logger['error']('response',inspect(_0x3a0add));return null;}}else{logger[_0x0f80('0xa')](_0x0f80('0x2f'));return null;}}catch(_0xf7655c){logger[_0x0f80('0xa')](_0xf7655c['stack']);return null;}});if(_0x38969d[_0x0f80('0x30')]){logger[_0x0f80('0x1f')](util['format'](_0x0f80('0x31'),_0x3978fa['arg_1'],_0x3978fa[_0x0f80('0x21')],_0x3978fa['callerid'],_0x3978fa['dnid'],_0x3978fa['uniqueid']));_0x1c34ca['traverseBFS'](_0x38969d[_0x0f80('0x30')]['id'],function(_0x83717b){try{_0x83717b=_0x22a713['clear'](_0x83717b);logger[_0x0f80('0x1a')]('vertex',JSON[_0x0f80('0x25')](_0x83717b,null,0x2));if(_0x83717b&&_0x22a713[_0x83717b['agicommand']]){_0x3a0add=_0x22a713[_0x83717b['agicommand']](_0x83717b);if(_0x3a0add){logger[_0x0f80('0x1a')](_0x0f80('0x2b'),inspect(_0x3a0add));return _['isUndefined'](_0x3a0add['result'])?null:_0x3a0add[_0x0f80('0x2c')]['toString']();}else{logger['error'](_0x0f80('0x2b'),inspect(_0x3a0add));return null;}}else{logger[_0x0f80('0xa')](_0x0f80('0x2f'));return null;}}catch(_0x57bc7c){logger[_0x0f80('0xa')](_0x57bc7c[_0x0f80('0xc')]);return null;}});}logger[_0x0f80('0x1f')](util[_0x0f80('0x1d')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3978fa[_0x0f80('0x20')],_0x3978fa[_0x0f80('0x21')],_0x3978fa[_0x0f80('0x32')],_0x3978fa[_0x0f80('0x22')],_0x3978fa[_0x0f80('0x33')]));logger[_0x0f80('0x1f')](util['format']('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x3978fa[_0x0f80('0x34')],_0x3978fa[_0x0f80('0x29')],parseInt(_0x3978fa[_0x0f80('0x2a')],0xa)+0x1));_0x3978fa['continueAt'](_0x3978fa[_0x0f80('0x34')],_0x3978fa[_0x0f80('0x29')],parseInt(_0x3978fa['priority'],0xa)+0x1);_0x3978fa[_0x0f80('0x35')]();}function handleNotFound(_0x1a10e1){logger[_0x0f80('0xa')](util[_0x0f80('0x1d')](_0x0f80('0x36'),_0x1a10e1[_0x0f80('0x20')]));_0x1a10e1[_0x0f80('0x37')](_0x1a10e1[_0x0f80('0x34')],_0x1a10e1[_0x0f80('0x29')],parseInt(_0x1a10e1[_0x0f80('0x2a')],0xa)+0x1);_0x1a10e1[_0x0f80('0x35')]();}function handleUnpublished(_0x1c4916){logger['error'](util[_0x0f80('0x1d')]('Project\x20%s\x20not\x20published',_0x1c4916['arg_1']));_0x1c4916[_0x0f80('0x37')](_0x1c4916[_0x0f80('0x34')],_0x1c4916[_0x0f80('0x29')],parseInt(_0x1c4916['priority'],0xa)+0x1);_0x1c4916[_0x0f80('0x35')]();}module[_0x0f80('0x38')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};