d3aecd5f9e50eee00fe629e363015e0b138ae3cc
[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 _0xd69d=['toString','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','clear','agicommand\x20not\x20found','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','close','Project\x20%s\x20not\x20found','exports','lodash','moment','../../config/logger','./rpc','./vertices','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','omit','mxCell','isArray','source','target','addEdge','value','toJson','root','inspect','start','debug','stringify','joinAt','info','format','arg_1','callerid','dnid','uniqueid','traverseBFS','vertex','gotoc','context','extension','priority','response','code','result','evtHangup'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0xd69d,0xad));var _0xdd69=function(_0x5d2af9,_0x350f19){_0x5d2af9=_0x5d2af9-0x0;var _0x11b3a0=_0xd69d[_0x5d2af9];return _0x11b3a0;};'use strict';var _=require(_0xdd69('0x0'));var moment=require(_0xdd69('0x1'));var parser=require('xml2json');var util=require('util');var logger=require(_0xdd69('0x2'))('agi');var rpc=require(_0xdd69('0x3'));var mailRpc=require('./mailRpc');var Graph=require('./graph');var Vertices=require(_0xdd69('0x4'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()[_0xdd69('0x5')](function(_0x168c7a){logger[_0xdd69('0x6')](_0xdd69('0x7'),_0x168c7a[_0xdd69('0x8')]);return[];});}function addVertex(_0x805696,_0x514a34,_0x226214){_0x514a34[_0xdd69('0x9')]=_0x226214;if(_0x514a34[_0xdd69('0xa')](_0xdd69('0xb'))){_0x514a34[_0xdd69('0xc')]=parseInt(_0x514a34[_0xdd69('0xb')],0xa);}_0x805696['addVertex'](_[_0xdd69('0xd')](_0x514a34,_0xdd69('0xe')));}function initGraph(_0x5f0d61,_0xc2a974){var _0x395b4e=new Graph();for(var _0x5afccb in _0x5f0d61){if(_0x5f0d61[_0xdd69('0xa')](_0x5afccb)){if(_[_0xdd69('0xf')](_0x5f0d61[_0x5afccb])){for(var _0x5dcc20=0x0;_0x5dcc20<_0x5f0d61[_0x5afccb]['length'];_0x5dcc20+=0x1){addVertex(_0x395b4e,_0x5f0d61[_0x5afccb][_0x5dcc20],_0x5afccb);}}else{addVertex(_0x395b4e,_0x5f0d61[_0x5afccb],_0x5afccb);}}}for(var _0x1b579c=0x0;_0x1b579c<_0xc2a974['length'];_0x1b579c+=0x1){if(_0xc2a974[_0x1b579c][_0xdd69('0x10')]&&_0xc2a974[_0x1b579c][_0xdd69('0x11')]){_0x395b4e[_0xdd69('0x12')](_0xc2a974[_0x1b579c]['source'],_0xc2a974[_0x1b579c][_0xdd69('0x11')],_0xc2a974[_0x1b579c][_0xdd69('0x13')]);}}return _0x395b4e;}function getRoot(_0x6f7cc6){return parser[_0xdd69('0x14')](_0x6f7cc6,{'object':!![]})['mxGraphModel'][_0xdd69('0x15')];}function inspect(_0x46e54d){return util[_0xdd69('0x16')](_0x46e54d,{'showHidden':![],'depth':null});}function initialize(_0x200a58,_0x59f534){var _0x451e43=getRoot(_0x200a58['production']);if(!_0x451e43||!_0x451e43[_0xdd69('0x17')])return;var _0x3424e0,_0x347259,_0x5a0e97;logger[_0xdd69('0x18')](_0xdd69('0x15'),JSON[_0xdd69('0x19')](_0x451e43,null,0x2));_0x59f534[_0xdd69('0x1a')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x3424e0=initGraph(_[_0xdd69('0xd')](_0x451e43,_0xdd69('0xe')),_0x451e43[_0xdd69('0xe')]);_0x347259=new Vertices(_0x59f534,rpc,mailRpc);logger[_0xdd69('0x1b')](util[_0xdd69('0x1c')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x59f534[_0xdd69('0x1d')],_0x59f534['calleridname'],_0x59f534[_0xdd69('0x1e')],_0x59f534[_0xdd69('0x1f')],_0x59f534[_0xdd69('0x20')]));_0x3424e0[_0xdd69('0x21')](_0x451e43[_0xdd69('0x17')]['id'],function(_0x163086){try{_0x163086=_0x347259['clear'](_0x163086);logger[_0xdd69('0x18')](_0xdd69('0x22'),JSON[_0xdd69('0x19')](_0x163086,null,0x2));if(_0x163086['agicommand']===_0xdd69('0x23')){logger[_0xdd69('0x1b')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x59f534['context']=_0x163086[_0xdd69('0x24')]||_0x59f534[_0xdd69('0x24')];_0x59f534[_0xdd69('0x25')]=_0x163086[_0xdd69('0x25')];_0x59f534[_0xdd69('0x26')]=_0x163086[_0xdd69('0x26')]?_0x163086[_0xdd69('0x26')]-0x1:0x1;return null;}else if(_0x163086&&_0x347259[_0x163086[_0xdd69('0x9')]]){_0x5a0e97=_0x347259[_0x163086[_0xdd69('0x9')]](_0x163086);logger[_0xdd69('0x1b')](_0xdd69('0x27'),JSON[_0xdd69('0x19')](_0x5a0e97,null,0x2));if(_0x5a0e97&&_0x5a0e97[_0xdd69('0x28')]===AGI_CODE_SUCCESS&&_0x5a0e97[_0xdd69('0x29')]!==AGI_RESULT_ERROR&&!_0x59f534[_0xdd69('0x2a')]){logger[_0xdd69('0x18')](_0xdd69('0x27'),inspect(_0x5a0e97));return _['isUndefined'](_0x5a0e97['result'])?null:_0x5a0e97[_0xdd69('0x29')][_0xdd69('0x2b')]();}else{logger['error']('response',inspect(_0x5a0e97));return null;}}else{logger[_0xdd69('0x6')]('agicommand\x20not\x20found');return null;}}catch(_0x418e5b){logger['error'](_0x418e5b[_0xdd69('0x8')]);return null;}});if(_0x451e43['finally']){logger['info'](util[_0xdd69('0x1c')](_0xdd69('0x2c'),_0x59f534[_0xdd69('0x1d')],_0x59f534['calleridname'],_0x59f534[_0xdd69('0x1e')],_0x59f534[_0xdd69('0x1f')],_0x59f534[_0xdd69('0x20')]));_0x3424e0[_0xdd69('0x21')](_0x451e43['finally']['id'],function(_0x5437e9){try{_0x5437e9=_0x347259[_0xdd69('0x2d')](_0x5437e9);logger[_0xdd69('0x18')](_0xdd69('0x22'),JSON[_0xdd69('0x19')](_0x5437e9,null,0x2));if(_0x5437e9&&_0x347259[_0x5437e9[_0xdd69('0x9')]]){_0x5a0e97=_0x347259[_0x5437e9['agicommand']](_0x5437e9);if(_0x5a0e97){logger['debug'](_0xdd69('0x27'),inspect(_0x5a0e97));return _['isUndefined'](_0x5a0e97['result'])?null:_0x5a0e97[_0xdd69('0x29')]['toString']();}else{logger[_0xdd69('0x6')](_0xdd69('0x27'),inspect(_0x5a0e97));return null;}}else{logger[_0xdd69('0x6')](_0xdd69('0x2e'));return null;}}catch(_0xce3d03){logger['error'](_0xce3d03[_0xdd69('0x8')]);return null;}});}logger[_0xdd69('0x1b')](util['format'](_0xdd69('0x2f'),_0x59f534['arg_1'],_0x59f534[_0xdd69('0x30')],_0x59f534[_0xdd69('0x1e')],_0x59f534['dnid'],_0x59f534[_0xdd69('0x20')]));logger[_0xdd69('0x1b')](util[_0xdd69('0x1c')](_0xdd69('0x31'),_0x59f534[_0xdd69('0x24')],_0x59f534[_0xdd69('0x25')],parseInt(_0x59f534[_0xdd69('0x26')],0xa)+0x1));_0x59f534[_0xdd69('0x32')](_0x59f534[_0xdd69('0x24')],_0x59f534[_0xdd69('0x25')],parseInt(_0x59f534[_0xdd69('0x26')],0xa)+0x1);_0x59f534[_0xdd69('0x33')]();}function handleNotFound(_0x30a5ff){logger[_0xdd69('0x6')](util[_0xdd69('0x1c')](_0xdd69('0x34'),_0x30a5ff[_0xdd69('0x1d')]));_0x30a5ff[_0xdd69('0x32')](_0x30a5ff[_0xdd69('0x24')],_0x30a5ff[_0xdd69('0x25')],parseInt(_0x30a5ff[_0xdd69('0x26')],0xa)+0x1);_0x30a5ff[_0xdd69('0x33')]();}function handleUnpublished(_0x488bcb){logger[_0xdd69('0x6')](util[_0xdd69('0x1c')]('Project\x20%s\x20not\x20published',_0x488bcb[_0xdd69('0x1d')]));_0x488bcb[_0xdd69('0x32')](_0x488bcb[_0xdd69('0x24')],_0x488bcb[_0xdd69('0x25')],parseInt(_0x488bcb['priority'],0xa)+0x1);_0x488bcb[_0xdd69('0x33')]();}module[_0xdd69('0x35')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};