Built motion from commit da617fac.|2.6.6
[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 _0xcfb3=['calleridname','callerid','dnid','uniqueid','traverseBFS','clear','debug','gotoc\x20block\x20stop\x20traverse\x20BFS','context','priority','response','code','result','evtHangup','isUndefined','toString','agicommand\x20not\x20found','finally','stack','[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','extension','Project\x20%s\x20not\x20found','close','Project\x20%s\x20not\x20published','continueAt','exports','lodash','moment','xml2json','agi','./mailRpc','./graph','getSquareProjects','catch','error','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','length','target','addEdge','source','value','toJson','mxGraphModel','inspect','start','root','stringify','format','YYYY-MM-DD\x20HH:mm:ss','info','arg_1'];(function(_0x3d58fb,_0xef01de){var _0x301a03=function(_0x31c1eb){while(--_0x31c1eb){_0x3d58fb['push'](_0x3d58fb['shift']());}};_0x301a03(++_0xef01de);}(_0xcfb3,0x1b1));var _0x3cfb=function(_0x5c97ac,_0x525764){_0x5c97ac=_0x5c97ac-0x0;var _0x1f447e=_0xcfb3[_0x5c97ac];return _0x1f447e;};'use strict';var _=require(_0x3cfb('0x0'));var moment=require(_0x3cfb('0x1'));var parser=require(_0x3cfb('0x2'));var util=require('util');var logger=require('../../config/logger')(_0x3cfb('0x3'));var rpc=require('./rpc');var mailRpc=require(_0x3cfb('0x4'));var Graph=require(_0x3cfb('0x5'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x3cfb('0x6')]()[_0x3cfb('0x7')](function(_0x3af3a8){logger[_0x3cfb('0x8')]('Unable\x20to\x20download\x20CallySquare\x20projects',_0x3af3a8['stack']);return[];});}function addVertex(_0x380fcb,_0x5109a7,_0x1943be){_0x5109a7[_0x3cfb('0x9')]=_0x1943be;if(_0x5109a7[_0x3cfb('0xa')](_0x3cfb('0xb'))){_0x5109a7[_0x3cfb('0xc')]=parseInt(_0x5109a7[_0x3cfb('0xb')],0xa);}_0x380fcb[_0x3cfb('0xd')](_[_0x3cfb('0xe')](_0x5109a7,_0x3cfb('0xf')));}function initGraph(_0x3b1102,_0x5c4dec){var _0x54836f=new Graph();for(var _0x5a27e5 in _0x3b1102){if(_0x3b1102[_0x3cfb('0xa')](_0x5a27e5)){if(_['isArray'](_0x3b1102[_0x5a27e5])){for(var _0x17771d=0x0;_0x17771d<_0x3b1102[_0x5a27e5][_0x3cfb('0x10')];_0x17771d+=0x1){addVertex(_0x54836f,_0x3b1102[_0x5a27e5][_0x17771d],_0x5a27e5);}}else{addVertex(_0x54836f,_0x3b1102[_0x5a27e5],_0x5a27e5);}}}for(var _0x30026b=0x0;_0x30026b<_0x5c4dec[_0x3cfb('0x10')];_0x30026b+=0x1){if(_0x5c4dec[_0x30026b]['source']&&_0x5c4dec[_0x30026b][_0x3cfb('0x11')]){_0x54836f[_0x3cfb('0x12')](_0x5c4dec[_0x30026b][_0x3cfb('0x13')],_0x5c4dec[_0x30026b][_0x3cfb('0x11')],_0x5c4dec[_0x30026b][_0x3cfb('0x14')]);}}return _0x54836f;}function getRoot(_0x1c5b0d){return parser[_0x3cfb('0x15')](_0x1c5b0d,{'object':!![]})[_0x3cfb('0x16')]['root'];}function inspect(_0x4d6236){return util[_0x3cfb('0x17')](_0x4d6236,{'showHidden':![],'depth':null});}function initialize(_0x43684b,_0x48d803){var _0x1d46da=getRoot(_0x43684b['production']);if(!_0x1d46da||!_0x1d46da[_0x3cfb('0x18')])return;var _0x293ea4,_0x251826,_0x55a1b1;logger['debug'](_0x3cfb('0x19'),JSON[_0x3cfb('0x1a')](_0x1d46da,null,0x2));_0x48d803['joinAt']=moment()[_0x3cfb('0x1b')](_0x3cfb('0x1c'));_0x293ea4=initGraph(_[_0x3cfb('0xe')](_0x1d46da,_0x3cfb('0xf')),_0x1d46da[_0x3cfb('0xf')]);_0x251826=new Vertices(_0x48d803,rpc,mailRpc);logger[_0x3cfb('0x1d')](util[_0x3cfb('0x1b')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x48d803[_0x3cfb('0x1e')],_0x48d803[_0x3cfb('0x1f')],_0x48d803[_0x3cfb('0x20')],_0x48d803[_0x3cfb('0x21')],_0x48d803[_0x3cfb('0x22')]));_0x293ea4[_0x3cfb('0x23')](_0x1d46da[_0x3cfb('0x18')]['id'],function(_0x4875a5){try{_0x4875a5=_0x251826[_0x3cfb('0x24')](_0x4875a5);logger[_0x3cfb('0x25')]('vertex',JSON[_0x3cfb('0x1a')](_0x4875a5,null,0x2));if(_0x4875a5[_0x3cfb('0x9')]==='gotoc'){logger['info'](_0x3cfb('0x26'));_0x48d803[_0x3cfb('0x27')]=_0x4875a5['context']||_0x48d803[_0x3cfb('0x27')];_0x48d803['extension']=_0x4875a5['extension'];_0x48d803[_0x3cfb('0x28')]=_0x4875a5[_0x3cfb('0x28')]?_0x4875a5[_0x3cfb('0x28')]-0x1:0x1;return null;}else if(_0x4875a5&&_0x251826[_0x4875a5[_0x3cfb('0x9')]]){_0x55a1b1=_0x251826[_0x4875a5[_0x3cfb('0x9')]](_0x4875a5);logger['info'](_0x3cfb('0x29'),JSON[_0x3cfb('0x1a')](_0x55a1b1,null,0x2));if(_0x55a1b1&&_0x55a1b1[_0x3cfb('0x2a')]===AGI_CODE_SUCCESS&&_0x55a1b1[_0x3cfb('0x2b')]!==AGI_RESULT_ERROR&&!_0x48d803[_0x3cfb('0x2c')]){logger[_0x3cfb('0x25')](_0x3cfb('0x29'),inspect(_0x55a1b1));return _[_0x3cfb('0x2d')](_0x55a1b1[_0x3cfb('0x2b')])?null:_0x55a1b1[_0x3cfb('0x2b')][_0x3cfb('0x2e')]();}else{logger['error']('response',inspect(_0x55a1b1));return null;}}else{logger[_0x3cfb('0x8')](_0x3cfb('0x2f'));return null;}}catch(_0x13d6f0){logger[_0x3cfb('0x8')](_0x13d6f0['stack']);return null;}});if(_0x1d46da[_0x3cfb('0x30')]){logger[_0x3cfb('0x1d')](util[_0x3cfb('0x1b')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x48d803['arg_1'],_0x48d803[_0x3cfb('0x1f')],_0x48d803[_0x3cfb('0x20')],_0x48d803[_0x3cfb('0x21')],_0x48d803[_0x3cfb('0x22')]));_0x293ea4[_0x3cfb('0x23')](_0x1d46da['finally']['id'],function(_0x53139c){try{_0x53139c=_0x251826[_0x3cfb('0x24')](_0x53139c);logger[_0x3cfb('0x25')]('vertex',JSON[_0x3cfb('0x1a')](_0x53139c,null,0x2));if(_0x53139c&&_0x251826[_0x53139c[_0x3cfb('0x9')]]){_0x55a1b1=_0x251826[_0x53139c[_0x3cfb('0x9')]](_0x53139c);if(_0x55a1b1){logger[_0x3cfb('0x25')](_0x3cfb('0x29'),inspect(_0x55a1b1));return _[_0x3cfb('0x2d')](_0x55a1b1['result'])?null:_0x55a1b1[_0x3cfb('0x2b')][_0x3cfb('0x2e')]();}else{logger[_0x3cfb('0x8')](_0x3cfb('0x29'),inspect(_0x55a1b1));return null;}}else{logger[_0x3cfb('0x8')](_0x3cfb('0x2f'));return null;}}catch(_0x3b09ac){logger[_0x3cfb('0x8')](_0x3b09ac[_0x3cfb('0x31')]);return null;}});}logger[_0x3cfb('0x1d')](util[_0x3cfb('0x1b')](_0x3cfb('0x32'),_0x48d803[_0x3cfb('0x1e')],_0x48d803[_0x3cfb('0x1f')],_0x48d803['callerid'],_0x48d803[_0x3cfb('0x21')],_0x48d803[_0x3cfb('0x22')]));logger[_0x3cfb('0x1d')](util[_0x3cfb('0x1b')](_0x3cfb('0x33'),_0x48d803[_0x3cfb('0x27')],_0x48d803[_0x3cfb('0x34')],parseInt(_0x48d803['priority'],0xa)+0x1));_0x48d803['continueAt'](_0x48d803['context'],_0x48d803[_0x3cfb('0x34')],parseInt(_0x48d803[_0x3cfb('0x28')],0xa)+0x1);_0x48d803['close']();}function handleNotFound(_0x597821){logger[_0x3cfb('0x8')](util[_0x3cfb('0x1b')](_0x3cfb('0x35'),_0x597821['arg_1']));_0x597821['continueAt'](_0x597821['context'],_0x597821['extension'],parseInt(_0x597821[_0x3cfb('0x28')],0xa)+0x1);_0x597821[_0x3cfb('0x36')]();}function handleUnpublished(_0x5d446a){logger[_0x3cfb('0x8')](util[_0x3cfb('0x1b')](_0x3cfb('0x37'),_0x5d446a[_0x3cfb('0x1e')]));_0x5d446a[_0x3cfb('0x38')](_0x5d446a[_0x3cfb('0x27')],_0x5d446a[_0x3cfb('0x34')],parseInt(_0x5d446a[_0x3cfb('0x28')],0xa)+0x1);_0x5d446a['close']();}module[_0x3cfb('0x39')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};