4013a0ce6b9a88f8474a97f2a0777852ce4ddd75
[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 _0x6712=['maxRetry','addVertex','omit','mxCell','length','source','addEdge','target','value','toJson','root','production','start','stringify','joinAt','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','traverseBFS','debug','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','toString','agicommand\x20not\x20found','finally','format','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','clear','isUndefined','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','dnid','continueAt','close','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','exports','lodash','moment','util','./rpc','./graph','./vertices','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry'];(function(_0x3c7c11,_0x9997d8){var _0x25fc73=function(_0x3bc56d){while(--_0x3bc56d){_0x3c7c11['push'](_0x3c7c11['shift']());}};_0x25fc73(++_0x9997d8);}(_0x6712,0x19d));var _0x2671=function(_0x16b9ed,_0x56517a){_0x16b9ed=_0x16b9ed-0x0;var _0x66b1f8=_0x6712[_0x16b9ed];return _0x66b1f8;};'use strict';var _=require(_0x2671('0x0'));var moment=require(_0x2671('0x1'));var parser=require('xml2json');var util=require(_0x2671('0x2'));var logger=require('../../config/logger')('agi');var rpc=require(_0x2671('0x3'));var mailRpc=require('./mailRpc');var Graph=require(_0x2671('0x4'));var Vertices=require(_0x2671('0x5'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x2671('0x6')]()[_0x2671('0x7')](function(_0x2f425c){logger[_0x2671('0x8')](_0x2671('0x9'),_0x2f425c[_0x2671('0xa')]);return[];});}function addVertex(_0x4d561e,_0x206799,_0x35d237){_0x206799[_0x2671('0xb')]=_0x35d237;if(_0x206799[_0x2671('0xc')](_0x2671('0xd'))){_0x206799[_0x2671('0xe')]=parseInt(_0x206799[_0x2671('0xd')],0xa);}_0x4d561e[_0x2671('0xf')](_[_0x2671('0x10')](_0x206799,_0x2671('0x11')));}function initGraph(_0x155b8b,_0x2c171a){var _0x4e27d6=new Graph();for(var _0x2a771b in _0x155b8b){if(_0x155b8b['hasOwnProperty'](_0x2a771b)){if(_['isArray'](_0x155b8b[_0x2a771b])){for(var _0x5e1740=0x0;_0x5e1740<_0x155b8b[_0x2a771b][_0x2671('0x12')];_0x5e1740+=0x1){addVertex(_0x4e27d6,_0x155b8b[_0x2a771b][_0x5e1740],_0x2a771b);}}else{addVertex(_0x4e27d6,_0x155b8b[_0x2a771b],_0x2a771b);}}}for(var _0x24f6b1=0x0;_0x24f6b1<_0x2c171a[_0x2671('0x12')];_0x24f6b1+=0x1){if(_0x2c171a[_0x24f6b1][_0x2671('0x13')]&&_0x2c171a[_0x24f6b1]['target']){_0x4e27d6[_0x2671('0x14')](_0x2c171a[_0x24f6b1][_0x2671('0x13')],_0x2c171a[_0x24f6b1][_0x2671('0x15')],_0x2c171a[_0x24f6b1][_0x2671('0x16')]);}}return _0x4e27d6;}function getRoot(_0x2c0706){return parser[_0x2671('0x17')](_0x2c0706,{'object':!![]})['mxGraphModel'][_0x2671('0x18')];}function inspect(_0x523690){return util['inspect'](_0x523690,{'showHidden':![],'depth':null});}function initialize(_0x46a076,_0x17236a){var _0x4bd961=getRoot(_0x46a076[_0x2671('0x19')]);if(!_0x4bd961||!_0x4bd961[_0x2671('0x1a')])return;var _0x4e760f,_0x299266,_0x3f814b;logger['debug']('root',JSON[_0x2671('0x1b')](_0x4bd961,null,0x2));_0x17236a[_0x2671('0x1c')]=moment()['format'](_0x2671('0x1d'));_0x4e760f=initGraph(_[_0x2671('0x10')](_0x4bd961,_0x2671('0x11')),_0x4bd961[_0x2671('0x11')]);_0x299266=new Vertices(_0x17236a,rpc,mailRpc);logger[_0x2671('0x1e')](util['format'](_0x2671('0x1f'),_0x17236a[_0x2671('0x20')],_0x17236a[_0x2671('0x21')],_0x17236a[_0x2671('0x22')],_0x17236a['dnid'],_0x17236a[_0x2671('0x23')]));_0x4e760f[_0x2671('0x24')](_0x4bd961[_0x2671('0x1a')]['id'],function(_0x2e8f96){try{_0x2e8f96=_0x299266['clear'](_0x2e8f96);logger[_0x2671('0x25')](_0x2671('0x26'),JSON[_0x2671('0x1b')](_0x2e8f96,null,0x2));if(_0x2e8f96[_0x2671('0xb')]===_0x2671('0x27')){logger[_0x2671('0x1e')](_0x2671('0x28'));_0x17236a[_0x2671('0x29')]=_0x2e8f96[_0x2671('0x29')]||_0x17236a[_0x2671('0x29')];_0x17236a[_0x2671('0x2a')]=_0x2e8f96[_0x2671('0x2a')];_0x17236a[_0x2671('0x2b')]=_0x2e8f96[_0x2671('0x2b')]?_0x2e8f96[_0x2671('0x2b')]-0x1:0x1;return null;}else if(_0x2e8f96&&_0x299266[_0x2e8f96['agicommand']]){_0x3f814b=_0x299266[_0x2e8f96['agicommand']](_0x2e8f96);logger[_0x2671('0x1e')](_0x2671('0x2c'),JSON[_0x2671('0x1b')](_0x3f814b,null,0x2));if(_0x3f814b&&_0x3f814b[_0x2671('0x2d')]===AGI_CODE_SUCCESS&&_0x3f814b[_0x2671('0x2e')]!==AGI_RESULT_ERROR&&!_0x17236a['evtHangup']){logger[_0x2671('0x25')](_0x2671('0x2c'),inspect(_0x3f814b));return _['isUndefined'](_0x3f814b[_0x2671('0x2e')])?null:_0x3f814b['result'][_0x2671('0x2f')]();}else{logger['error'](_0x2671('0x2c'),inspect(_0x3f814b));return null;}}else{logger[_0x2671('0x8')](_0x2671('0x30'));return null;}}catch(_0x2c352b){logger[_0x2671('0x8')](_0x2c352b[_0x2671('0xa')]);return null;}});if(_0x4bd961[_0x2671('0x31')]){logger[_0x2671('0x1e')](util[_0x2671('0x32')](_0x2671('0x33'),_0x17236a['arg_1'],_0x17236a[_0x2671('0x21')],_0x17236a[_0x2671('0x22')],_0x17236a['dnid'],_0x17236a[_0x2671('0x23')]));_0x4e760f[_0x2671('0x24')](_0x4bd961[_0x2671('0x31')]['id'],function(_0x177182){try{_0x177182=_0x299266[_0x2671('0x34')](_0x177182);logger[_0x2671('0x25')]('vertex',JSON[_0x2671('0x1b')](_0x177182,null,0x2));if(_0x177182&&_0x299266[_0x177182[_0x2671('0xb')]]){_0x3f814b=_0x299266[_0x177182[_0x2671('0xb')]](_0x177182);if(_0x3f814b){logger['debug'](_0x2671('0x2c'),inspect(_0x3f814b));return _[_0x2671('0x35')](_0x3f814b['result'])?null:_0x3f814b[_0x2671('0x2e')]['toString']();}else{logger[_0x2671('0x8')]('response',inspect(_0x3f814b));return null;}}else{logger[_0x2671('0x8')](_0x2671('0x30'));return null;}}catch(_0x1992c4){logger['error'](_0x1992c4[_0x2671('0xa')]);return null;}});}logger[_0x2671('0x1e')](util[_0x2671('0x32')](_0x2671('0x36'),_0x17236a[_0x2671('0x20')],_0x17236a[_0x2671('0x21')],_0x17236a[_0x2671('0x22')],_0x17236a[_0x2671('0x37')],_0x17236a[_0x2671('0x23')]));logger[_0x2671('0x1e')](util[_0x2671('0x32')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x17236a['context'],_0x17236a[_0x2671('0x2a')],parseInt(_0x17236a['priority'],0xa)+0x1));_0x17236a[_0x2671('0x38')](_0x17236a[_0x2671('0x29')],_0x17236a['extension'],parseInt(_0x17236a[_0x2671('0x2b')],0xa)+0x1);_0x17236a[_0x2671('0x39')]();}function handleNotFound(_0x1acd73){logger['error'](util[_0x2671('0x32')](_0x2671('0x3a'),_0x1acd73[_0x2671('0x20')]));_0x1acd73['continueAt'](_0x1acd73[_0x2671('0x29')],_0x1acd73[_0x2671('0x2a')],parseInt(_0x1acd73[_0x2671('0x2b')],0xa)+0x1);_0x1acd73[_0x2671('0x39')]();}function handleUnpublished(_0x1242a0){logger[_0x2671('0x8')](util[_0x2671('0x32')](_0x2671('0x3b'),_0x1242a0[_0x2671('0x20')]));_0x1242a0[_0x2671('0x38')](_0x1242a0[_0x2671('0x29')],_0x1242a0[_0x2671('0x2a')],parseInt(_0x1242a0[_0x2671('0x2b')],0xa)+0x1);_0x1242a0['close']();}module[_0x2671('0x3c')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};