Built motion from commit f25620e4.|2.6.30
[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 _0x558a=['[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','finally','agicommand\x20not\x20found','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','continueAt','close','exports','util','../../config/logger','agi','./rpc','./mailRpc','./graph','./vertices','error','Unable\x20to\x20download\x20CallySquare\x20projects','agicommand','retry','hasOwnProperty','length','source','target','addEdge','toJson','root','inspect','production','start','stringify','joinAt','format','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','dnid','uniqueid','traverseBFS','clear','debug','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','result','evtHangup','response','isUndefined','toString'];(function(_0x218972,_0x1f9794){var _0x1bb1a8=function(_0x3fb962){while(--_0x3fb962){_0x218972['push'](_0x218972['shift']());}};_0x1bb1a8(++_0x1f9794);}(_0x558a,0x173));var _0xa558=function(_0x3bb39e,_0x2ca25d){_0x3bb39e=_0x3bb39e-0x0;var _0x28814f=_0x558a[_0x3bb39e];return _0x28814f;};'use strict';var _=require('lodash');var moment=require('moment');var parser=require('xml2json');var util=require(_0xa558('0x0'));var logger=require(_0xa558('0x1'))(_0xa558('0x2'));var rpc=require(_0xa558('0x3'));var mailRpc=require(_0xa558('0x4'));var Graph=require(_0xa558('0x5'));var Vertices=require(_0xa558('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()['catch'](function(_0x26d9a3){logger[_0xa558('0x7')](_0xa558('0x8'),_0x26d9a3['stack']);return[];});}function addVertex(_0x583641,_0x2bf3b5,_0x402a05){_0x2bf3b5[_0xa558('0x9')]=_0x402a05;if(_0x2bf3b5['hasOwnProperty'](_0xa558('0xa'))){_0x2bf3b5['maxRetry']=parseInt(_0x2bf3b5[_0xa558('0xa')],0xa);}_0x583641['addVertex'](_['omit'](_0x2bf3b5,'mxCell'));}function initGraph(_0x51e1ba,_0x54ca60){var _0x4a439a=new Graph();for(var _0x385307 in _0x51e1ba){if(_0x51e1ba[_0xa558('0xb')](_0x385307)){if(_['isArray'](_0x51e1ba[_0x385307])){for(var _0xa62052=0x0;_0xa62052<_0x51e1ba[_0x385307][_0xa558('0xc')];_0xa62052+=0x1){addVertex(_0x4a439a,_0x51e1ba[_0x385307][_0xa62052],_0x385307);}}else{addVertex(_0x4a439a,_0x51e1ba[_0x385307],_0x385307);}}}for(var _0x4967f7=0x0;_0x4967f7<_0x54ca60['length'];_0x4967f7+=0x1){if(_0x54ca60[_0x4967f7][_0xa558('0xd')]&&_0x54ca60[_0x4967f7][_0xa558('0xe')]){_0x4a439a[_0xa558('0xf')](_0x54ca60[_0x4967f7][_0xa558('0xd')],_0x54ca60[_0x4967f7][_0xa558('0xe')],_0x54ca60[_0x4967f7]['value']);}}return _0x4a439a;}function getRoot(_0x170eba){return parser[_0xa558('0x10')](_0x170eba,{'object':!![]})['mxGraphModel'][_0xa558('0x11')];}function inspect(_0x3e2924){return util[_0xa558('0x12')](_0x3e2924,{'showHidden':![],'depth':null});}function initialize(_0x5d88d4,_0x31aa5b){var _0x4d90ee=getRoot(_0x5d88d4[_0xa558('0x13')]);if(!_0x4d90ee||!_0x4d90ee[_0xa558('0x14')])return;var _0x4542ef,_0x19fde1,_0x107db4;logger['debug'](_0xa558('0x11'),JSON[_0xa558('0x15')](_0x4d90ee,null,0x2));_0x31aa5b[_0xa558('0x16')]=moment()[_0xa558('0x17')]('YYYY-MM-DD\x20HH:mm:ss');_0x4542ef=initGraph(_['omit'](_0x4d90ee,'mxCell'),_0x4d90ee['mxCell']);_0x19fde1=new Vertices(_0x31aa5b,rpc,mailRpc);logger[_0xa558('0x18')](util[_0xa558('0x17')](_0xa558('0x19'),_0x31aa5b[_0xa558('0x1a')],_0x31aa5b[_0xa558('0x1b')],_0x31aa5b[_0xa558('0x1c')],_0x31aa5b[_0xa558('0x1d')],_0x31aa5b[_0xa558('0x1e')]));_0x4542ef[_0xa558('0x1f')](_0x4d90ee[_0xa558('0x14')]['id'],function(_0x35ee00){try{_0x35ee00=_0x19fde1[_0xa558('0x20')](_0x35ee00);logger[_0xa558('0x21')]('vertex',JSON[_0xa558('0x15')](_0x35ee00,null,0x2));if(_0x35ee00[_0xa558('0x9')]===_0xa558('0x22')){logger['info'](_0xa558('0x23'));_0x31aa5b[_0xa558('0x24')]=_0x35ee00[_0xa558('0x24')]||_0x31aa5b[_0xa558('0x24')];_0x31aa5b[_0xa558('0x25')]=_0x35ee00[_0xa558('0x25')];_0x31aa5b['priority']=_0x35ee00[_0xa558('0x26')]?_0x35ee00[_0xa558('0x26')]-0x1:0x1;return null;}else if(_0x35ee00&&_0x19fde1[_0x35ee00['agicommand']]){_0x107db4=_0x19fde1[_0x35ee00[_0xa558('0x9')]](_0x35ee00);logger[_0xa558('0x18')]('response',JSON['stringify'](_0x107db4,null,0x2));if(_0x107db4&&_0x107db4[_0xa558('0x27')]===AGI_CODE_SUCCESS&&_0x107db4[_0xa558('0x28')]!==AGI_RESULT_ERROR&&!_0x31aa5b[_0xa558('0x29')]){logger[_0xa558('0x21')](_0xa558('0x2a'),inspect(_0x107db4));return _[_0xa558('0x2b')](_0x107db4[_0xa558('0x28')])?null:_0x107db4[_0xa558('0x28')][_0xa558('0x2c')]();}else{logger[_0xa558('0x7')](_0xa558('0x2a'),inspect(_0x107db4));return null;}}else{logger[_0xa558('0x7')]('agicommand\x20not\x20found');return null;}}catch(_0x216c3a){logger[_0xa558('0x7')](_0x216c3a['stack']);return null;}});if(_0x4d90ee['finally']){logger['info'](util[_0xa558('0x17')](_0xa558('0x2d'),_0x31aa5b[_0xa558('0x1a')],_0x31aa5b['calleridname'],_0x31aa5b[_0xa558('0x1c')],_0x31aa5b['dnid'],_0x31aa5b[_0xa558('0x1e')]));_0x4542ef[_0xa558('0x1f')](_0x4d90ee[_0xa558('0x2e')]['id'],function(_0xe78580){try{_0xe78580=_0x19fde1['clear'](_0xe78580);logger['debug']('vertex',JSON[_0xa558('0x15')](_0xe78580,null,0x2));if(_0xe78580&&_0x19fde1[_0xe78580[_0xa558('0x9')]]){_0x107db4=_0x19fde1[_0xe78580['agicommand']](_0xe78580);if(_0x107db4){logger[_0xa558('0x21')](_0xa558('0x2a'),inspect(_0x107db4));return _[_0xa558('0x2b')](_0x107db4[_0xa558('0x28')])?null:_0x107db4[_0xa558('0x28')]['toString']();}else{logger['error'](_0xa558('0x2a'),inspect(_0x107db4));return null;}}else{logger[_0xa558('0x7')](_0xa558('0x2f'));return null;}}catch(_0x53cdff){logger[_0xa558('0x7')](_0x53cdff['stack']);return null;}});}logger['info'](util[_0xa558('0x17')](_0xa558('0x30'),_0x31aa5b['arg_1'],_0x31aa5b[_0xa558('0x1b')],_0x31aa5b[_0xa558('0x1c')],_0x31aa5b[_0xa558('0x1d')],_0x31aa5b[_0xa558('0x1e')]));logger['info'](util[_0xa558('0x17')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x31aa5b[_0xa558('0x24')],_0x31aa5b['extension'],parseInt(_0x31aa5b[_0xa558('0x26')],0xa)+0x1));_0x31aa5b[_0xa558('0x31')](_0x31aa5b[_0xa558('0x24')],_0x31aa5b[_0xa558('0x25')],parseInt(_0x31aa5b['priority'],0xa)+0x1);_0x31aa5b[_0xa558('0x32')]();}function handleNotFound(_0x5b554d){logger['error'](util[_0xa558('0x17')]('Project\x20%s\x20not\x20found',_0x5b554d['arg_1']));_0x5b554d[_0xa558('0x31')](_0x5b554d[_0xa558('0x24')],_0x5b554d[_0xa558('0x25')],parseInt(_0x5b554d[_0xa558('0x26')],0xa)+0x1);_0x5b554d[_0xa558('0x32')]();}function handleUnpublished(_0x1870d5){logger[_0xa558('0x7')](util[_0xa558('0x17')]('Project\x20%s\x20not\x20published',_0x1870d5['arg_1']));_0x1870d5['continueAt'](_0x1870d5['context'],_0x1870d5[_0xa558('0x25')],parseInt(_0x1870d5[_0xa558('0x26')],0xa)+0x1);_0x1870d5['close']();}module[_0xa558('0x33')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};