32ef5e7928c3358d117b619d4c3999a40d94a0f7
[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 _0xef68=['format','YYYY-MM-DD\x20HH:mm:ss','mxCell','info','arg_1','calleridname','callerid','dnid','uniqueid','traverseBFS','clear','vertex','gotoc','context','extension','priority','code','result','evtHangup','response','isUndefined','toString','agicommand\x20not\x20found','[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','Project\x20%s\x20not\x20found','close','Project\x20%s\x20not\x20published','exports','lodash','xml2json','../../config/logger','./rpc','./mailRpc','./graph','./vertices','getSquareProjects','catch','error','stack','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','isArray','length','source','addEdge','target','toJson','mxGraphModel','root','production','start','debug','stringify','joinAt'];(function(_0x878bbc,_0x548a12){var _0x12cd2a=function(_0x4bb213){while(--_0x4bb213){_0x878bbc['push'](_0x878bbc['shift']());}};_0x12cd2a(++_0x548a12);}(_0xef68,0x194));var _0x8ef6=function(_0x88cd7b,_0x4c884c){_0x88cd7b=_0x88cd7b-0x0;var _0x56fcc8=_0xef68[_0x88cd7b];return _0x56fcc8;};'use strict';var _=require(_0x8ef6('0x0'));var moment=require('moment');var parser=require(_0x8ef6('0x1'));var util=require('util');var logger=require(_0x8ef6('0x2'))('agi');var rpc=require(_0x8ef6('0x3'));var mailRpc=require(_0x8ef6('0x4'));var Graph=require(_0x8ef6('0x5'));var Vertices=require(_0x8ef6('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x8ef6('0x7')]()[_0x8ef6('0x8')](function(_0x194b29){logger[_0x8ef6('0x9')]('Unable\x20to\x20download\x20CallySquare\x20projects',_0x194b29[_0x8ef6('0xa')]);return[];});}function addVertex(_0x483d31,_0x417129,_0x381955){_0x417129[_0x8ef6('0xb')]=_0x381955;if(_0x417129[_0x8ef6('0xc')](_0x8ef6('0xd'))){_0x417129[_0x8ef6('0xe')]=parseInt(_0x417129[_0x8ef6('0xd')],0xa);}_0x483d31[_0x8ef6('0xf')](_[_0x8ef6('0x10')](_0x417129,'mxCell'));}function initGraph(_0xf7353e,_0x35370f){var _0x382857=new Graph();for(var _0xac54fb in _0xf7353e){if(_0xf7353e[_0x8ef6('0xc')](_0xac54fb)){if(_[_0x8ef6('0x11')](_0xf7353e[_0xac54fb])){for(var _0xd2805=0x0;_0xd2805<_0xf7353e[_0xac54fb][_0x8ef6('0x12')];_0xd2805+=0x1){addVertex(_0x382857,_0xf7353e[_0xac54fb][_0xd2805],_0xac54fb);}}else{addVertex(_0x382857,_0xf7353e[_0xac54fb],_0xac54fb);}}}for(var _0xde56c2=0x0;_0xde56c2<_0x35370f[_0x8ef6('0x12')];_0xde56c2+=0x1){if(_0x35370f[_0xde56c2][_0x8ef6('0x13')]&&_0x35370f[_0xde56c2]['target']){_0x382857[_0x8ef6('0x14')](_0x35370f[_0xde56c2][_0x8ef6('0x13')],_0x35370f[_0xde56c2][_0x8ef6('0x15')],_0x35370f[_0xde56c2]['value']);}}return _0x382857;}function getRoot(_0x3161e2){return parser[_0x8ef6('0x16')](_0x3161e2,{'object':!![]})[_0x8ef6('0x17')][_0x8ef6('0x18')];}function inspect(_0x19642f){return util['inspect'](_0x19642f,{'showHidden':![],'depth':null});}function initialize(_0x20041e,_0x3c38b3){var _0x47e661=getRoot(_0x20041e[_0x8ef6('0x19')]);if(!_0x47e661||!_0x47e661[_0x8ef6('0x1a')])return;var _0x2a3d0b,_0x2df3ac,_0x3008de;logger[_0x8ef6('0x1b')]('root',JSON[_0x8ef6('0x1c')](_0x47e661,null,0x2));_0x3c38b3[_0x8ef6('0x1d')]=moment()[_0x8ef6('0x1e')](_0x8ef6('0x1f'));_0x2a3d0b=initGraph(_[_0x8ef6('0x10')](_0x47e661,_0x8ef6('0x20')),_0x47e661[_0x8ef6('0x20')]);_0x2df3ac=new Vertices(_0x3c38b3,rpc,mailRpc);logger[_0x8ef6('0x21')](util[_0x8ef6('0x1e')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3c38b3[_0x8ef6('0x22')],_0x3c38b3[_0x8ef6('0x23')],_0x3c38b3[_0x8ef6('0x24')],_0x3c38b3[_0x8ef6('0x25')],_0x3c38b3[_0x8ef6('0x26')]));_0x2a3d0b[_0x8ef6('0x27')](_0x47e661[_0x8ef6('0x1a')]['id'],function(_0xa098d){try{_0xa098d=_0x2df3ac[_0x8ef6('0x28')](_0xa098d);logger[_0x8ef6('0x1b')](_0x8ef6('0x29'),JSON[_0x8ef6('0x1c')](_0xa098d,null,0x2));if(_0xa098d[_0x8ef6('0xb')]===_0x8ef6('0x2a')){logger[_0x8ef6('0x21')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x3c38b3[_0x8ef6('0x2b')]=_0xa098d['context']||_0x3c38b3['context'];_0x3c38b3[_0x8ef6('0x2c')]=_0xa098d[_0x8ef6('0x2c')];_0x3c38b3[_0x8ef6('0x2d')]=_0xa098d[_0x8ef6('0x2d')]?_0xa098d[_0x8ef6('0x2d')]-0x1:0x1;return null;}else if(_0xa098d&&_0x2df3ac[_0xa098d['agicommand']]){_0x3008de=_0x2df3ac[_0xa098d[_0x8ef6('0xb')]](_0xa098d);logger[_0x8ef6('0x21')]('response',JSON[_0x8ef6('0x1c')](_0x3008de,null,0x2));if(_0x3008de&&_0x3008de[_0x8ef6('0x2e')]===AGI_CODE_SUCCESS&&_0x3008de[_0x8ef6('0x2f')]!==AGI_RESULT_ERROR&&!_0x3c38b3[_0x8ef6('0x30')]){logger['debug'](_0x8ef6('0x31'),inspect(_0x3008de));return _[_0x8ef6('0x32')](_0x3008de[_0x8ef6('0x2f')])?null:_0x3008de[_0x8ef6('0x2f')][_0x8ef6('0x33')]();}else{logger['error']('response',inspect(_0x3008de));return null;}}else{logger[_0x8ef6('0x9')](_0x8ef6('0x34'));return null;}}catch(_0x21c5f9){logger['error'](_0x21c5f9[_0x8ef6('0xa')]);return null;}});if(_0x47e661['finally']){logger['info'](util[_0x8ef6('0x1e')](_0x8ef6('0x35'),_0x3c38b3[_0x8ef6('0x22')],_0x3c38b3[_0x8ef6('0x23')],_0x3c38b3[_0x8ef6('0x24')],_0x3c38b3[_0x8ef6('0x25')],_0x3c38b3[_0x8ef6('0x26')]));_0x2a3d0b[_0x8ef6('0x27')](_0x47e661[_0x8ef6('0x36')]['id'],function(_0xc28b35){try{_0xc28b35=_0x2df3ac[_0x8ef6('0x28')](_0xc28b35);logger[_0x8ef6('0x1b')](_0x8ef6('0x29'),JSON[_0x8ef6('0x1c')](_0xc28b35,null,0x2));if(_0xc28b35&&_0x2df3ac[_0xc28b35[_0x8ef6('0xb')]]){_0x3008de=_0x2df3ac[_0xc28b35[_0x8ef6('0xb')]](_0xc28b35);if(_0x3008de){logger[_0x8ef6('0x1b')]('response',inspect(_0x3008de));return _[_0x8ef6('0x32')](_0x3008de[_0x8ef6('0x2f')])?null:_0x3008de[_0x8ef6('0x2f')][_0x8ef6('0x33')]();}else{logger[_0x8ef6('0x9')](_0x8ef6('0x31'),inspect(_0x3008de));return null;}}else{logger[_0x8ef6('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x30ad3a){logger[_0x8ef6('0x9')](_0x30ad3a[_0x8ef6('0xa')]);return null;}});}logger[_0x8ef6('0x21')](util['format'](_0x8ef6('0x37'),_0x3c38b3[_0x8ef6('0x22')],_0x3c38b3[_0x8ef6('0x23')],_0x3c38b3[_0x8ef6('0x24')],_0x3c38b3[_0x8ef6('0x25')],_0x3c38b3['uniqueid']));logger[_0x8ef6('0x21')](util['format'](_0x8ef6('0x38'),_0x3c38b3[_0x8ef6('0x2b')],_0x3c38b3[_0x8ef6('0x2c')],parseInt(_0x3c38b3[_0x8ef6('0x2d')],0xa)+0x1));_0x3c38b3[_0x8ef6('0x39')](_0x3c38b3[_0x8ef6('0x2b')],_0x3c38b3['extension'],parseInt(_0x3c38b3[_0x8ef6('0x2d')],0xa)+0x1);_0x3c38b3['close']();}function handleNotFound(_0x59236d){logger[_0x8ef6('0x9')](util[_0x8ef6('0x1e')](_0x8ef6('0x3a'),_0x59236d['arg_1']));_0x59236d[_0x8ef6('0x39')](_0x59236d[_0x8ef6('0x2b')],_0x59236d['extension'],parseInt(_0x59236d[_0x8ef6('0x2d')],0xa)+0x1);_0x59236d[_0x8ef6('0x3b')]();}function handleUnpublished(_0xb6e73a){logger[_0x8ef6('0x9')](util[_0x8ef6('0x1e')](_0x8ef6('0x3c'),_0xb6e73a['arg_1']));_0xb6e73a['continueAt'](_0xb6e73a['context'],_0xb6e73a[_0x8ef6('0x2c')],parseInt(_0xb6e73a['priority'],0xa)+0x1);_0xb6e73a[_0x8ef6('0x3b')]();}module[_0x8ef6('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};