Built motion from commit 2b9af5da.|2.6.26
[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 _0x440b=['[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\x20found','Project\x20%s\x20not\x20published','lodash','moment','util','../../config/logger','agi','./rpc','./mailRpc','./graph','./vertices','stack','agicommand','hasOwnProperty','retry','maxRetry','omit','mxCell','isArray','length','source','target','addEdge','value','toJson','mxGraphModel','root','production','start','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','calleridname','callerid','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','result','evtHangup','response','isUndefined','toString','error','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','dnid','uniqueid','traverseBFS','clear'];(function(_0x216799,_0x44b817){var _0x3661c3=function(_0x28f85e){while(--_0x28f85e){_0x216799['push'](_0x216799['shift']());}};_0x3661c3(++_0x44b817);}(_0x440b,0x17a));var _0xb440=function(_0xfc0976,_0x33776f){_0xfc0976=_0xfc0976-0x0;var _0x23579f=_0x440b[_0xfc0976];return _0x23579f;};'use strict';var _=require(_0xb440('0x0'));var moment=require(_0xb440('0x1'));var parser=require('xml2json');var util=require(_0xb440('0x2'));var logger=require(_0xb440('0x3'))(_0xb440('0x4'));var rpc=require(_0xb440('0x5'));var mailRpc=require(_0xb440('0x6'));var Graph=require(_0xb440('0x7'));var Vertices=require(_0xb440('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()['catch'](function(_0x177eb6){logger['error']('Unable\x20to\x20download\x20CallySquare\x20projects',_0x177eb6[_0xb440('0x9')]);return[];});}function addVertex(_0x4c4c9e,_0x32fa7e,_0xb88b98){_0x32fa7e[_0xb440('0xa')]=_0xb88b98;if(_0x32fa7e[_0xb440('0xb')](_0xb440('0xc'))){_0x32fa7e[_0xb440('0xd')]=parseInt(_0x32fa7e[_0xb440('0xc')],0xa);}_0x4c4c9e['addVertex'](_[_0xb440('0xe')](_0x32fa7e,_0xb440('0xf')));}function initGraph(_0x66a4cc,_0x2f8f58){var _0x3442f4=new Graph();for(var _0x3c41f1 in _0x66a4cc){if(_0x66a4cc[_0xb440('0xb')](_0x3c41f1)){if(_[_0xb440('0x10')](_0x66a4cc[_0x3c41f1])){for(var _0x46a5e6=0x0;_0x46a5e6<_0x66a4cc[_0x3c41f1][_0xb440('0x11')];_0x46a5e6+=0x1){addVertex(_0x3442f4,_0x66a4cc[_0x3c41f1][_0x46a5e6],_0x3c41f1);}}else{addVertex(_0x3442f4,_0x66a4cc[_0x3c41f1],_0x3c41f1);}}}for(var _0x1a3c3b=0x0;_0x1a3c3b<_0x2f8f58[_0xb440('0x11')];_0x1a3c3b+=0x1){if(_0x2f8f58[_0x1a3c3b][_0xb440('0x12')]&&_0x2f8f58[_0x1a3c3b][_0xb440('0x13')]){_0x3442f4[_0xb440('0x14')](_0x2f8f58[_0x1a3c3b][_0xb440('0x12')],_0x2f8f58[_0x1a3c3b][_0xb440('0x13')],_0x2f8f58[_0x1a3c3b][_0xb440('0x15')]);}}return _0x3442f4;}function getRoot(_0x23e2fa){return parser[_0xb440('0x16')](_0x23e2fa,{'object':!![]})[_0xb440('0x17')][_0xb440('0x18')];}function inspect(_0x5e0094){return util['inspect'](_0x5e0094,{'showHidden':![],'depth':null});}function initialize(_0x541a4a,_0x4139e7){var _0x353f32=getRoot(_0x541a4a[_0xb440('0x19')]);if(!_0x353f32||!_0x353f32[_0xb440('0x1a')])return;var _0x3c9f37,_0x263008,_0x21204a;logger[_0xb440('0x1b')](_0xb440('0x18'),JSON[_0xb440('0x1c')](_0x353f32,null,0x2));_0x4139e7[_0xb440('0x1d')]=moment()[_0xb440('0x1e')](_0xb440('0x1f'));_0x3c9f37=initGraph(_[_0xb440('0xe')](_0x353f32,_0xb440('0xf')),_0x353f32['mxCell']);_0x263008=new Vertices(_0x4139e7,rpc,mailRpc);logger[_0xb440('0x20')](util[_0xb440('0x1e')](_0xb440('0x21'),_0x4139e7['arg_1'],_0x4139e7[_0xb440('0x22')],_0x4139e7[_0xb440('0x23')],_0x4139e7['dnid'],_0x4139e7['uniqueid']));_0x3c9f37['traverseBFS'](_0x353f32['start']['id'],function(_0x4186c){try{_0x4186c=_0x263008['clear'](_0x4186c);logger[_0xb440('0x1b')](_0xb440('0x24'),JSON['stringify'](_0x4186c,null,0x2));if(_0x4186c[_0xb440('0xa')]===_0xb440('0x25')){logger[_0xb440('0x20')](_0xb440('0x26'));_0x4139e7[_0xb440('0x27')]=_0x4186c[_0xb440('0x27')]||_0x4139e7[_0xb440('0x27')];_0x4139e7[_0xb440('0x28')]=_0x4186c['extension'];_0x4139e7[_0xb440('0x29')]=_0x4186c[_0xb440('0x29')]?_0x4186c['priority']-0x1:0x1;return null;}else if(_0x4186c&&_0x263008[_0x4186c[_0xb440('0xa')]]){_0x21204a=_0x263008[_0x4186c[_0xb440('0xa')]](_0x4186c);logger[_0xb440('0x20')]('response',JSON[_0xb440('0x1c')](_0x21204a,null,0x2));if(_0x21204a&&_0x21204a['code']===AGI_CODE_SUCCESS&&_0x21204a[_0xb440('0x2a')]!==AGI_RESULT_ERROR&&!_0x4139e7[_0xb440('0x2b')]){logger[_0xb440('0x1b')](_0xb440('0x2c'),inspect(_0x21204a));return _[_0xb440('0x2d')](_0x21204a['result'])?null:_0x21204a[_0xb440('0x2a')][_0xb440('0x2e')]();}else{logger[_0xb440('0x2f')](_0xb440('0x2c'),inspect(_0x21204a));return null;}}else{logger[_0xb440('0x2f')](_0xb440('0x30'));return null;}}catch(_0x5ade90){logger[_0xb440('0x2f')](_0x5ade90[_0xb440('0x9')]);return null;}});if(_0x353f32[_0xb440('0x31')]){logger['info'](util['format'](_0xb440('0x32'),_0x4139e7[_0xb440('0x33')],_0x4139e7['calleridname'],_0x4139e7[_0xb440('0x23')],_0x4139e7[_0xb440('0x34')],_0x4139e7[_0xb440('0x35')]));_0x3c9f37[_0xb440('0x36')](_0x353f32[_0xb440('0x31')]['id'],function(_0x267723){try{_0x267723=_0x263008[_0xb440('0x37')](_0x267723);logger[_0xb440('0x1b')](_0xb440('0x24'),JSON[_0xb440('0x1c')](_0x267723,null,0x2));if(_0x267723&&_0x263008[_0x267723['agicommand']]){_0x21204a=_0x263008[_0x267723[_0xb440('0xa')]](_0x267723);if(_0x21204a){logger[_0xb440('0x1b')](_0xb440('0x2c'),inspect(_0x21204a));return _[_0xb440('0x2d')](_0x21204a['result'])?null:_0x21204a[_0xb440('0x2a')]['toString']();}else{logger[_0xb440('0x2f')](_0xb440('0x2c'),inspect(_0x21204a));return null;}}else{logger['error'](_0xb440('0x30'));return null;}}catch(_0x24ec5e){logger['error'](_0x24ec5e[_0xb440('0x9')]);return null;}});}logger[_0xb440('0x20')](util['format'](_0xb440('0x38'),_0x4139e7[_0xb440('0x33')],_0x4139e7[_0xb440('0x22')],_0x4139e7[_0xb440('0x23')],_0x4139e7['dnid'],_0x4139e7[_0xb440('0x35')]));logger[_0xb440('0x20')](util[_0xb440('0x1e')](_0xb440('0x39'),_0x4139e7[_0xb440('0x27')],_0x4139e7[_0xb440('0x28')],parseInt(_0x4139e7[_0xb440('0x29')],0xa)+0x1));_0x4139e7[_0xb440('0x3a')](_0x4139e7['context'],_0x4139e7[_0xb440('0x28')],parseInt(_0x4139e7[_0xb440('0x29')],0xa)+0x1);_0x4139e7[_0xb440('0x3b')]();}function handleNotFound(_0x585164){logger[_0xb440('0x2f')](util[_0xb440('0x1e')](_0xb440('0x3c'),_0x585164[_0xb440('0x33')]));_0x585164[_0xb440('0x3a')](_0x585164[_0xb440('0x27')],_0x585164[_0xb440('0x28')],parseInt(_0x585164[_0xb440('0x29')],0xa)+0x1);_0x585164['close']();}function handleUnpublished(_0x56ae81){logger['error'](util[_0xb440('0x1e')](_0xb440('0x3d'),_0x56ae81['arg_1']));_0x56ae81['continueAt'](_0x56ae81[_0xb440('0x27')],_0x56ae81['extension'],parseInt(_0x56ae81[_0xb440('0x29')],0xa)+0x1);_0x56ae81['close']();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};