Built motion from commit bab6f49e.|2.6.17
[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 _0xdca3=['finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','uniqueid','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','continueAt','close','Project\x20%s\x20not\x20found','exports','lodash','moment','xml2json','util','../../config/logger','./rpc','./mailRpc','./graph','./vertices','getSquareProjects','catch','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','source','target','mxGraphModel','root','inspect','production','start','debug','stringify','format','YYYY-MM-DD\x20HH:mm:ss','info','arg_1','calleridname','callerid','dnid','traverseBFS','clear','vertex','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','evtHangup','isUndefined','result','toString','error'];(function(_0x5cafe3,_0xcf6dce){var _0x6dd484=function(_0x24115e){while(--_0x24115e){_0x5cafe3['push'](_0x5cafe3['shift']());}};_0x6dd484(++_0xcf6dce);}(_0xdca3,0xf8));var _0x3dca=function(_0x18b2ce,_0x591981){_0x18b2ce=_0x18b2ce-0x0;var _0x436702=_0xdca3[_0x18b2ce];return _0x436702;};'use strict';var _=require(_0x3dca('0x0'));var moment=require(_0x3dca('0x1'));var parser=require(_0x3dca('0x2'));var util=require(_0x3dca('0x3'));var logger=require(_0x3dca('0x4'))('agi');var rpc=require(_0x3dca('0x5'));var mailRpc=require(_0x3dca('0x6'));var Graph=require(_0x3dca('0x7'));var Vertices=require(_0x3dca('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x3dca('0x9')]()[_0x3dca('0xa')](function(_0x2ff154){logger['error'](_0x3dca('0xb'),_0x2ff154[_0x3dca('0xc')]);return[];});}function addVertex(_0x5d08aa,_0x3815d7,_0x1c97a3){_0x3815d7[_0x3dca('0xd')]=_0x1c97a3;if(_0x3815d7[_0x3dca('0xe')](_0x3dca('0xf'))){_0x3815d7[_0x3dca('0x10')]=parseInt(_0x3815d7['retry'],0xa);}_0x5d08aa[_0x3dca('0x11')](_[_0x3dca('0x12')](_0x3815d7,_0x3dca('0x13')));}function initGraph(_0xeae36a,_0xab3ceb){var _0x15986e=new Graph();for(var _0x32d863 in _0xeae36a){if(_0xeae36a[_0x3dca('0xe')](_0x32d863)){if(_[_0x3dca('0x14')](_0xeae36a[_0x32d863])){for(var _0x2f942a=0x0;_0x2f942a<_0xeae36a[_0x32d863][_0x3dca('0x15')];_0x2f942a+=0x1){addVertex(_0x15986e,_0xeae36a[_0x32d863][_0x2f942a],_0x32d863);}}else{addVertex(_0x15986e,_0xeae36a[_0x32d863],_0x32d863);}}}for(var _0x529003=0x0;_0x529003<_0xab3ceb[_0x3dca('0x15')];_0x529003+=0x1){if(_0xab3ceb[_0x529003][_0x3dca('0x16')]&&_0xab3ceb[_0x529003][_0x3dca('0x17')]){_0x15986e['addEdge'](_0xab3ceb[_0x529003]['source'],_0xab3ceb[_0x529003][_0x3dca('0x17')],_0xab3ceb[_0x529003]['value']);}}return _0x15986e;}function getRoot(_0x4056b5){return parser['toJson'](_0x4056b5,{'object':!![]})[_0x3dca('0x18')][_0x3dca('0x19')];}function inspect(_0x3e6861){return util[_0x3dca('0x1a')](_0x3e6861,{'showHidden':![],'depth':null});}function initialize(_0x57ad60,_0x251f5a){var _0x469271=getRoot(_0x57ad60[_0x3dca('0x1b')]);if(!_0x469271||!_0x469271[_0x3dca('0x1c')])return;var _0x4a2066,_0x3527c9,_0xbde1ae;logger[_0x3dca('0x1d')](_0x3dca('0x19'),JSON[_0x3dca('0x1e')](_0x469271,null,0x2));_0x251f5a['joinAt']=moment()[_0x3dca('0x1f')](_0x3dca('0x20'));_0x4a2066=initGraph(_[_0x3dca('0x12')](_0x469271,_0x3dca('0x13')),_0x469271[_0x3dca('0x13')]);_0x3527c9=new Vertices(_0x251f5a,rpc,mailRpc);logger[_0x3dca('0x21')](util[_0x3dca('0x1f')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x251f5a[_0x3dca('0x22')],_0x251f5a[_0x3dca('0x23')],_0x251f5a[_0x3dca('0x24')],_0x251f5a[_0x3dca('0x25')],_0x251f5a['uniqueid']));_0x4a2066[_0x3dca('0x26')](_0x469271[_0x3dca('0x1c')]['id'],function(_0x14a405){try{_0x14a405=_0x3527c9[_0x3dca('0x27')](_0x14a405);logger[_0x3dca('0x1d')](_0x3dca('0x28'),JSON['stringify'](_0x14a405,null,0x2));if(_0x14a405[_0x3dca('0xd')]==='gotoc'){logger[_0x3dca('0x21')](_0x3dca('0x29'));_0x251f5a[_0x3dca('0x2a')]=_0x14a405[_0x3dca('0x2a')]||_0x251f5a[_0x3dca('0x2a')];_0x251f5a[_0x3dca('0x2b')]=_0x14a405[_0x3dca('0x2b')];_0x251f5a[_0x3dca('0x2c')]=_0x14a405[_0x3dca('0x2c')]?_0x14a405[_0x3dca('0x2c')]-0x1:0x1;return null;}else if(_0x14a405&&_0x3527c9[_0x14a405[_0x3dca('0xd')]]){_0xbde1ae=_0x3527c9[_0x14a405[_0x3dca('0xd')]](_0x14a405);logger['info'](_0x3dca('0x2d'),JSON[_0x3dca('0x1e')](_0xbde1ae,null,0x2));if(_0xbde1ae&&_0xbde1ae[_0x3dca('0x2e')]===AGI_CODE_SUCCESS&&_0xbde1ae['result']!==AGI_RESULT_ERROR&&!_0x251f5a[_0x3dca('0x2f')]){logger['debug']('response',inspect(_0xbde1ae));return _[_0x3dca('0x30')](_0xbde1ae['result'])?null:_0xbde1ae[_0x3dca('0x31')][_0x3dca('0x32')]();}else{logger[_0x3dca('0x33')](_0x3dca('0x2d'),inspect(_0xbde1ae));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x1dc414){logger['error'](_0x1dc414[_0x3dca('0xc')]);return null;}});if(_0x469271[_0x3dca('0x34')]){logger[_0x3dca('0x21')](util[_0x3dca('0x1f')](_0x3dca('0x35'),_0x251f5a[_0x3dca('0x22')],_0x251f5a['calleridname'],_0x251f5a[_0x3dca('0x24')],_0x251f5a[_0x3dca('0x25')],_0x251f5a[_0x3dca('0x36')]));_0x4a2066['traverseBFS'](_0x469271[_0x3dca('0x34')]['id'],function(_0x557825){try{_0x557825=_0x3527c9[_0x3dca('0x27')](_0x557825);logger[_0x3dca('0x1d')](_0x3dca('0x28'),JSON['stringify'](_0x557825,null,0x2));if(_0x557825&&_0x3527c9[_0x557825[_0x3dca('0xd')]]){_0xbde1ae=_0x3527c9[_0x557825[_0x3dca('0xd')]](_0x557825);if(_0xbde1ae){logger[_0x3dca('0x1d')](_0x3dca('0x2d'),inspect(_0xbde1ae));return _[_0x3dca('0x30')](_0xbde1ae['result'])?null:_0xbde1ae[_0x3dca('0x31')]['toString']();}else{logger[_0x3dca('0x33')]('response',inspect(_0xbde1ae));return null;}}else{logger[_0x3dca('0x33')]('agicommand\x20not\x20found');return null;}}catch(_0x3ca6b9){logger['error'](_0x3ca6b9[_0x3dca('0xc')]);return null;}});}logger['info'](util['format'](_0x3dca('0x37'),_0x251f5a[_0x3dca('0x22')],_0x251f5a[_0x3dca('0x23')],_0x251f5a[_0x3dca('0x24')],_0x251f5a['dnid'],_0x251f5a['uniqueid']));logger['info'](util[_0x3dca('0x1f')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x251f5a[_0x3dca('0x2a')],_0x251f5a[_0x3dca('0x2b')],parseInt(_0x251f5a[_0x3dca('0x2c')],0xa)+0x1));_0x251f5a[_0x3dca('0x38')](_0x251f5a[_0x3dca('0x2a')],_0x251f5a[_0x3dca('0x2b')],parseInt(_0x251f5a[_0x3dca('0x2c')],0xa)+0x1);_0x251f5a[_0x3dca('0x39')]();}function handleNotFound(_0x4d7249){logger['error'](util['format'](_0x3dca('0x3a'),_0x4d7249[_0x3dca('0x22')]));_0x4d7249[_0x3dca('0x38')](_0x4d7249['context'],_0x4d7249[_0x3dca('0x2b')],parseInt(_0x4d7249[_0x3dca('0x2c')],0xa)+0x1);_0x4d7249[_0x3dca('0x39')]();}function handleUnpublished(_0x225947){logger[_0x3dca('0x33')](util['format']('Project\x20%s\x20not\x20published',_0x225947[_0x3dca('0x22')]));_0x225947[_0x3dca('0x38')](_0x225947[_0x3dca('0x2a')],_0x225947[_0x3dca('0x2b')],parseInt(_0x225947[_0x3dca('0x2c')],0xa)+0x1);_0x225947[_0x3dca('0x39')]();}module[_0x3dca('0x3b')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};