17f8fb514e12b7b4b3944e5c41fba2f92268bdfc
[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 _0xc007=['[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','lodash','moment','../../config/logger','agi','./mailRpc','./graph','getSquareProjects','catch','error','stack','agicommand','hasOwnProperty','maxRetry','retry','addVertex','omit','mxCell','isArray','length','source','target','addEdge','value','toJson','root','production','debug','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','callerid','dnid','uniqueid','traverseBFS','start','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','evtHangup','isUndefined','toString','response','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','arg_1','calleridname','clear','vertex','result'];(function(_0x64c61a,_0x39926){var _0x53701f=function(_0x2f5981){while(--_0x2f5981){_0x64c61a['push'](_0x64c61a['shift']());}};_0x53701f(++_0x39926);}(_0xc007,0x12b));var _0x7c00=function(_0x1265e2,_0x567f3f){_0x1265e2=_0x1265e2-0x0;var _0x19d325=_0xc007[_0x1265e2];return _0x19d325;};'use strict';var _=require(_0x7c00('0x0'));var moment=require(_0x7c00('0x1'));var parser=require('xml2json');var util=require('util');var logger=require(_0x7c00('0x2'))(_0x7c00('0x3'));var rpc=require('./rpc');var mailRpc=require(_0x7c00('0x4'));var Graph=require(_0x7c00('0x5'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x7c00('0x6')]()[_0x7c00('0x7')](function(_0x4d280){logger[_0x7c00('0x8')]('Unable\x20to\x20download\x20CallySquare\x20projects',_0x4d280[_0x7c00('0x9')]);return[];});}function addVertex(_0x19ecc6,_0x61ed4e,_0x517573){_0x61ed4e[_0x7c00('0xa')]=_0x517573;if(_0x61ed4e[_0x7c00('0xb')]('retry')){_0x61ed4e[_0x7c00('0xc')]=parseInt(_0x61ed4e[_0x7c00('0xd')],0xa);}_0x19ecc6[_0x7c00('0xe')](_[_0x7c00('0xf')](_0x61ed4e,_0x7c00('0x10')));}function initGraph(_0x2abd88,_0x4a4962){var _0x186a06=new Graph();for(var _0x580fc4 in _0x2abd88){if(_0x2abd88[_0x7c00('0xb')](_0x580fc4)){if(_[_0x7c00('0x11')](_0x2abd88[_0x580fc4])){for(var _0x1bac9b=0x0;_0x1bac9b<_0x2abd88[_0x580fc4][_0x7c00('0x12')];_0x1bac9b+=0x1){addVertex(_0x186a06,_0x2abd88[_0x580fc4][_0x1bac9b],_0x580fc4);}}else{addVertex(_0x186a06,_0x2abd88[_0x580fc4],_0x580fc4);}}}for(var _0x3ae957=0x0;_0x3ae957<_0x4a4962[_0x7c00('0x12')];_0x3ae957+=0x1){if(_0x4a4962[_0x3ae957][_0x7c00('0x13')]&&_0x4a4962[_0x3ae957][_0x7c00('0x14')]){_0x186a06[_0x7c00('0x15')](_0x4a4962[_0x3ae957][_0x7c00('0x13')],_0x4a4962[_0x3ae957][_0x7c00('0x14')],_0x4a4962[_0x3ae957][_0x7c00('0x16')]);}}return _0x186a06;}function getRoot(_0x1bcc91){return parser[_0x7c00('0x17')](_0x1bcc91,{'object':!![]})['mxGraphModel'][_0x7c00('0x18')];}function inspect(_0x11ffc2){return util['inspect'](_0x11ffc2,{'showHidden':![],'depth':null});}function initialize(_0x8a9a53,_0x27cde8){var _0x2e9db5=getRoot(_0x8a9a53[_0x7c00('0x19')]);if(!_0x2e9db5||!_0x2e9db5['start'])return;var _0x5efd06,_0x4ae4e2,_0x36d738;logger[_0x7c00('0x1a')]('root',JSON[_0x7c00('0x1b')](_0x2e9db5,null,0x2));_0x27cde8[_0x7c00('0x1c')]=moment()['format'](_0x7c00('0x1d'));_0x5efd06=initGraph(_['omit'](_0x2e9db5,_0x7c00('0x10')),_0x2e9db5['mxCell']);_0x4ae4e2=new Vertices(_0x27cde8,rpc,mailRpc);logger[_0x7c00('0x1e')](util['format'](_0x7c00('0x1f'),_0x27cde8['arg_1'],_0x27cde8['calleridname'],_0x27cde8[_0x7c00('0x20')],_0x27cde8[_0x7c00('0x21')],_0x27cde8[_0x7c00('0x22')]));_0x5efd06[_0x7c00('0x23')](_0x2e9db5[_0x7c00('0x24')]['id'],function(_0x3e125a){try{_0x3e125a=_0x4ae4e2['clear'](_0x3e125a);logger[_0x7c00('0x1a')]('vertex',JSON[_0x7c00('0x1b')](_0x3e125a,null,0x2));if(_0x3e125a[_0x7c00('0xa')]==='gotoc'){logger[_0x7c00('0x1e')](_0x7c00('0x25'));_0x27cde8[_0x7c00('0x26')]=_0x3e125a[_0x7c00('0x26')]||_0x27cde8[_0x7c00('0x26')];_0x27cde8[_0x7c00('0x27')]=_0x3e125a[_0x7c00('0x27')];_0x27cde8[_0x7c00('0x28')]=_0x3e125a[_0x7c00('0x28')]?_0x3e125a['priority']-0x1:0x1;return null;}else if(_0x3e125a&&_0x4ae4e2[_0x3e125a[_0x7c00('0xa')]]){_0x36d738=_0x4ae4e2[_0x3e125a[_0x7c00('0xa')]](_0x3e125a);logger['info']('response',JSON[_0x7c00('0x1b')](_0x36d738,null,0x2));if(_0x36d738&&_0x36d738[_0x7c00('0x29')]===AGI_CODE_SUCCESS&&_0x36d738['result']!==AGI_RESULT_ERROR&&!_0x27cde8[_0x7c00('0x2a')]){logger[_0x7c00('0x1a')]('response',inspect(_0x36d738));return _[_0x7c00('0x2b')](_0x36d738['result'])?null:_0x36d738['result'][_0x7c00('0x2c')]();}else{logger[_0x7c00('0x8')](_0x7c00('0x2d'),inspect(_0x36d738));return null;}}else{logger[_0x7c00('0x8')](_0x7c00('0x2e'));return null;}}catch(_0x2b42d1){logger[_0x7c00('0x8')](_0x2b42d1['stack']);return null;}});if(_0x2e9db5[_0x7c00('0x2f')]){logger[_0x7c00('0x1e')](util[_0x7c00('0x30')](_0x7c00('0x31'),_0x27cde8[_0x7c00('0x32')],_0x27cde8[_0x7c00('0x33')],_0x27cde8[_0x7c00('0x20')],_0x27cde8[_0x7c00('0x21')],_0x27cde8[_0x7c00('0x22')]));_0x5efd06[_0x7c00('0x23')](_0x2e9db5['finally']['id'],function(_0x553b19){try{_0x553b19=_0x4ae4e2[_0x7c00('0x34')](_0x553b19);logger[_0x7c00('0x1a')](_0x7c00('0x35'),JSON[_0x7c00('0x1b')](_0x553b19,null,0x2));if(_0x553b19&&_0x4ae4e2[_0x553b19[_0x7c00('0xa')]]){_0x36d738=_0x4ae4e2[_0x553b19[_0x7c00('0xa')]](_0x553b19);if(_0x36d738){logger[_0x7c00('0x1a')](_0x7c00('0x2d'),inspect(_0x36d738));return _[_0x7c00('0x2b')](_0x36d738[_0x7c00('0x36')])?null:_0x36d738[_0x7c00('0x36')][_0x7c00('0x2c')]();}else{logger[_0x7c00('0x8')](_0x7c00('0x2d'),inspect(_0x36d738));return null;}}else{logger[_0x7c00('0x8')](_0x7c00('0x2e'));return null;}}catch(_0x51a174){logger[_0x7c00('0x8')](_0x51a174[_0x7c00('0x9')]);return null;}});}logger[_0x7c00('0x1e')](util[_0x7c00('0x30')](_0x7c00('0x37'),_0x27cde8['arg_1'],_0x27cde8['calleridname'],_0x27cde8[_0x7c00('0x20')],_0x27cde8[_0x7c00('0x21')],_0x27cde8[_0x7c00('0x22')]));logger[_0x7c00('0x1e')](util['format'](_0x7c00('0x38'),_0x27cde8[_0x7c00('0x26')],_0x27cde8[_0x7c00('0x27')],parseInt(_0x27cde8[_0x7c00('0x28')],0xa)+0x1));_0x27cde8[_0x7c00('0x39')](_0x27cde8[_0x7c00('0x26')],_0x27cde8[_0x7c00('0x27')],parseInt(_0x27cde8[_0x7c00('0x28')],0xa)+0x1);_0x27cde8[_0x7c00('0x3a')]();}function handleNotFound(_0x15dd1a){logger[_0x7c00('0x8')](util['format']('Project\x20%s\x20not\x20found',_0x15dd1a[_0x7c00('0x32')]));_0x15dd1a[_0x7c00('0x39')](_0x15dd1a[_0x7c00('0x26')],_0x15dd1a[_0x7c00('0x27')],parseInt(_0x15dd1a[_0x7c00('0x28')],0xa)+0x1);_0x15dd1a[_0x7c00('0x3a')]();}function handleUnpublished(_0x3063f5){logger[_0x7c00('0x8')](util[_0x7c00('0x30')]('Project\x20%s\x20not\x20published',_0x3063f5['arg_1']));_0x3063f5[_0x7c00('0x39')](_0x3063f5[_0x7c00('0x26')],_0x3063f5[_0x7c00('0x27')],parseInt(_0x3063f5[_0x7c00('0x28')],0xa)+0x1);_0x3063f5['close']();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};