900c28d00c157a7858b8b11064b871f02be5426b
[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 _0x1076=['mxCell','length','source','target','value','toJson','mxGraphModel','root','inspect','production','start','debug','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','traverseBFS','clear','stringify','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','response','isUndefined','toString','finally','vertex','agicommand\x20not\x20found','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','Project\x20%s\x20not\x20found','continueAt','Project\x20%s\x20not\x20published','exports','lodash','moment','xml2json','util','../../config/logger','agi','./mailRpc','./vertices','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit'];(function(_0x491faa,_0x4f2907){var _0x414440=function(_0x310864){while(--_0x310864){_0x491faa['push'](_0x491faa['shift']());}};_0x414440(++_0x4f2907);}(_0x1076,0xe6));var _0x6107=function(_0x556bb1,_0x34830d){_0x556bb1=_0x556bb1-0x0;var _0x45455f=_0x1076[_0x556bb1];return _0x45455f;};'use strict';var _=require(_0x6107('0x0'));var moment=require(_0x6107('0x1'));var parser=require(_0x6107('0x2'));var util=require(_0x6107('0x3'));var logger=require(_0x6107('0x4'))(_0x6107('0x5'));var rpc=require('./rpc');var mailRpc=require(_0x6107('0x6'));var Graph=require('./graph');var Vertices=require(_0x6107('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()[_0x6107('0x8')](function(_0x2fe932){logger[_0x6107('0x9')](_0x6107('0xa'),_0x2fe932[_0x6107('0xb')]);return[];});}function addVertex(_0x59526d,_0x244e22,_0x364b35){_0x244e22[_0x6107('0xc')]=_0x364b35;if(_0x244e22[_0x6107('0xd')](_0x6107('0xe'))){_0x244e22[_0x6107('0xf')]=parseInt(_0x244e22['retry'],0xa);}_0x59526d[_0x6107('0x10')](_[_0x6107('0x11')](_0x244e22,_0x6107('0x12')));}function initGraph(_0x2a8c9c,_0x220288){var _0x40cd75=new Graph();for(var _0x5050ba in _0x2a8c9c){if(_0x2a8c9c[_0x6107('0xd')](_0x5050ba)){if(_['isArray'](_0x2a8c9c[_0x5050ba])){for(var _0x37d2cd=0x0;_0x37d2cd<_0x2a8c9c[_0x5050ba][_0x6107('0x13')];_0x37d2cd+=0x1){addVertex(_0x40cd75,_0x2a8c9c[_0x5050ba][_0x37d2cd],_0x5050ba);}}else{addVertex(_0x40cd75,_0x2a8c9c[_0x5050ba],_0x5050ba);}}}for(var _0x31c4f9=0x0;_0x31c4f9<_0x220288[_0x6107('0x13')];_0x31c4f9+=0x1){if(_0x220288[_0x31c4f9][_0x6107('0x14')]&&_0x220288[_0x31c4f9][_0x6107('0x15')]){_0x40cd75['addEdge'](_0x220288[_0x31c4f9][_0x6107('0x14')],_0x220288[_0x31c4f9]['target'],_0x220288[_0x31c4f9][_0x6107('0x16')]);}}return _0x40cd75;}function getRoot(_0x15f9eb){return parser[_0x6107('0x17')](_0x15f9eb,{'object':!![]})[_0x6107('0x18')][_0x6107('0x19')];}function inspect(_0x35459b){return util[_0x6107('0x1a')](_0x35459b,{'showHidden':![],'depth':null});}function initialize(_0x56c7fc,_0x5959c5){var _0x2fb6df=getRoot(_0x56c7fc[_0x6107('0x1b')]);if(!_0x2fb6df||!_0x2fb6df[_0x6107('0x1c')])return;var _0x5bfcce,_0x5202ac,_0x3b42b2;logger[_0x6107('0x1d')](_0x6107('0x19'),JSON['stringify'](_0x2fb6df,null,0x2));_0x5959c5[_0x6107('0x1e')]=moment()[_0x6107('0x1f')](_0x6107('0x20'));_0x5bfcce=initGraph(_[_0x6107('0x11')](_0x2fb6df,_0x6107('0x12')),_0x2fb6df[_0x6107('0x12')]);_0x5202ac=new Vertices(_0x5959c5,rpc,mailRpc);logger[_0x6107('0x21')](util['format'](_0x6107('0x22'),_0x5959c5[_0x6107('0x23')],_0x5959c5[_0x6107('0x24')],_0x5959c5[_0x6107('0x25')],_0x5959c5[_0x6107('0x26')],_0x5959c5[_0x6107('0x27')]));_0x5bfcce[_0x6107('0x28')](_0x2fb6df[_0x6107('0x1c')]['id'],function(_0x17c3bd){try{_0x17c3bd=_0x5202ac[_0x6107('0x29')](_0x17c3bd);logger[_0x6107('0x1d')]('vertex',JSON[_0x6107('0x2a')](_0x17c3bd,null,0x2));if(_0x17c3bd[_0x6107('0xc')]===_0x6107('0x2b')){logger['info'](_0x6107('0x2c'));_0x5959c5[_0x6107('0x2d')]=_0x17c3bd[_0x6107('0x2d')]||_0x5959c5[_0x6107('0x2d')];_0x5959c5['extension']=_0x17c3bd[_0x6107('0x2e')];_0x5959c5[_0x6107('0x2f')]=_0x17c3bd[_0x6107('0x2f')]?_0x17c3bd[_0x6107('0x2f')]-0x1:0x1;return null;}else if(_0x17c3bd&&_0x5202ac[_0x17c3bd[_0x6107('0xc')]]){_0x3b42b2=_0x5202ac[_0x17c3bd[_0x6107('0xc')]](_0x17c3bd);logger[_0x6107('0x21')]('response',JSON[_0x6107('0x2a')](_0x3b42b2,null,0x2));if(_0x3b42b2&&_0x3b42b2[_0x6107('0x30')]===AGI_CODE_SUCCESS&&_0x3b42b2[_0x6107('0x31')]!==AGI_RESULT_ERROR&&!_0x5959c5['evtHangup']){logger['debug'](_0x6107('0x32'),inspect(_0x3b42b2));return _[_0x6107('0x33')](_0x3b42b2['result'])?null:_0x3b42b2[_0x6107('0x31')][_0x6107('0x34')]();}else{logger[_0x6107('0x9')](_0x6107('0x32'),inspect(_0x3b42b2));return null;}}else{logger[_0x6107('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x16d1c9){logger[_0x6107('0x9')](_0x16d1c9['stack']);return null;}});if(_0x2fb6df[_0x6107('0x35')]){logger[_0x6107('0x21')](util['format']('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x5959c5['arg_1'],_0x5959c5['calleridname'],_0x5959c5['callerid'],_0x5959c5['dnid'],_0x5959c5[_0x6107('0x27')]));_0x5bfcce[_0x6107('0x28')](_0x2fb6df['finally']['id'],function(_0x9c9304){try{_0x9c9304=_0x5202ac[_0x6107('0x29')](_0x9c9304);logger[_0x6107('0x1d')](_0x6107('0x36'),JSON[_0x6107('0x2a')](_0x9c9304,null,0x2));if(_0x9c9304&&_0x5202ac[_0x9c9304['agicommand']]){_0x3b42b2=_0x5202ac[_0x9c9304[_0x6107('0xc')]](_0x9c9304);if(_0x3b42b2){logger['debug'](_0x6107('0x32'),inspect(_0x3b42b2));return _['isUndefined'](_0x3b42b2[_0x6107('0x31')])?null:_0x3b42b2[_0x6107('0x31')][_0x6107('0x34')]();}else{logger[_0x6107('0x9')]('response',inspect(_0x3b42b2));return null;}}else{logger[_0x6107('0x9')](_0x6107('0x37'));return null;}}catch(_0x4e6217){logger[_0x6107('0x9')](_0x4e6217[_0x6107('0xb')]);return null;}});}logger[_0x6107('0x21')](util['format'](_0x6107('0x38'),_0x5959c5[_0x6107('0x23')],_0x5959c5[_0x6107('0x24')],_0x5959c5[_0x6107('0x25')],_0x5959c5[_0x6107('0x26')],_0x5959c5['uniqueid']));logger['info'](util[_0x6107('0x1f')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x5959c5['context'],_0x5959c5[_0x6107('0x2e')],parseInt(_0x5959c5[_0x6107('0x2f')],0xa)+0x1));_0x5959c5['continueAt'](_0x5959c5[_0x6107('0x2d')],_0x5959c5[_0x6107('0x2e')],parseInt(_0x5959c5[_0x6107('0x2f')],0xa)+0x1);_0x5959c5[_0x6107('0x39')]();}function handleNotFound(_0x13e3de){logger[_0x6107('0x9')](util[_0x6107('0x1f')](_0x6107('0x3a'),_0x13e3de['arg_1']));_0x13e3de[_0x6107('0x3b')](_0x13e3de[_0x6107('0x2d')],_0x13e3de[_0x6107('0x2e')],parseInt(_0x13e3de[_0x6107('0x2f')],0xa)+0x1);_0x13e3de['close']();}function handleUnpublished(_0x21b85c){logger[_0x6107('0x9')](util[_0x6107('0x1f')](_0x6107('0x3c'),_0x21b85c[_0x6107('0x23')]));_0x21b85c['continueAt'](_0x21b85c['context'],_0x21b85c[_0x6107('0x2e')],parseInt(_0x21b85c['priority'],0xa)+0x1);_0x21b85c[_0x6107('0x39')]();}module[_0x6107('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};