Built motion from commit 449495f6.|2.6.27
[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 _0xdd25=['gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','evtHangup','toString','error','agicommand\x20not\x20found','finally','isUndefined','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','close','Project\x20%s\x20not\x20found','Project\x20%s\x20not\x20published','moment','util','../../config/logger','agi','./rpc','./graph','./vertices','catch','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','maxRetry','retry','omit','mxCell','isArray','length','source','target','value','mxGraphModel','root','production','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','arg_1','calleridname','callerid','dnid','uniqueid','traverseBFS','start','clear','debug','vertex','stringify'];(function(_0x4a869e,_0x350c89){var _0x54ae70=function(_0x29f47c){while(--_0x29f47c){_0x4a869e['push'](_0x4a869e['shift']());}};_0x54ae70(++_0x350c89);}(_0xdd25,0x175));var _0x5dd2=function(_0x4982a3,_0x28f227){_0x4982a3=_0x4982a3-0x0;var _0x47c9b2=_0xdd25[_0x4982a3];return _0x47c9b2;};'use strict';var _=require('lodash');var moment=require(_0x5dd2('0x0'));var parser=require('xml2json');var util=require(_0x5dd2('0x1'));var logger=require(_0x5dd2('0x2'))(_0x5dd2('0x3'));var rpc=require(_0x5dd2('0x4'));var mailRpc=require('./mailRpc');var Graph=require(_0x5dd2('0x5'));var Vertices=require(_0x5dd2('0x6'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc['getSquareProjects']()[_0x5dd2('0x7')](function(_0x1ba524){logger['error'](_0x5dd2('0x8'),_0x1ba524[_0x5dd2('0x9')]);return[];});}function addVertex(_0x3ded49,_0x584598,_0x37b393){_0x584598[_0x5dd2('0xa')]=_0x37b393;if(_0x584598[_0x5dd2('0xb')]('retry')){_0x584598[_0x5dd2('0xc')]=parseInt(_0x584598[_0x5dd2('0xd')],0xa);}_0x3ded49['addVertex'](_[_0x5dd2('0xe')](_0x584598,_0x5dd2('0xf')));}function initGraph(_0x4369de,_0x10b94a){var _0x4cdaa8=new Graph();for(var _0x39cd9c in _0x4369de){if(_0x4369de['hasOwnProperty'](_0x39cd9c)){if(_[_0x5dd2('0x10')](_0x4369de[_0x39cd9c])){for(var _0x239bfe=0x0;_0x239bfe<_0x4369de[_0x39cd9c][_0x5dd2('0x11')];_0x239bfe+=0x1){addVertex(_0x4cdaa8,_0x4369de[_0x39cd9c][_0x239bfe],_0x39cd9c);}}else{addVertex(_0x4cdaa8,_0x4369de[_0x39cd9c],_0x39cd9c);}}}for(var _0x4f06fc=0x0;_0x4f06fc<_0x10b94a[_0x5dd2('0x11')];_0x4f06fc+=0x1){if(_0x10b94a[_0x4f06fc][_0x5dd2('0x12')]&&_0x10b94a[_0x4f06fc]['target']){_0x4cdaa8['addEdge'](_0x10b94a[_0x4f06fc][_0x5dd2('0x12')],_0x10b94a[_0x4f06fc][_0x5dd2('0x13')],_0x10b94a[_0x4f06fc][_0x5dd2('0x14')]);}}return _0x4cdaa8;}function getRoot(_0x57298b){return parser['toJson'](_0x57298b,{'object':!![]})[_0x5dd2('0x15')][_0x5dd2('0x16')];}function inspect(_0x1fb75b){return util['inspect'](_0x1fb75b,{'showHidden':![],'depth':null});}function initialize(_0x245fd4,_0x46a8ba){var _0x3b23d9=getRoot(_0x245fd4[_0x5dd2('0x17')]);if(!_0x3b23d9||!_0x3b23d9['start'])return;var _0x51752d,_0x19fd6f,_0x4c0019;logger['debug'](_0x5dd2('0x16'),JSON['stringify'](_0x3b23d9,null,0x2));_0x46a8ba[_0x5dd2('0x18')]=moment()[_0x5dd2('0x19')](_0x5dd2('0x1a'));_0x51752d=initGraph(_['omit'](_0x3b23d9,'mxCell'),_0x3b23d9['mxCell']);_0x19fd6f=new Vertices(_0x46a8ba,rpc,mailRpc);logger[_0x5dd2('0x1b')](util[_0x5dd2('0x19')](_0x5dd2('0x1c'),_0x46a8ba[_0x5dd2('0x1d')],_0x46a8ba[_0x5dd2('0x1e')],_0x46a8ba[_0x5dd2('0x1f')],_0x46a8ba[_0x5dd2('0x20')],_0x46a8ba[_0x5dd2('0x21')]));_0x51752d[_0x5dd2('0x22')](_0x3b23d9[_0x5dd2('0x23')]['id'],function(_0x1c9fd3){try{_0x1c9fd3=_0x19fd6f[_0x5dd2('0x24')](_0x1c9fd3);logger[_0x5dd2('0x25')](_0x5dd2('0x26'),JSON[_0x5dd2('0x27')](_0x1c9fd3,null,0x2));if(_0x1c9fd3[_0x5dd2('0xa')]===_0x5dd2('0x28')){logger[_0x5dd2('0x1b')](_0x5dd2('0x29'));_0x46a8ba['context']=_0x1c9fd3[_0x5dd2('0x2a')]||_0x46a8ba[_0x5dd2('0x2a')];_0x46a8ba[_0x5dd2('0x2b')]=_0x1c9fd3[_0x5dd2('0x2b')];_0x46a8ba['priority']=_0x1c9fd3[_0x5dd2('0x2c')]?_0x1c9fd3[_0x5dd2('0x2c')]-0x1:0x1;return null;}else if(_0x1c9fd3&&_0x19fd6f[_0x1c9fd3[_0x5dd2('0xa')]]){_0x4c0019=_0x19fd6f[_0x1c9fd3[_0x5dd2('0xa')]](_0x1c9fd3);logger[_0x5dd2('0x1b')](_0x5dd2('0x2d'),JSON[_0x5dd2('0x27')](_0x4c0019,null,0x2));if(_0x4c0019&&_0x4c0019[_0x5dd2('0x2e')]===AGI_CODE_SUCCESS&&_0x4c0019[_0x5dd2('0x2f')]!==AGI_RESULT_ERROR&&!_0x46a8ba[_0x5dd2('0x30')]){logger['debug'](_0x5dd2('0x2d'),inspect(_0x4c0019));return _['isUndefined'](_0x4c0019[_0x5dd2('0x2f')])?null:_0x4c0019[_0x5dd2('0x2f')][_0x5dd2('0x31')]();}else{logger[_0x5dd2('0x32')]('response',inspect(_0x4c0019));return null;}}else{logger[_0x5dd2('0x32')](_0x5dd2('0x33'));return null;}}catch(_0x22fd40){logger[_0x5dd2('0x32')](_0x22fd40[_0x5dd2('0x9')]);return null;}});if(_0x3b23d9[_0x5dd2('0x34')]){logger[_0x5dd2('0x1b')](util[_0x5dd2('0x19')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x46a8ba[_0x5dd2('0x1d')],_0x46a8ba['calleridname'],_0x46a8ba[_0x5dd2('0x1f')],_0x46a8ba['dnid'],_0x46a8ba[_0x5dd2('0x21')]));_0x51752d['traverseBFS'](_0x3b23d9[_0x5dd2('0x34')]['id'],function(_0x10f518){try{_0x10f518=_0x19fd6f[_0x5dd2('0x24')](_0x10f518);logger[_0x5dd2('0x25')]('vertex',JSON[_0x5dd2('0x27')](_0x10f518,null,0x2));if(_0x10f518&&_0x19fd6f[_0x10f518['agicommand']]){_0x4c0019=_0x19fd6f[_0x10f518[_0x5dd2('0xa')]](_0x10f518);if(_0x4c0019){logger['debug'](_0x5dd2('0x2d'),inspect(_0x4c0019));return _[_0x5dd2('0x35')](_0x4c0019[_0x5dd2('0x2f')])?null:_0x4c0019[_0x5dd2('0x2f')]['toString']();}else{logger[_0x5dd2('0x32')](_0x5dd2('0x2d'),inspect(_0x4c0019));return null;}}else{logger[_0x5dd2('0x32')](_0x5dd2('0x33'));return null;}}catch(_0x55c1fc){logger[_0x5dd2('0x32')](_0x55c1fc[_0x5dd2('0x9')]);return null;}});}logger[_0x5dd2('0x1b')](util[_0x5dd2('0x19')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x46a8ba[_0x5dd2('0x1d')],_0x46a8ba[_0x5dd2('0x1e')],_0x46a8ba[_0x5dd2('0x1f')],_0x46a8ba['dnid'],_0x46a8ba[_0x5dd2('0x21')]));logger['info'](util[_0x5dd2('0x19')](_0x5dd2('0x36'),_0x46a8ba[_0x5dd2('0x2a')],_0x46a8ba['extension'],parseInt(_0x46a8ba['priority'],0xa)+0x1));_0x46a8ba[_0x5dd2('0x37')](_0x46a8ba[_0x5dd2('0x2a')],_0x46a8ba[_0x5dd2('0x2b')],parseInt(_0x46a8ba['priority'],0xa)+0x1);_0x46a8ba[_0x5dd2('0x38')]();}function handleNotFound(_0x262334){logger[_0x5dd2('0x32')](util[_0x5dd2('0x19')](_0x5dd2('0x39'),_0x262334[_0x5dd2('0x1d')]));_0x262334['continueAt'](_0x262334['context'],_0x262334[_0x5dd2('0x2b')],parseInt(_0x262334[_0x5dd2('0x2c')],0xa)+0x1);_0x262334[_0x5dd2('0x38')]();}function handleUnpublished(_0x2a0daa){logger[_0x5dd2('0x32')](util['format'](_0x5dd2('0x3a'),_0x2a0daa[_0x5dd2('0x1d')]));_0x2a0daa[_0x5dd2('0x37')](_0x2a0daa[_0x5dd2('0x2a')],_0x2a0daa['extension'],parseInt(_0x2a0daa['priority'],0xa)+0x1);_0x2a0daa[_0x5dd2('0x38')]();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};