Built motion from commit ac06311e.|2.6.28
[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 _0xc666=['Project\x20%s\x20not\x20published','exports','lodash','util','../../config/logger','./rpc','./mailRpc','./vertices','error','Unable\x20to\x20download\x20CallySquare\x20projects','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','source','target','addEdge','toJson','mxGraphModel','root','inspect','production','start','stringify','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','uniqueid','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','evtHangup','debug','isUndefined','result','toString','agicommand\x20not\x20found','stack','dnid','clear','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','continueAt','close','Project\x20%s\x20not\x20found'];(function(_0x3b06d1,_0x4a0229){var _0x2ad9dc=function(_0x4d9990){while(--_0x4d9990){_0x3b06d1['push'](_0x3b06d1['shift']());}};_0x2ad9dc(++_0x4a0229);}(_0xc666,0x1da));var _0x6c66=function(_0x537d8b,_0x449dc2){_0x537d8b=_0x537d8b-0x0;var _0x43f272=_0xc666[_0x537d8b];return _0x43f272;};'use strict';var _=require(_0x6c66('0x0'));var moment=require('moment');var parser=require('xml2json');var util=require(_0x6c66('0x1'));var logger=require(_0x6c66('0x2'))('agi');var rpc=require(_0x6c66('0x3'));var mailRpc=require(_0x6c66('0x4'));var Graph=require('./graph');var Vertices=require(_0x6c66('0x5'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()['catch'](function(_0x3646fc){logger[_0x6c66('0x6')](_0x6c66('0x7'),_0x3646fc['stack']);return[];});}function addVertex(_0x589bb0,_0x41050a,_0x3cdfb8){_0x41050a[_0x6c66('0x8')]=_0x3cdfb8;if(_0x41050a[_0x6c66('0x9')](_0x6c66('0xa'))){_0x41050a[_0x6c66('0xb')]=parseInt(_0x41050a[_0x6c66('0xa')],0xa);}_0x589bb0[_0x6c66('0xc')](_[_0x6c66('0xd')](_0x41050a,_0x6c66('0xe')));}function initGraph(_0x5a38bc,_0x2635fc){var _0xc0932=new Graph();for(var _0x5cdb19 in _0x5a38bc){if(_0x5a38bc['hasOwnProperty'](_0x5cdb19)){if(_[_0x6c66('0xf')](_0x5a38bc[_0x5cdb19])){for(var _0x29c805=0x0;_0x29c805<_0x5a38bc[_0x5cdb19][_0x6c66('0x10')];_0x29c805+=0x1){addVertex(_0xc0932,_0x5a38bc[_0x5cdb19][_0x29c805],_0x5cdb19);}}else{addVertex(_0xc0932,_0x5a38bc[_0x5cdb19],_0x5cdb19);}}}for(var _0x211b97=0x0;_0x211b97<_0x2635fc[_0x6c66('0x10')];_0x211b97+=0x1){if(_0x2635fc[_0x211b97][_0x6c66('0x11')]&&_0x2635fc[_0x211b97][_0x6c66('0x12')]){_0xc0932[_0x6c66('0x13')](_0x2635fc[_0x211b97][_0x6c66('0x11')],_0x2635fc[_0x211b97][_0x6c66('0x12')],_0x2635fc[_0x211b97]['value']);}}return _0xc0932;}function getRoot(_0x216eda){return parser[_0x6c66('0x14')](_0x216eda,{'object':!![]})[_0x6c66('0x15')][_0x6c66('0x16')];}function inspect(_0x2c2aca){return util[_0x6c66('0x17')](_0x2c2aca,{'showHidden':![],'depth':null});}function initialize(_0x4ba4bd,_0x215e32){var _0x306f1d=getRoot(_0x4ba4bd[_0x6c66('0x18')]);if(!_0x306f1d||!_0x306f1d[_0x6c66('0x19')])return;var _0x5147c3,_0x5cb7f2,_0x116b81;logger['debug'](_0x6c66('0x16'),JSON[_0x6c66('0x1a')](_0x306f1d,null,0x2));_0x215e32[_0x6c66('0x1b')]=moment()[_0x6c66('0x1c')](_0x6c66('0x1d'));_0x5147c3=initGraph(_[_0x6c66('0xd')](_0x306f1d,_0x6c66('0xe')),_0x306f1d[_0x6c66('0xe')]);_0x5cb7f2=new Vertices(_0x215e32,rpc,mailRpc);logger[_0x6c66('0x1e')](util[_0x6c66('0x1c')](_0x6c66('0x1f'),_0x215e32[_0x6c66('0x20')],_0x215e32[_0x6c66('0x21')],_0x215e32[_0x6c66('0x22')],_0x215e32['dnid'],_0x215e32[_0x6c66('0x23')]));_0x5147c3['traverseBFS'](_0x306f1d['start']['id'],function(_0x5f083f){try{_0x5f083f=_0x5cb7f2['clear'](_0x5f083f);logger['debug'](_0x6c66('0x24'),JSON[_0x6c66('0x1a')](_0x5f083f,null,0x2));if(_0x5f083f['agicommand']===_0x6c66('0x25')){logger[_0x6c66('0x1e')](_0x6c66('0x26'));_0x215e32['context']=_0x5f083f[_0x6c66('0x27')]||_0x215e32['context'];_0x215e32['extension']=_0x5f083f[_0x6c66('0x28')];_0x215e32[_0x6c66('0x29')]=_0x5f083f['priority']?_0x5f083f['priority']-0x1:0x1;return null;}else if(_0x5f083f&&_0x5cb7f2[_0x5f083f[_0x6c66('0x8')]]){_0x116b81=_0x5cb7f2[_0x5f083f[_0x6c66('0x8')]](_0x5f083f);logger[_0x6c66('0x1e')](_0x6c66('0x2a'),JSON[_0x6c66('0x1a')](_0x116b81,null,0x2));if(_0x116b81&&_0x116b81[_0x6c66('0x2b')]===AGI_CODE_SUCCESS&&_0x116b81['result']!==AGI_RESULT_ERROR&&!_0x215e32[_0x6c66('0x2c')]){logger[_0x6c66('0x2d')](_0x6c66('0x2a'),inspect(_0x116b81));return _[_0x6c66('0x2e')](_0x116b81[_0x6c66('0x2f')])?null:_0x116b81['result'][_0x6c66('0x30')]();}else{logger[_0x6c66('0x6')](_0x6c66('0x2a'),inspect(_0x116b81));return null;}}else{logger[_0x6c66('0x6')](_0x6c66('0x31'));return null;}}catch(_0x545491){logger[_0x6c66('0x6')](_0x545491[_0x6c66('0x32')]);return null;}});if(_0x306f1d['finally']){logger[_0x6c66('0x1e')](util[_0x6c66('0x1c')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x215e32['arg_1'],_0x215e32['calleridname'],_0x215e32['callerid'],_0x215e32[_0x6c66('0x33')],_0x215e32[_0x6c66('0x23')]));_0x5147c3['traverseBFS'](_0x306f1d['finally']['id'],function(_0x56166f){try{_0x56166f=_0x5cb7f2[_0x6c66('0x34')](_0x56166f);logger['debug'](_0x6c66('0x24'),JSON[_0x6c66('0x1a')](_0x56166f,null,0x2));if(_0x56166f&&_0x5cb7f2[_0x56166f[_0x6c66('0x8')]]){_0x116b81=_0x5cb7f2[_0x56166f[_0x6c66('0x8')]](_0x56166f);if(_0x116b81){logger[_0x6c66('0x2d')](_0x6c66('0x2a'),inspect(_0x116b81));return _[_0x6c66('0x2e')](_0x116b81[_0x6c66('0x2f')])?null:_0x116b81['result'][_0x6c66('0x30')]();}else{logger['error'](_0x6c66('0x2a'),inspect(_0x116b81));return null;}}else{logger[_0x6c66('0x6')](_0x6c66('0x31'));return null;}}catch(_0x2db99e){logger['error'](_0x2db99e[_0x6c66('0x32')]);return null;}});}logger[_0x6c66('0x1e')](util[_0x6c66('0x1c')](_0x6c66('0x35'),_0x215e32[_0x6c66('0x20')],_0x215e32[_0x6c66('0x21')],_0x215e32[_0x6c66('0x22')],_0x215e32['dnid'],_0x215e32['uniqueid']));logger['info'](util[_0x6c66('0x1c')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x215e32[_0x6c66('0x27')],_0x215e32[_0x6c66('0x28')],parseInt(_0x215e32[_0x6c66('0x29')],0xa)+0x1));_0x215e32[_0x6c66('0x36')](_0x215e32[_0x6c66('0x27')],_0x215e32[_0x6c66('0x28')],parseInt(_0x215e32[_0x6c66('0x29')],0xa)+0x1);_0x215e32[_0x6c66('0x37')]();}function handleNotFound(_0x1005a6){logger[_0x6c66('0x6')](util['format'](_0x6c66('0x38'),_0x1005a6[_0x6c66('0x20')]));_0x1005a6[_0x6c66('0x36')](_0x1005a6[_0x6c66('0x27')],_0x1005a6[_0x6c66('0x28')],parseInt(_0x1005a6[_0x6c66('0x29')],0xa)+0x1);_0x1005a6['close']();}function handleUnpublished(_0x3fee67){logger[_0x6c66('0x6')](util[_0x6c66('0x1c')](_0x6c66('0x39'),_0x3fee67[_0x6c66('0x20')]));_0x3fee67[_0x6c66('0x36')](_0x3fee67[_0x6c66('0x27')],_0x3fee67[_0x6c66('0x28')],parseInt(_0x3fee67[_0x6c66('0x29')],0xa)+0x1);_0x3fee67[_0x6c66('0x37')]();}module[_0x6c66('0x3a')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};