Built motion from commit cb845558.|2.6.34
[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 _0xd0e6=['target','toJson','mxGraphModel','root','inspect','production','start','joinAt','format','omit','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','clear','debug','agicommand','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','stringify','code','evtHangup','isUndefined','result','toString','finally','vertex','[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','exports','lodash','moment','xml2json','../../config/logger','agi','./rpc','./graph','getSquareProjects','catch','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','hasOwnProperty','retry','maxRetry','addVertex','mxCell','isArray','length','source','addEdge'];(function(_0x22a4c7,_0x5bfc59){var _0x1a7d98=function(_0x575370){while(--_0x575370){_0x22a4c7['push'](_0x22a4c7['shift']());}};_0x1a7d98(++_0x5bfc59);}(_0xd0e6,0x69));var _0x6d0e=function(_0x465533,_0x56ab66){_0x465533=_0x465533-0x0;var _0x49489b=_0xd0e6[_0x465533];return _0x49489b;};'use strict';var _=require(_0x6d0e('0x0'));var moment=require(_0x6d0e('0x1'));var parser=require(_0x6d0e('0x2'));var util=require('util');var logger=require(_0x6d0e('0x3'))(_0x6d0e('0x4'));var rpc=require(_0x6d0e('0x5'));var mailRpc=require('./mailRpc');var Graph=require(_0x6d0e('0x6'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x6d0e('0x7')]()[_0x6d0e('0x8')](function(_0x320cd2){logger[_0x6d0e('0x9')](_0x6d0e('0xa'),_0x320cd2[_0x6d0e('0xb')]);return[];});}function addVertex(_0x393aa3,_0x1fcfdd,_0x5bc201){_0x1fcfdd['agicommand']=_0x5bc201;if(_0x1fcfdd[_0x6d0e('0xc')](_0x6d0e('0xd'))){_0x1fcfdd[_0x6d0e('0xe')]=parseInt(_0x1fcfdd[_0x6d0e('0xd')],0xa);}_0x393aa3[_0x6d0e('0xf')](_['omit'](_0x1fcfdd,_0x6d0e('0x10')));}function initGraph(_0x4bb412,_0x2ef837){var _0x2903d4=new Graph();for(var _0x5d50ff in _0x4bb412){if(_0x4bb412[_0x6d0e('0xc')](_0x5d50ff)){if(_[_0x6d0e('0x11')](_0x4bb412[_0x5d50ff])){for(var _0x5132df=0x0;_0x5132df<_0x4bb412[_0x5d50ff][_0x6d0e('0x12')];_0x5132df+=0x1){addVertex(_0x2903d4,_0x4bb412[_0x5d50ff][_0x5132df],_0x5d50ff);}}else{addVertex(_0x2903d4,_0x4bb412[_0x5d50ff],_0x5d50ff);}}}for(var _0x4bd73b=0x0;_0x4bd73b<_0x2ef837[_0x6d0e('0x12')];_0x4bd73b+=0x1){if(_0x2ef837[_0x4bd73b][_0x6d0e('0x13')]&&_0x2ef837[_0x4bd73b]['target']){_0x2903d4[_0x6d0e('0x14')](_0x2ef837[_0x4bd73b][_0x6d0e('0x13')],_0x2ef837[_0x4bd73b][_0x6d0e('0x15')],_0x2ef837[_0x4bd73b]['value']);}}return _0x2903d4;}function getRoot(_0x2669cb){return parser[_0x6d0e('0x16')](_0x2669cb,{'object':!![]})[_0x6d0e('0x17')][_0x6d0e('0x18')];}function inspect(_0x41b680){return util[_0x6d0e('0x19')](_0x41b680,{'showHidden':![],'depth':null});}function initialize(_0x4a2079,_0x3477f0){var _0x57379d=getRoot(_0x4a2079[_0x6d0e('0x1a')]);if(!_0x57379d||!_0x57379d[_0x6d0e('0x1b')])return;var _0x1b495a,_0x1ece70,_0xb81d2b;logger['debug'](_0x6d0e('0x18'),JSON['stringify'](_0x57379d,null,0x2));_0x3477f0[_0x6d0e('0x1c')]=moment()[_0x6d0e('0x1d')]('YYYY-MM-DD\x20HH:mm:ss');_0x1b495a=initGraph(_[_0x6d0e('0x1e')](_0x57379d,'mxCell'),_0x57379d['mxCell']);_0x1ece70=new Vertices(_0x3477f0,rpc,mailRpc);logger[_0x6d0e('0x1f')](util[_0x6d0e('0x1d')](_0x6d0e('0x20'),_0x3477f0[_0x6d0e('0x21')],_0x3477f0[_0x6d0e('0x22')],_0x3477f0[_0x6d0e('0x23')],_0x3477f0[_0x6d0e('0x24')],_0x3477f0[_0x6d0e('0x25')]));_0x1b495a[_0x6d0e('0x26')](_0x57379d['start']['id'],function(_0x439343){try{_0x439343=_0x1ece70[_0x6d0e('0x27')](_0x439343);logger[_0x6d0e('0x28')]('vertex',JSON['stringify'](_0x439343,null,0x2));if(_0x439343[_0x6d0e('0x29')]===_0x6d0e('0x2a')){logger[_0x6d0e('0x1f')](_0x6d0e('0x2b'));_0x3477f0[_0x6d0e('0x2c')]=_0x439343[_0x6d0e('0x2c')]||_0x3477f0[_0x6d0e('0x2c')];_0x3477f0[_0x6d0e('0x2d')]=_0x439343['extension'];_0x3477f0['priority']=_0x439343[_0x6d0e('0x2e')]?_0x439343[_0x6d0e('0x2e')]-0x1:0x1;return null;}else if(_0x439343&&_0x1ece70[_0x439343[_0x6d0e('0x29')]]){_0xb81d2b=_0x1ece70[_0x439343[_0x6d0e('0x29')]](_0x439343);logger['info'](_0x6d0e('0x2f'),JSON[_0x6d0e('0x30')](_0xb81d2b,null,0x2));if(_0xb81d2b&&_0xb81d2b[_0x6d0e('0x31')]===AGI_CODE_SUCCESS&&_0xb81d2b['result']!==AGI_RESULT_ERROR&&!_0x3477f0[_0x6d0e('0x32')]){logger['debug']('response',inspect(_0xb81d2b));return _[_0x6d0e('0x33')](_0xb81d2b[_0x6d0e('0x34')])?null:_0xb81d2b[_0x6d0e('0x34')][_0x6d0e('0x35')]();}else{logger[_0x6d0e('0x9')](_0x6d0e('0x2f'),inspect(_0xb81d2b));return null;}}else{logger[_0x6d0e('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x27dbad){logger[_0x6d0e('0x9')](_0x27dbad['stack']);return null;}});if(_0x57379d[_0x6d0e('0x36')]){logger[_0x6d0e('0x1f')](util[_0x6d0e('0x1d')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3477f0[_0x6d0e('0x21')],_0x3477f0[_0x6d0e('0x22')],_0x3477f0['callerid'],_0x3477f0[_0x6d0e('0x24')],_0x3477f0[_0x6d0e('0x25')]));_0x1b495a[_0x6d0e('0x26')](_0x57379d[_0x6d0e('0x36')]['id'],function(_0x186a8c){try{_0x186a8c=_0x1ece70[_0x6d0e('0x27')](_0x186a8c);logger[_0x6d0e('0x28')](_0x6d0e('0x37'),JSON['stringify'](_0x186a8c,null,0x2));if(_0x186a8c&&_0x1ece70[_0x186a8c[_0x6d0e('0x29')]]){_0xb81d2b=_0x1ece70[_0x186a8c[_0x6d0e('0x29')]](_0x186a8c);if(_0xb81d2b){logger['debug'](_0x6d0e('0x2f'),inspect(_0xb81d2b));return _[_0x6d0e('0x33')](_0xb81d2b['result'])?null:_0xb81d2b[_0x6d0e('0x34')][_0x6d0e('0x35')]();}else{logger[_0x6d0e('0x9')](_0x6d0e('0x2f'),inspect(_0xb81d2b));return null;}}else{logger[_0x6d0e('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x17c1f6){logger[_0x6d0e('0x9')](_0x17c1f6['stack']);return null;}});}logger['info'](util['format'](_0x6d0e('0x38'),_0x3477f0[_0x6d0e('0x21')],_0x3477f0[_0x6d0e('0x22')],_0x3477f0[_0x6d0e('0x23')],_0x3477f0['dnid'],_0x3477f0['uniqueid']));logger[_0x6d0e('0x1f')](util[_0x6d0e('0x1d')](_0x6d0e('0x39'),_0x3477f0[_0x6d0e('0x2c')],_0x3477f0[_0x6d0e('0x2d')],parseInt(_0x3477f0['priority'],0xa)+0x1));_0x3477f0[_0x6d0e('0x3a')](_0x3477f0['context'],_0x3477f0[_0x6d0e('0x2d')],parseInt(_0x3477f0['priority'],0xa)+0x1);_0x3477f0[_0x6d0e('0x3b')]();}function handleNotFound(_0x21c915){logger[_0x6d0e('0x9')](util[_0x6d0e('0x1d')](_0x6d0e('0x3c'),_0x21c915[_0x6d0e('0x21')]));_0x21c915[_0x6d0e('0x3a')](_0x21c915[_0x6d0e('0x2c')],_0x21c915[_0x6d0e('0x2d')],parseInt(_0x21c915['priority'],0xa)+0x1);_0x21c915[_0x6d0e('0x3b')]();}function handleUnpublished(_0x2eacc2){logger['error'](util[_0x6d0e('0x1d')](_0x6d0e('0x3d'),_0x2eacc2[_0x6d0e('0x21')]));_0x2eacc2[_0x6d0e('0x3a')](_0x2eacc2[_0x6d0e('0x2c')],_0x2eacc2['extension'],parseInt(_0x2eacc2[_0x6d0e('0x2e')],0xa)+0x1);_0x2eacc2[_0x6d0e('0x3b')]();}module[_0x6d0e('0x3e')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};