Built motion from commit a679711e.|2.6.15
[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 _0xbb29=['uniqueid','start','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','evtHangup','response','isUndefined','toString','error','agicommand\x20not\x20found','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','traverseBFS','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','close','Project\x20%s\x20not\x20published','exports','lodash','moment','xml2json','util','../../config/logger','./mailRpc','./graph','./vertices','getSquareProjects','catch','stack','agicommand','retry','maxRetry','omit','mxCell','hasOwnProperty','length','source','target','addEdge','value','mxGraphModel','root','inspect','debug','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','callerid','dnid'];(function(_0x14139f,_0x4c8b38){var _0x533dab=function(_0x52c842){while(--_0x52c842){_0x14139f['push'](_0x14139f['shift']());}};_0x533dab(++_0x4c8b38);}(_0xbb29,0x18f));var _0x9bb2=function(_0x54c0ee,_0x45aa93){_0x54c0ee=_0x54c0ee-0x0;var _0x3fe258=_0xbb29[_0x54c0ee];return _0x3fe258;};'use strict';var _=require(_0x9bb2('0x0'));var moment=require(_0x9bb2('0x1'));var parser=require(_0x9bb2('0x2'));var util=require(_0x9bb2('0x3'));var logger=require(_0x9bb2('0x4'))('agi');var rpc=require('./rpc');var mailRpc=require(_0x9bb2('0x5'));var Graph=require(_0x9bb2('0x6'));var Vertices=require(_0x9bb2('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x9bb2('0x8')]()[_0x9bb2('0x9')](function(_0x352d71){logger['error']('Unable\x20to\x20download\x20CallySquare\x20projects',_0x352d71[_0x9bb2('0xa')]);return[];});}function addVertex(_0x307e5a,_0x1f24bd,_0x2784ca){_0x1f24bd[_0x9bb2('0xb')]=_0x2784ca;if(_0x1f24bd['hasOwnProperty'](_0x9bb2('0xc'))){_0x1f24bd[_0x9bb2('0xd')]=parseInt(_0x1f24bd[_0x9bb2('0xc')],0xa);}_0x307e5a['addVertex'](_[_0x9bb2('0xe')](_0x1f24bd,_0x9bb2('0xf')));}function initGraph(_0x27c698,_0x5e70cb){var _0x196363=new Graph();for(var _0x359ac6 in _0x27c698){if(_0x27c698[_0x9bb2('0x10')](_0x359ac6)){if(_['isArray'](_0x27c698[_0x359ac6])){for(var _0x3202b7=0x0;_0x3202b7<_0x27c698[_0x359ac6]['length'];_0x3202b7+=0x1){addVertex(_0x196363,_0x27c698[_0x359ac6][_0x3202b7],_0x359ac6);}}else{addVertex(_0x196363,_0x27c698[_0x359ac6],_0x359ac6);}}}for(var _0x272613=0x0;_0x272613<_0x5e70cb[_0x9bb2('0x11')];_0x272613+=0x1){if(_0x5e70cb[_0x272613][_0x9bb2('0x12')]&&_0x5e70cb[_0x272613][_0x9bb2('0x13')]){_0x196363[_0x9bb2('0x14')](_0x5e70cb[_0x272613][_0x9bb2('0x12')],_0x5e70cb[_0x272613][_0x9bb2('0x13')],_0x5e70cb[_0x272613][_0x9bb2('0x15')]);}}return _0x196363;}function getRoot(_0x41cbea){return parser['toJson'](_0x41cbea,{'object':!![]})[_0x9bb2('0x16')][_0x9bb2('0x17')];}function inspect(_0x3f2905){return util[_0x9bb2('0x18')](_0x3f2905,{'showHidden':![],'depth':null});}function initialize(_0x292773,_0x22ecf8){var _0x34bad1=getRoot(_0x292773['production']);if(!_0x34bad1||!_0x34bad1['start'])return;var _0x4ff43f,_0x3bc4d9,_0x5bc1fb;logger[_0x9bb2('0x19')]('root',JSON[_0x9bb2('0x1a')](_0x34bad1,null,0x2));_0x22ecf8[_0x9bb2('0x1b')]=moment()[_0x9bb2('0x1c')](_0x9bb2('0x1d'));_0x4ff43f=initGraph(_[_0x9bb2('0xe')](_0x34bad1,_0x9bb2('0xf')),_0x34bad1[_0x9bb2('0xf')]);_0x3bc4d9=new Vertices(_0x22ecf8,rpc,mailRpc);logger[_0x9bb2('0x1e')](util['format'](_0x9bb2('0x1f'),_0x22ecf8[_0x9bb2('0x20')],_0x22ecf8['calleridname'],_0x22ecf8[_0x9bb2('0x21')],_0x22ecf8[_0x9bb2('0x22')],_0x22ecf8[_0x9bb2('0x23')]));_0x4ff43f['traverseBFS'](_0x34bad1[_0x9bb2('0x24')]['id'],function(_0x387b45){try{_0x387b45=_0x3bc4d9[_0x9bb2('0x25')](_0x387b45);logger[_0x9bb2('0x19')](_0x9bb2('0x26'),JSON[_0x9bb2('0x1a')](_0x387b45,null,0x2));if(_0x387b45[_0x9bb2('0xb')]===_0x9bb2('0x27')){logger[_0x9bb2('0x1e')](_0x9bb2('0x28'));_0x22ecf8[_0x9bb2('0x29')]=_0x387b45[_0x9bb2('0x29')]||_0x22ecf8[_0x9bb2('0x29')];_0x22ecf8[_0x9bb2('0x2a')]=_0x387b45[_0x9bb2('0x2a')];_0x22ecf8[_0x9bb2('0x2b')]=_0x387b45[_0x9bb2('0x2b')]?_0x387b45[_0x9bb2('0x2b')]-0x1:0x1;return null;}else if(_0x387b45&&_0x3bc4d9[_0x387b45['agicommand']]){_0x5bc1fb=_0x3bc4d9[_0x387b45[_0x9bb2('0xb')]](_0x387b45);logger[_0x9bb2('0x1e')]('response',JSON['stringify'](_0x5bc1fb,null,0x2));if(_0x5bc1fb&&_0x5bc1fb[_0x9bb2('0x2c')]===AGI_CODE_SUCCESS&&_0x5bc1fb[_0x9bb2('0x2d')]!==AGI_RESULT_ERROR&&!_0x22ecf8[_0x9bb2('0x2e')]){logger['debug'](_0x9bb2('0x2f'),inspect(_0x5bc1fb));return _[_0x9bb2('0x30')](_0x5bc1fb['result'])?null:_0x5bc1fb[_0x9bb2('0x2d')][_0x9bb2('0x31')]();}else{logger['error'](_0x9bb2('0x2f'),inspect(_0x5bc1fb));return null;}}else{logger[_0x9bb2('0x32')](_0x9bb2('0x33'));return null;}}catch(_0x40fc35){logger[_0x9bb2('0x32')](_0x40fc35[_0x9bb2('0xa')]);return null;}});if(_0x34bad1['finally']){logger[_0x9bb2('0x1e')](util[_0x9bb2('0x1c')](_0x9bb2('0x34'),_0x22ecf8[_0x9bb2('0x20')],_0x22ecf8[_0x9bb2('0x35')],_0x22ecf8[_0x9bb2('0x21')],_0x22ecf8['dnid'],_0x22ecf8[_0x9bb2('0x23')]));_0x4ff43f[_0x9bb2('0x36')](_0x34bad1[_0x9bb2('0x37')]['id'],function(_0x23ac68){try{_0x23ac68=_0x3bc4d9[_0x9bb2('0x25')](_0x23ac68);logger[_0x9bb2('0x19')](_0x9bb2('0x26'),JSON[_0x9bb2('0x1a')](_0x23ac68,null,0x2));if(_0x23ac68&&_0x3bc4d9[_0x23ac68[_0x9bb2('0xb')]]){_0x5bc1fb=_0x3bc4d9[_0x23ac68[_0x9bb2('0xb')]](_0x23ac68);if(_0x5bc1fb){logger[_0x9bb2('0x19')]('response',inspect(_0x5bc1fb));return _[_0x9bb2('0x30')](_0x5bc1fb[_0x9bb2('0x2d')])?null:_0x5bc1fb['result']['toString']();}else{logger[_0x9bb2('0x32')](_0x9bb2('0x2f'),inspect(_0x5bc1fb));return null;}}else{logger[_0x9bb2('0x32')]('agicommand\x20not\x20found');return null;}}catch(_0x457f3d){logger[_0x9bb2('0x32')](_0x457f3d[_0x9bb2('0xa')]);return null;}});}logger[_0x9bb2('0x1e')](util[_0x9bb2('0x1c')](_0x9bb2('0x38'),_0x22ecf8['arg_1'],_0x22ecf8[_0x9bb2('0x35')],_0x22ecf8[_0x9bb2('0x21')],_0x22ecf8['dnid'],_0x22ecf8['uniqueid']));logger['info'](util[_0x9bb2('0x1c')](_0x9bb2('0x39'),_0x22ecf8['context'],_0x22ecf8[_0x9bb2('0x2a')],parseInt(_0x22ecf8['priority'],0xa)+0x1));_0x22ecf8[_0x9bb2('0x3a')](_0x22ecf8[_0x9bb2('0x29')],_0x22ecf8[_0x9bb2('0x2a')],parseInt(_0x22ecf8[_0x9bb2('0x2b')],0xa)+0x1);_0x22ecf8[_0x9bb2('0x3b')]();}function handleNotFound(_0x48ecca){logger[_0x9bb2('0x32')](util[_0x9bb2('0x1c')]('Project\x20%s\x20not\x20found',_0x48ecca['arg_1']));_0x48ecca['continueAt'](_0x48ecca[_0x9bb2('0x29')],_0x48ecca[_0x9bb2('0x2a')],parseInt(_0x48ecca[_0x9bb2('0x2b')],0xa)+0x1);_0x48ecca[_0x9bb2('0x3b')]();}function handleUnpublished(_0x323501){logger['error'](util[_0x9bb2('0x1c')](_0x9bb2('0x3c'),_0x323501[_0x9bb2('0x20')]));_0x323501[_0x9bb2('0x3a')](_0x323501['context'],_0x323501['extension'],parseInt(_0x323501[_0x9bb2('0x2b')],0xa)+0x1);_0x323501[_0x9bb2('0x3b')]();}module[_0x9bb2('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};