Built motion from commit 3d3e98f2.|2.6.29
[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 _0x2ef7=['Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','retry','maxRetry','addVertex','omit','mxCell','isArray','length','source','target','addEdge','mxGraphModel','root','inspect','production','start','debug','stringify','format','info','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','traverseBFS','vertex','context','extension','priority','result','evtHangup','response','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','clear','[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','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','lodash','moment','xml2json','util','agi','./rpc','./mailRpc','./graph','./vertices','catch','error'];(function(_0x331c34,_0x4ec4dc){var _0x246192=function(_0x395c1b){while(--_0x395c1b){_0x331c34['push'](_0x331c34['shift']());}};_0x246192(++_0x4ec4dc);}(_0x2ef7,0x6b));var _0x72ef=function(_0x5c099a,_0x3a573f){_0x5c099a=_0x5c099a-0x0;var _0x373d62=_0x2ef7[_0x5c099a];return _0x373d62;};'use strict';var _=require(_0x72ef('0x0'));var moment=require(_0x72ef('0x1'));var parser=require(_0x72ef('0x2'));var util=require(_0x72ef('0x3'));var logger=require('../../config/logger')(_0x72ef('0x4'));var rpc=require(_0x72ef('0x5'));var mailRpc=require(_0x72ef('0x6'));var Graph=require(_0x72ef('0x7'));var Vertices=require(_0x72ef('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()[_0x72ef('0x9')](function(_0x1903e0){logger[_0x72ef('0xa')](_0x72ef('0xb'),_0x1903e0[_0x72ef('0xc')]);return[];});}function addVertex(_0x46309e,_0x2e9e24,_0x43d00d){_0x2e9e24[_0x72ef('0xd')]=_0x43d00d;if(_0x2e9e24['hasOwnProperty'](_0x72ef('0xe'))){_0x2e9e24[_0x72ef('0xf')]=parseInt(_0x2e9e24[_0x72ef('0xe')],0xa);}_0x46309e[_0x72ef('0x10')](_[_0x72ef('0x11')](_0x2e9e24,_0x72ef('0x12')));}function initGraph(_0x499664,_0x41c537){var _0x3b9edd=new Graph();for(var _0x20d6ce in _0x499664){if(_0x499664['hasOwnProperty'](_0x20d6ce)){if(_[_0x72ef('0x13')](_0x499664[_0x20d6ce])){for(var _0x221b96=0x0;_0x221b96<_0x499664[_0x20d6ce][_0x72ef('0x14')];_0x221b96+=0x1){addVertex(_0x3b9edd,_0x499664[_0x20d6ce][_0x221b96],_0x20d6ce);}}else{addVertex(_0x3b9edd,_0x499664[_0x20d6ce],_0x20d6ce);}}}for(var _0x509573=0x0;_0x509573<_0x41c537['length'];_0x509573+=0x1){if(_0x41c537[_0x509573][_0x72ef('0x15')]&&_0x41c537[_0x509573][_0x72ef('0x16')]){_0x3b9edd[_0x72ef('0x17')](_0x41c537[_0x509573]['source'],_0x41c537[_0x509573]['target'],_0x41c537[_0x509573]['value']);}}return _0x3b9edd;}function getRoot(_0x49a33a){return parser['toJson'](_0x49a33a,{'object':!![]})[_0x72ef('0x18')][_0x72ef('0x19')];}function inspect(_0x510aec){return util[_0x72ef('0x1a')](_0x510aec,{'showHidden':![],'depth':null});}function initialize(_0xe96013,_0x56ca10){var _0x496638=getRoot(_0xe96013[_0x72ef('0x1b')]);if(!_0x496638||!_0x496638[_0x72ef('0x1c')])return;var _0x1f52bc,_0x541cc2,_0x323942;logger[_0x72ef('0x1d')](_0x72ef('0x19'),JSON[_0x72ef('0x1e')](_0x496638,null,0x2));_0x56ca10['joinAt']=moment()[_0x72ef('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');_0x1f52bc=initGraph(_[_0x72ef('0x11')](_0x496638,_0x72ef('0x12')),_0x496638['mxCell']);_0x541cc2=new Vertices(_0x56ca10,rpc,mailRpc);logger[_0x72ef('0x20')](util['format'](_0x72ef('0x21'),_0x56ca10[_0x72ef('0x22')],_0x56ca10[_0x72ef('0x23')],_0x56ca10[_0x72ef('0x24')],_0x56ca10[_0x72ef('0x25')],_0x56ca10[_0x72ef('0x26')]));_0x1f52bc[_0x72ef('0x27')](_0x496638[_0x72ef('0x1c')]['id'],function(_0x5e0856){try{_0x5e0856=_0x541cc2['clear'](_0x5e0856);logger['debug'](_0x72ef('0x28'),JSON[_0x72ef('0x1e')](_0x5e0856,null,0x2));if(_0x5e0856[_0x72ef('0xd')]==='gotoc'){logger['info']('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x56ca10[_0x72ef('0x29')]=_0x5e0856['context']||_0x56ca10[_0x72ef('0x29')];_0x56ca10[_0x72ef('0x2a')]=_0x5e0856[_0x72ef('0x2a')];_0x56ca10[_0x72ef('0x2b')]=_0x5e0856[_0x72ef('0x2b')]?_0x5e0856['priority']-0x1:0x1;return null;}else if(_0x5e0856&&_0x541cc2[_0x5e0856[_0x72ef('0xd')]]){_0x323942=_0x541cc2[_0x5e0856[_0x72ef('0xd')]](_0x5e0856);logger[_0x72ef('0x20')]('response',JSON[_0x72ef('0x1e')](_0x323942,null,0x2));if(_0x323942&&_0x323942['code']===AGI_CODE_SUCCESS&&_0x323942[_0x72ef('0x2c')]!==AGI_RESULT_ERROR&&!_0x56ca10[_0x72ef('0x2d')]){logger[_0x72ef('0x1d')](_0x72ef('0x2e'),inspect(_0x323942));return _[_0x72ef('0x2f')](_0x323942[_0x72ef('0x2c')])?null:_0x323942['result'][_0x72ef('0x30')]();}else{logger[_0x72ef('0xa')](_0x72ef('0x2e'),inspect(_0x323942));return null;}}else{logger['error'](_0x72ef('0x31'));return null;}}catch(_0x5eadbe){logger['error'](_0x5eadbe[_0x72ef('0xc')]);return null;}});if(_0x496638[_0x72ef('0x32')]){logger[_0x72ef('0x20')](util[_0x72ef('0x1f')](_0x72ef('0x33'),_0x56ca10['arg_1'],_0x56ca10[_0x72ef('0x23')],_0x56ca10[_0x72ef('0x24')],_0x56ca10['dnid'],_0x56ca10[_0x72ef('0x26')]));_0x1f52bc['traverseBFS'](_0x496638[_0x72ef('0x32')]['id'],function(_0x5d030b){try{_0x5d030b=_0x541cc2[_0x72ef('0x34')](_0x5d030b);logger[_0x72ef('0x1d')](_0x72ef('0x28'),JSON[_0x72ef('0x1e')](_0x5d030b,null,0x2));if(_0x5d030b&&_0x541cc2[_0x5d030b[_0x72ef('0xd')]]){_0x323942=_0x541cc2[_0x5d030b['agicommand']](_0x5d030b);if(_0x323942){logger[_0x72ef('0x1d')](_0x72ef('0x2e'),inspect(_0x323942));return _[_0x72ef('0x2f')](_0x323942[_0x72ef('0x2c')])?null:_0x323942['result'][_0x72ef('0x30')]();}else{logger[_0x72ef('0xa')](_0x72ef('0x2e'),inspect(_0x323942));return null;}}else{logger['error'](_0x72ef('0x31'));return null;}}catch(_0x1ac44e){logger[_0x72ef('0xa')](_0x1ac44e['stack']);return null;}});}logger[_0x72ef('0x20')](util['format'](_0x72ef('0x35'),_0x56ca10['arg_1'],_0x56ca10[_0x72ef('0x23')],_0x56ca10[_0x72ef('0x24')],_0x56ca10[_0x72ef('0x25')],_0x56ca10[_0x72ef('0x26')]));logger[_0x72ef('0x20')](util[_0x72ef('0x1f')](_0x72ef('0x36'),_0x56ca10[_0x72ef('0x29')],_0x56ca10[_0x72ef('0x2a')],parseInt(_0x56ca10[_0x72ef('0x2b')],0xa)+0x1));_0x56ca10[_0x72ef('0x37')](_0x56ca10['context'],_0x56ca10[_0x72ef('0x2a')],parseInt(_0x56ca10[_0x72ef('0x2b')],0xa)+0x1);_0x56ca10[_0x72ef('0x38')]();}function handleNotFound(_0xdd8238){logger['error'](util['format'](_0x72ef('0x39'),_0xdd8238[_0x72ef('0x22')]));_0xdd8238[_0x72ef('0x37')](_0xdd8238[_0x72ef('0x29')],_0xdd8238[_0x72ef('0x2a')],parseInt(_0xdd8238['priority'],0xa)+0x1);_0xdd8238['close']();}function handleUnpublished(_0xbaa992){logger['error'](util[_0x72ef('0x1f')](_0x72ef('0x3a'),_0xbaa992[_0x72ef('0x22')]));_0xbaa992[_0x72ef('0x37')](_0xbaa992['context'],_0xbaa992['extension'],parseInt(_0xbaa992[_0x72ef('0x2b')],0xa)+0x1);_0xbaa992[_0x72ef('0x38')]();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};