Built motion from commit da617fac.|2.6.6
[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 _0xa97d=['root','inspect','production','start','stringify','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','omit','info','arg_1','calleridname','callerid','uniqueid','traverseBFS','clear','vertex','agicommand','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','evtHangup','debug','response','isUndefined','result','toString','agicommand\x20not\x20found','finally','dnid','[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','moment','util','../../config/logger','./mailRpc','./graph','./vertices','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','retry','maxRetry','addVertex','mxCell','isArray','length','source','target','addEdge','value','toJson','mxGraphModel'];(function(_0x2afdfa,_0x42acad){var _0x56c624=function(_0x386bad){while(--_0x386bad){_0x2afdfa['push'](_0x2afdfa['shift']());}};_0x56c624(++_0x42acad);}(_0xa97d,0x122));var _0xda97=function(_0x565610,_0x1a4085){_0x565610=_0x565610-0x0;var _0x89951f=_0xa97d[_0x565610];return _0x89951f;};'use strict';var _=require(_0xda97('0x0'));var moment=require(_0xda97('0x1'));var parser=require('xml2json');var util=require(_0xda97('0x2'));var logger=require(_0xda97('0x3'))('agi');var rpc=require('./rpc');var mailRpc=require(_0xda97('0x4'));var Graph=require(_0xda97('0x5'));var Vertices=require(_0xda97('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xda97('0x7')]()[_0xda97('0x8')](function(_0x5c57de){logger[_0xda97('0x9')](_0xda97('0xa'),_0x5c57de[_0xda97('0xb')]);return[];});}function addVertex(_0x2a37a6,_0x17152c,_0x1cb16e){_0x17152c['agicommand']=_0x1cb16e;if(_0x17152c[_0xda97('0xc')](_0xda97('0xd'))){_0x17152c[_0xda97('0xe')]=parseInt(_0x17152c[_0xda97('0xd')],0xa);}_0x2a37a6[_0xda97('0xf')](_['omit'](_0x17152c,_0xda97('0x10')));}function initGraph(_0x41035b,_0x777c2d){var _0x18c934=new Graph();for(var _0x169888 in _0x41035b){if(_0x41035b['hasOwnProperty'](_0x169888)){if(_[_0xda97('0x11')](_0x41035b[_0x169888])){for(var _0x79b7c=0x0;_0x79b7c<_0x41035b[_0x169888][_0xda97('0x12')];_0x79b7c+=0x1){addVertex(_0x18c934,_0x41035b[_0x169888][_0x79b7c],_0x169888);}}else{addVertex(_0x18c934,_0x41035b[_0x169888],_0x169888);}}}for(var _0x4fbd2f=0x0;_0x4fbd2f<_0x777c2d[_0xda97('0x12')];_0x4fbd2f+=0x1){if(_0x777c2d[_0x4fbd2f][_0xda97('0x13')]&&_0x777c2d[_0x4fbd2f][_0xda97('0x14')]){_0x18c934[_0xda97('0x15')](_0x777c2d[_0x4fbd2f][_0xda97('0x13')],_0x777c2d[_0x4fbd2f][_0xda97('0x14')],_0x777c2d[_0x4fbd2f][_0xda97('0x16')]);}}return _0x18c934;}function getRoot(_0x22e630){return parser[_0xda97('0x17')](_0x22e630,{'object':!![]})[_0xda97('0x18')][_0xda97('0x19')];}function inspect(_0xc4ff5b){return util[_0xda97('0x1a')](_0xc4ff5b,{'showHidden':![],'depth':null});}function initialize(_0x13cca2,_0x4d19c2){var _0x57aef8=getRoot(_0x13cca2[_0xda97('0x1b')]);if(!_0x57aef8||!_0x57aef8[_0xda97('0x1c')])return;var _0x1ae6cc,_0x239470,_0x3d5472;logger['debug'](_0xda97('0x19'),JSON[_0xda97('0x1d')](_0x57aef8,null,0x2));_0x4d19c2[_0xda97('0x1e')]=moment()[_0xda97('0x1f')](_0xda97('0x20'));_0x1ae6cc=initGraph(_[_0xda97('0x21')](_0x57aef8,'mxCell'),_0x57aef8['mxCell']);_0x239470=new Vertices(_0x4d19c2,rpc,mailRpc);logger[_0xda97('0x22')](util['format']('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4d19c2[_0xda97('0x23')],_0x4d19c2[_0xda97('0x24')],_0x4d19c2[_0xda97('0x25')],_0x4d19c2['dnid'],_0x4d19c2[_0xda97('0x26')]));_0x1ae6cc[_0xda97('0x27')](_0x57aef8[_0xda97('0x1c')]['id'],function(_0x16ad49){try{_0x16ad49=_0x239470[_0xda97('0x28')](_0x16ad49);logger['debug'](_0xda97('0x29'),JSON[_0xda97('0x1d')](_0x16ad49,null,0x2));if(_0x16ad49[_0xda97('0x2a')]==='gotoc'){logger[_0xda97('0x22')](_0xda97('0x2b'));_0x4d19c2[_0xda97('0x2c')]=_0x16ad49['context']||_0x4d19c2[_0xda97('0x2c')];_0x4d19c2[_0xda97('0x2d')]=_0x16ad49['extension'];_0x4d19c2[_0xda97('0x2e')]=_0x16ad49[_0xda97('0x2e')]?_0x16ad49[_0xda97('0x2e')]-0x1:0x1;return null;}else if(_0x16ad49&&_0x239470[_0x16ad49[_0xda97('0x2a')]]){_0x3d5472=_0x239470[_0x16ad49[_0xda97('0x2a')]](_0x16ad49);logger[_0xda97('0x22')]('response',JSON['stringify'](_0x3d5472,null,0x2));if(_0x3d5472&&_0x3d5472['code']===AGI_CODE_SUCCESS&&_0x3d5472['result']!==AGI_RESULT_ERROR&&!_0x4d19c2[_0xda97('0x2f')]){logger[_0xda97('0x30')](_0xda97('0x31'),inspect(_0x3d5472));return _[_0xda97('0x32')](_0x3d5472[_0xda97('0x33')])?null:_0x3d5472[_0xda97('0x33')][_0xda97('0x34')]();}else{logger[_0xda97('0x9')]('response',inspect(_0x3d5472));return null;}}else{logger['error'](_0xda97('0x35'));return null;}}catch(_0x48544a){logger[_0xda97('0x9')](_0x48544a['stack']);return null;}});if(_0x57aef8[_0xda97('0x36')]){logger[_0xda97('0x22')](util['format']('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x4d19c2['arg_1'],_0x4d19c2[_0xda97('0x24')],_0x4d19c2[_0xda97('0x25')],_0x4d19c2[_0xda97('0x37')],_0x4d19c2['uniqueid']));_0x1ae6cc[_0xda97('0x27')](_0x57aef8[_0xda97('0x36')]['id'],function(_0x62a9d){try{_0x62a9d=_0x239470[_0xda97('0x28')](_0x62a9d);logger[_0xda97('0x30')](_0xda97('0x29'),JSON[_0xda97('0x1d')](_0x62a9d,null,0x2));if(_0x62a9d&&_0x239470[_0x62a9d[_0xda97('0x2a')]]){_0x3d5472=_0x239470[_0x62a9d[_0xda97('0x2a')]](_0x62a9d);if(_0x3d5472){logger[_0xda97('0x30')]('response',inspect(_0x3d5472));return _[_0xda97('0x32')](_0x3d5472[_0xda97('0x33')])?null:_0x3d5472[_0xda97('0x33')][_0xda97('0x34')]();}else{logger['error'](_0xda97('0x31'),inspect(_0x3d5472));return null;}}else{logger[_0xda97('0x9')](_0xda97('0x35'));return null;}}catch(_0x3c22b5){logger[_0xda97('0x9')](_0x3c22b5[_0xda97('0xb')]);return null;}});}logger[_0xda97('0x22')](util[_0xda97('0x1f')](_0xda97('0x38'),_0x4d19c2[_0xda97('0x23')],_0x4d19c2['calleridname'],_0x4d19c2[_0xda97('0x25')],_0x4d19c2[_0xda97('0x37')],_0x4d19c2['uniqueid']));logger[_0xda97('0x22')](util['format'](_0xda97('0x39'),_0x4d19c2[_0xda97('0x2c')],_0x4d19c2[_0xda97('0x2d')],parseInt(_0x4d19c2[_0xda97('0x2e')],0xa)+0x1));_0x4d19c2[_0xda97('0x3a')](_0x4d19c2['context'],_0x4d19c2[_0xda97('0x2d')],parseInt(_0x4d19c2[_0xda97('0x2e')],0xa)+0x1);_0x4d19c2['close']();}function handleNotFound(_0x11cc4f){logger[_0xda97('0x9')](util[_0xda97('0x1f')](_0xda97('0x3b'),_0x11cc4f[_0xda97('0x23')]));_0x11cc4f[_0xda97('0x3a')](_0x11cc4f[_0xda97('0x2c')],_0x11cc4f[_0xda97('0x2d')],parseInt(_0x11cc4f['priority'],0xa)+0x1);_0x11cc4f[_0xda97('0x3c')]();}function handleUnpublished(_0x3537a2){logger['error'](util[_0xda97('0x1f')](_0xda97('0x3d'),_0x3537a2['arg_1']));_0x3537a2[_0xda97('0x3a')](_0x3537a2[_0xda97('0x2c')],_0x3537a2[_0xda97('0x2d')],parseInt(_0x3537a2['priority'],0xa)+0x1);_0x3537a2[_0xda97('0x3c')]();}module[_0xda97('0x3e')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};