Built motion from commit d5e4af8c.|2.6.23
[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 _0xde11=['code','result','evtHangup','response','isUndefined','toString','agicommand\x20not\x20found','finally','callerid','dnid','traverseBFS','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','close','Project\x20%s\x20not\x20found','continueAt','exports','lodash','xml2json','util','../../config/logger','agi','./rpc','./graph','./vertices','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','retry','maxRetry','addVertex','omit','mxCell','hasOwnProperty','isArray','length','source','target','toJson','mxGraphModel','root','production','start','debug','stringify','joinAt','format','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','calleridname','uniqueid','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','agicommand'];(function(_0xbdf6b4,_0x251d4e){var _0x1ba78d=function(_0x24e9f6){while(--_0x24e9f6){_0xbdf6b4['push'](_0xbdf6b4['shift']());}};_0x1ba78d(++_0x251d4e);}(_0xde11,0x1c3));var _0x1de1=function(_0x3b19ea,_0x518b6b){_0x3b19ea=_0x3b19ea-0x0;var _0x40ece9=_0xde11[_0x3b19ea];return _0x40ece9;};'use strict';var _=require(_0x1de1('0x0'));var moment=require('moment');var parser=require(_0x1de1('0x1'));var util=require(_0x1de1('0x2'));var logger=require(_0x1de1('0x3'))(_0x1de1('0x4'));var rpc=require(_0x1de1('0x5'));var mailRpc=require('./mailRpc');var Graph=require(_0x1de1('0x6'));var Vertices=require(_0x1de1('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x1de1('0x8')]()[_0x1de1('0x9')](function(_0x497a62){logger[_0x1de1('0xa')](_0x1de1('0xb'),_0x497a62[_0x1de1('0xc')]);return[];});}function addVertex(_0x48b4da,_0xc533de,_0x1a2caf){_0xc533de['agicommand']=_0x1a2caf;if(_0xc533de['hasOwnProperty'](_0x1de1('0xd'))){_0xc533de[_0x1de1('0xe')]=parseInt(_0xc533de['retry'],0xa);}_0x48b4da[_0x1de1('0xf')](_[_0x1de1('0x10')](_0xc533de,_0x1de1('0x11')));}function initGraph(_0x33629c,_0x484abf){var _0x202176=new Graph();for(var _0x3f723d in _0x33629c){if(_0x33629c[_0x1de1('0x12')](_0x3f723d)){if(_[_0x1de1('0x13')](_0x33629c[_0x3f723d])){for(var _0xd6f6cc=0x0;_0xd6f6cc<_0x33629c[_0x3f723d][_0x1de1('0x14')];_0xd6f6cc+=0x1){addVertex(_0x202176,_0x33629c[_0x3f723d][_0xd6f6cc],_0x3f723d);}}else{addVertex(_0x202176,_0x33629c[_0x3f723d],_0x3f723d);}}}for(var _0x185aed=0x0;_0x185aed<_0x484abf['length'];_0x185aed+=0x1){if(_0x484abf[_0x185aed][_0x1de1('0x15')]&&_0x484abf[_0x185aed][_0x1de1('0x16')]){_0x202176['addEdge'](_0x484abf[_0x185aed]['source'],_0x484abf[_0x185aed][_0x1de1('0x16')],_0x484abf[_0x185aed]['value']);}}return _0x202176;}function getRoot(_0x270e20){return parser[_0x1de1('0x17')](_0x270e20,{'object':!![]})[_0x1de1('0x18')][_0x1de1('0x19')];}function inspect(_0x70c1b){return util['inspect'](_0x70c1b,{'showHidden':![],'depth':null});}function initialize(_0x102761,_0x7bb4f3){var _0x919648=getRoot(_0x102761[_0x1de1('0x1a')]);if(!_0x919648||!_0x919648[_0x1de1('0x1b')])return;var _0x534ef4,_0xc184cf,_0x21e2f4;logger[_0x1de1('0x1c')]('root',JSON[_0x1de1('0x1d')](_0x919648,null,0x2));_0x7bb4f3[_0x1de1('0x1e')]=moment()[_0x1de1('0x1f')](_0x1de1('0x20'));_0x534ef4=initGraph(_[_0x1de1('0x10')](_0x919648,_0x1de1('0x11')),_0x919648[_0x1de1('0x11')]);_0xc184cf=new Vertices(_0x7bb4f3,rpc,mailRpc);logger[_0x1de1('0x21')](util['format'](_0x1de1('0x22'),_0x7bb4f3['arg_1'],_0x7bb4f3[_0x1de1('0x23')],_0x7bb4f3['callerid'],_0x7bb4f3['dnid'],_0x7bb4f3[_0x1de1('0x24')]));_0x534ef4['traverseBFS'](_0x919648[_0x1de1('0x1b')]['id'],function(_0x406451){try{_0x406451=_0xc184cf[_0x1de1('0x25')](_0x406451);logger[_0x1de1('0x1c')](_0x1de1('0x26'),JSON[_0x1de1('0x1d')](_0x406451,null,0x2));if(_0x406451['agicommand']===_0x1de1('0x27')){logger[_0x1de1('0x21')](_0x1de1('0x28'));_0x7bb4f3[_0x1de1('0x29')]=_0x406451[_0x1de1('0x29')]||_0x7bb4f3[_0x1de1('0x29')];_0x7bb4f3[_0x1de1('0x2a')]=_0x406451[_0x1de1('0x2a')];_0x7bb4f3[_0x1de1('0x2b')]=_0x406451['priority']?_0x406451[_0x1de1('0x2b')]-0x1:0x1;return null;}else if(_0x406451&&_0xc184cf[_0x406451[_0x1de1('0x2c')]]){_0x21e2f4=_0xc184cf[_0x406451[_0x1de1('0x2c')]](_0x406451);logger[_0x1de1('0x21')]('response',JSON[_0x1de1('0x1d')](_0x21e2f4,null,0x2));if(_0x21e2f4&&_0x21e2f4[_0x1de1('0x2d')]===AGI_CODE_SUCCESS&&_0x21e2f4[_0x1de1('0x2e')]!==AGI_RESULT_ERROR&&!_0x7bb4f3[_0x1de1('0x2f')]){logger['debug'](_0x1de1('0x30'),inspect(_0x21e2f4));return _[_0x1de1('0x31')](_0x21e2f4[_0x1de1('0x2e')])?null:_0x21e2f4['result'][_0x1de1('0x32')]();}else{logger[_0x1de1('0xa')](_0x1de1('0x30'),inspect(_0x21e2f4));return null;}}else{logger[_0x1de1('0xa')](_0x1de1('0x33'));return null;}}catch(_0x42d25f){logger[_0x1de1('0xa')](_0x42d25f[_0x1de1('0xc')]);return null;}});if(_0x919648[_0x1de1('0x34')]){logger[_0x1de1('0x21')](util[_0x1de1('0x1f')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x7bb4f3['arg_1'],_0x7bb4f3[_0x1de1('0x23')],_0x7bb4f3[_0x1de1('0x35')],_0x7bb4f3[_0x1de1('0x36')],_0x7bb4f3['uniqueid']));_0x534ef4[_0x1de1('0x37')](_0x919648[_0x1de1('0x34')]['id'],function(_0x46e4a5){try{_0x46e4a5=_0xc184cf[_0x1de1('0x25')](_0x46e4a5);logger[_0x1de1('0x1c')](_0x1de1('0x26'),JSON[_0x1de1('0x1d')](_0x46e4a5,null,0x2));if(_0x46e4a5&&_0xc184cf[_0x46e4a5[_0x1de1('0x2c')]]){_0x21e2f4=_0xc184cf[_0x46e4a5[_0x1de1('0x2c')]](_0x46e4a5);if(_0x21e2f4){logger[_0x1de1('0x1c')](_0x1de1('0x30'),inspect(_0x21e2f4));return _['isUndefined'](_0x21e2f4[_0x1de1('0x2e')])?null:_0x21e2f4['result']['toString']();}else{logger['error'](_0x1de1('0x30'),inspect(_0x21e2f4));return null;}}else{logger[_0x1de1('0xa')]('agicommand\x20not\x20found');return null;}}catch(_0x33142e){logger[_0x1de1('0xa')](_0x33142e[_0x1de1('0xc')]);return null;}});}logger['info'](util[_0x1de1('0x1f')](_0x1de1('0x38'),_0x7bb4f3[_0x1de1('0x39')],_0x7bb4f3[_0x1de1('0x23')],_0x7bb4f3['callerid'],_0x7bb4f3[_0x1de1('0x36')],_0x7bb4f3['uniqueid']));logger['info'](util[_0x1de1('0x1f')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x7bb4f3[_0x1de1('0x29')],_0x7bb4f3[_0x1de1('0x2a')],parseInt(_0x7bb4f3[_0x1de1('0x2b')],0xa)+0x1));_0x7bb4f3['continueAt'](_0x7bb4f3[_0x1de1('0x29')],_0x7bb4f3['extension'],parseInt(_0x7bb4f3[_0x1de1('0x2b')],0xa)+0x1);_0x7bb4f3[_0x1de1('0x3a')]();}function handleNotFound(_0x5d97d2){logger[_0x1de1('0xa')](util[_0x1de1('0x1f')](_0x1de1('0x3b'),_0x5d97d2['arg_1']));_0x5d97d2[_0x1de1('0x3c')](_0x5d97d2[_0x1de1('0x29')],_0x5d97d2[_0x1de1('0x2a')],parseInt(_0x5d97d2[_0x1de1('0x2b')],0xa)+0x1);_0x5d97d2[_0x1de1('0x3a')]();}function handleUnpublished(_0x22136e){logger[_0x1de1('0xa')](util[_0x1de1('0x1f')]('Project\x20%s\x20not\x20published',_0x22136e['arg_1']));_0x22136e[_0x1de1('0x3c')](_0x22136e[_0x1de1('0x29')],_0x22136e['extension'],parseInt(_0x22136e[_0x1de1('0x2b')],0xa)+0x1);_0x22136e[_0x1de1('0x3a')]();}module[_0x1de1('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};