Built motion from commit eddce310.|2.6.12
[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 _0x98d4=['agi','./rpc','./mailRpc','./graph','./vertices','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','addVertex','omit','mxCell','length','target','addEdge','value','toJson','mxGraphModel','root','inspect','production','start','debug','stringify','format','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','dnid','uniqueid','traverseBFS','clear','vertex','gotoc','info','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','finally','calleridname','isUndefined','toString','agicommand\x20not\x20found','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','close','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','exports','lodash','moment','xml2json','util','../../config/logger'];(function(_0x3045dd,_0x3de00d){var _0x39f13c=function(_0xe7a4fa){while(--_0xe7a4fa){_0x3045dd['push'](_0x3045dd['shift']());}};_0x39f13c(++_0x3de00d);}(_0x98d4,0x169));var _0x498d=function(_0x32f9c2,_0x195191){_0x32f9c2=_0x32f9c2-0x0;var _0x5c2949=_0x98d4[_0x32f9c2];return _0x5c2949;};'use strict';var _=require(_0x498d('0x0'));var moment=require(_0x498d('0x1'));var parser=require(_0x498d('0x2'));var util=require(_0x498d('0x3'));var logger=require(_0x498d('0x4'))(_0x498d('0x5'));var rpc=require(_0x498d('0x6'));var mailRpc=require(_0x498d('0x7'));var Graph=require(_0x498d('0x8'));var Vertices=require(_0x498d('0x9'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()[_0x498d('0xa')](function(_0x253f42){logger[_0x498d('0xb')](_0x498d('0xc'),_0x253f42[_0x498d('0xd')]);return[];});}function addVertex(_0x25f49b,_0x548c4b,_0x26f0db){_0x548c4b[_0x498d('0xe')]=_0x26f0db;if(_0x548c4b[_0x498d('0xf')](_0x498d('0x10'))){_0x548c4b['maxRetry']=parseInt(_0x548c4b[_0x498d('0x10')],0xa);}_0x25f49b[_0x498d('0x11')](_[_0x498d('0x12')](_0x548c4b,_0x498d('0x13')));}function initGraph(_0x524007,_0x377ce0){var _0x5f46dd=new Graph();for(var _0x42498d in _0x524007){if(_0x524007[_0x498d('0xf')](_0x42498d)){if(_['isArray'](_0x524007[_0x42498d])){for(var _0x129ee8=0x0;_0x129ee8<_0x524007[_0x42498d][_0x498d('0x14')];_0x129ee8+=0x1){addVertex(_0x5f46dd,_0x524007[_0x42498d][_0x129ee8],_0x42498d);}}else{addVertex(_0x5f46dd,_0x524007[_0x42498d],_0x42498d);}}}for(var _0x4ac9c1=0x0;_0x4ac9c1<_0x377ce0[_0x498d('0x14')];_0x4ac9c1+=0x1){if(_0x377ce0[_0x4ac9c1]['source']&&_0x377ce0[_0x4ac9c1][_0x498d('0x15')]){_0x5f46dd[_0x498d('0x16')](_0x377ce0[_0x4ac9c1]['source'],_0x377ce0[_0x4ac9c1][_0x498d('0x15')],_0x377ce0[_0x4ac9c1][_0x498d('0x17')]);}}return _0x5f46dd;}function getRoot(_0x1530b2){return parser[_0x498d('0x18')](_0x1530b2,{'object':!![]})[_0x498d('0x19')][_0x498d('0x1a')];}function inspect(_0xd04c63){return util[_0x498d('0x1b')](_0xd04c63,{'showHidden':![],'depth':null});}function initialize(_0x908de4,_0x45c416){var _0x57643e=getRoot(_0x908de4[_0x498d('0x1c')]);if(!_0x57643e||!_0x57643e[_0x498d('0x1d')])return;var _0x214fb9,_0xdedd34,_0x133689;logger[_0x498d('0x1e')](_0x498d('0x1a'),JSON[_0x498d('0x1f')](_0x57643e,null,0x2));_0x45c416['joinAt']=moment()[_0x498d('0x20')]('YYYY-MM-DD\x20HH:mm:ss');_0x214fb9=initGraph(_['omit'](_0x57643e,'mxCell'),_0x57643e['mxCell']);_0xdedd34=new Vertices(_0x45c416,rpc,mailRpc);logger['info'](util[_0x498d('0x20')](_0x498d('0x21'),_0x45c416[_0x498d('0x22')],_0x45c416['calleridname'],_0x45c416[_0x498d('0x23')],_0x45c416[_0x498d('0x24')],_0x45c416[_0x498d('0x25')]));_0x214fb9[_0x498d('0x26')](_0x57643e[_0x498d('0x1d')]['id'],function(_0x26cea9){try{_0x26cea9=_0xdedd34[_0x498d('0x27')](_0x26cea9);logger[_0x498d('0x1e')](_0x498d('0x28'),JSON[_0x498d('0x1f')](_0x26cea9,null,0x2));if(_0x26cea9['agicommand']===_0x498d('0x29')){logger[_0x498d('0x2a')](_0x498d('0x2b'));_0x45c416[_0x498d('0x2c')]=_0x26cea9['context']||_0x45c416[_0x498d('0x2c')];_0x45c416[_0x498d('0x2d')]=_0x26cea9[_0x498d('0x2d')];_0x45c416['priority']=_0x26cea9['priority']?_0x26cea9[_0x498d('0x2e')]-0x1:0x1;return null;}else if(_0x26cea9&&_0xdedd34[_0x26cea9[_0x498d('0xe')]]){_0x133689=_0xdedd34[_0x26cea9[_0x498d('0xe')]](_0x26cea9);logger[_0x498d('0x2a')](_0x498d('0x2f'),JSON[_0x498d('0x1f')](_0x133689,null,0x2));if(_0x133689&&_0x133689[_0x498d('0x30')]===AGI_CODE_SUCCESS&&_0x133689['result']!==AGI_RESULT_ERROR&&!_0x45c416['evtHangup']){logger[_0x498d('0x1e')](_0x498d('0x2f'),inspect(_0x133689));return _['isUndefined'](_0x133689[_0x498d('0x31')])?null:_0x133689[_0x498d('0x31')]['toString']();}else{logger['error']('response',inspect(_0x133689));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x37b2c7){logger[_0x498d('0xb')](_0x37b2c7[_0x498d('0xd')]);return null;}});if(_0x57643e[_0x498d('0x32')]){logger[_0x498d('0x2a')](util[_0x498d('0x20')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x45c416[_0x498d('0x22')],_0x45c416[_0x498d('0x33')],_0x45c416[_0x498d('0x23')],_0x45c416[_0x498d('0x24')],_0x45c416[_0x498d('0x25')]));_0x214fb9[_0x498d('0x26')](_0x57643e[_0x498d('0x32')]['id'],function(_0xa5176d){try{_0xa5176d=_0xdedd34['clear'](_0xa5176d);logger[_0x498d('0x1e')]('vertex',JSON[_0x498d('0x1f')](_0xa5176d,null,0x2));if(_0xa5176d&&_0xdedd34[_0xa5176d[_0x498d('0xe')]]){_0x133689=_0xdedd34[_0xa5176d['agicommand']](_0xa5176d);if(_0x133689){logger[_0x498d('0x1e')](_0x498d('0x2f'),inspect(_0x133689));return _[_0x498d('0x34')](_0x133689['result'])?null:_0x133689[_0x498d('0x31')][_0x498d('0x35')]();}else{logger['error'](_0x498d('0x2f'),inspect(_0x133689));return null;}}else{logger[_0x498d('0xb')](_0x498d('0x36'));return null;}}catch(_0x4d76a3){logger[_0x498d('0xb')](_0x4d76a3[_0x498d('0xd')]);return null;}});}logger[_0x498d('0x2a')](util[_0x498d('0x20')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x45c416[_0x498d('0x22')],_0x45c416[_0x498d('0x33')],_0x45c416[_0x498d('0x23')],_0x45c416[_0x498d('0x24')],_0x45c416[_0x498d('0x25')]));logger[_0x498d('0x2a')](util[_0x498d('0x20')](_0x498d('0x37'),_0x45c416['context'],_0x45c416['extension'],parseInt(_0x45c416[_0x498d('0x2e')],0xa)+0x1));_0x45c416[_0x498d('0x38')](_0x45c416[_0x498d('0x2c')],_0x45c416['extension'],parseInt(_0x45c416['priority'],0xa)+0x1);_0x45c416[_0x498d('0x39')]();}function handleNotFound(_0x56c81e){logger[_0x498d('0xb')](util[_0x498d('0x20')](_0x498d('0x3a'),_0x56c81e[_0x498d('0x22')]));_0x56c81e[_0x498d('0x38')](_0x56c81e['context'],_0x56c81e[_0x498d('0x2d')],parseInt(_0x56c81e['priority'],0xa)+0x1);_0x56c81e[_0x498d('0x39')]();}function handleUnpublished(_0x208437){logger['error'](util['format'](_0x498d('0x3b'),_0x208437[_0x498d('0x22')]));_0x208437['continueAt'](_0x208437['context'],_0x208437[_0x498d('0x2d')],parseInt(_0x208437['priority'],0xa)+0x1);_0x208437[_0x498d('0x39')]();}module[_0x498d('0x3c')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};