Built motion from commit 9d0783e6.|2.6.13
[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 _0xa6a8=['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','extension','Project\x20%s\x20not\x20found','continueAt','close','Project\x20%s\x20not\x20published','exports','lodash','moment','util','../../config/logger','agi','./rpc','./graph','./vertices','getSquareProjects','error','Unable\x20to\x20download\x20CallySquare\x20projects','stack','agicommand','hasOwnProperty','retry','maxRetry','isArray','length','source','target','addEdge','value','toJson','mxGraphModel','production','start','debug','root','stringify','format','YYYY-MM-DD\x20HH:mm:ss','omit','mxCell','arg_1','calleridname','callerid','uniqueid','traverseBFS','vertex','gotoc','info','gotoc\x20block\x20stop\x20traverse\x20BFS','context','priority','response','code','evtHangup','isUndefined','result','toString','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','dnid'];(function(_0xb65e77,_0x238c3d){var _0x38134b=function(_0x39da21){while(--_0x39da21){_0xb65e77['push'](_0xb65e77['shift']());}};_0x38134b(++_0x238c3d);}(_0xa6a8,0x101));var _0x8a6a=function(_0xe77e80,_0x40bb60){_0xe77e80=_0xe77e80-0x0;var _0x56cf8b=_0xa6a8[_0xe77e80];return _0x56cf8b;};'use strict';var _=require(_0x8a6a('0x0'));var moment=require(_0x8a6a('0x1'));var parser=require('xml2json');var util=require(_0x8a6a('0x2'));var logger=require(_0x8a6a('0x3'))(_0x8a6a('0x4'));var rpc=require(_0x8a6a('0x5'));var mailRpc=require('./mailRpc');var Graph=require(_0x8a6a('0x6'));var Vertices=require(_0x8a6a('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0x8a6a('0x8')]()['catch'](function(_0x32c642){logger[_0x8a6a('0x9')](_0x8a6a('0xa'),_0x32c642[_0x8a6a('0xb')]);return[];});}function addVertex(_0xe68605,_0x2a9cc8,_0x47e4e2){_0x2a9cc8[_0x8a6a('0xc')]=_0x47e4e2;if(_0x2a9cc8[_0x8a6a('0xd')](_0x8a6a('0xe'))){_0x2a9cc8[_0x8a6a('0xf')]=parseInt(_0x2a9cc8[_0x8a6a('0xe')],0xa);}_0xe68605['addVertex'](_['omit'](_0x2a9cc8,'mxCell'));}function initGraph(_0x24fc54,_0x5f31fc){var _0x17f0d4=new Graph();for(var _0x3e3b3a in _0x24fc54){if(_0x24fc54[_0x8a6a('0xd')](_0x3e3b3a)){if(_[_0x8a6a('0x10')](_0x24fc54[_0x3e3b3a])){for(var _0x3d5275=0x0;_0x3d5275<_0x24fc54[_0x3e3b3a][_0x8a6a('0x11')];_0x3d5275+=0x1){addVertex(_0x17f0d4,_0x24fc54[_0x3e3b3a][_0x3d5275],_0x3e3b3a);}}else{addVertex(_0x17f0d4,_0x24fc54[_0x3e3b3a],_0x3e3b3a);}}}for(var _0x59d1db=0x0;_0x59d1db<_0x5f31fc[_0x8a6a('0x11')];_0x59d1db+=0x1){if(_0x5f31fc[_0x59d1db][_0x8a6a('0x12')]&&_0x5f31fc[_0x59d1db][_0x8a6a('0x13')]){_0x17f0d4[_0x8a6a('0x14')](_0x5f31fc[_0x59d1db]['source'],_0x5f31fc[_0x59d1db][_0x8a6a('0x13')],_0x5f31fc[_0x59d1db][_0x8a6a('0x15')]);}}return _0x17f0d4;}function getRoot(_0x225021){return parser[_0x8a6a('0x16')](_0x225021,{'object':!![]})[_0x8a6a('0x17')]['root'];}function inspect(_0x30e4c0){return util['inspect'](_0x30e4c0,{'showHidden':![],'depth':null});}function initialize(_0x2584c1,_0x289263){var _0x13e17c=getRoot(_0x2584c1[_0x8a6a('0x18')]);if(!_0x13e17c||!_0x13e17c[_0x8a6a('0x19')])return;var _0x3d2e98,_0x52ea32,_0x83069c;logger[_0x8a6a('0x1a')](_0x8a6a('0x1b'),JSON[_0x8a6a('0x1c')](_0x13e17c,null,0x2));_0x289263['joinAt']=moment()[_0x8a6a('0x1d')](_0x8a6a('0x1e'));_0x3d2e98=initGraph(_[_0x8a6a('0x1f')](_0x13e17c,_0x8a6a('0x20')),_0x13e17c[_0x8a6a('0x20')]);_0x52ea32=new Vertices(_0x289263,rpc,mailRpc);logger['info'](util['format']('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x289263[_0x8a6a('0x21')],_0x289263[_0x8a6a('0x22')],_0x289263[_0x8a6a('0x23')],_0x289263['dnid'],_0x289263[_0x8a6a('0x24')]));_0x3d2e98[_0x8a6a('0x25')](_0x13e17c[_0x8a6a('0x19')]['id'],function(_0x1e1b9b){try{_0x1e1b9b=_0x52ea32['clear'](_0x1e1b9b);logger[_0x8a6a('0x1a')](_0x8a6a('0x26'),JSON[_0x8a6a('0x1c')](_0x1e1b9b,null,0x2));if(_0x1e1b9b[_0x8a6a('0xc')]===_0x8a6a('0x27')){logger[_0x8a6a('0x28')](_0x8a6a('0x29'));_0x289263['context']=_0x1e1b9b[_0x8a6a('0x2a')]||_0x289263[_0x8a6a('0x2a')];_0x289263['extension']=_0x1e1b9b['extension'];_0x289263[_0x8a6a('0x2b')]=_0x1e1b9b[_0x8a6a('0x2b')]?_0x1e1b9b[_0x8a6a('0x2b')]-0x1:0x1;return null;}else if(_0x1e1b9b&&_0x52ea32[_0x1e1b9b[_0x8a6a('0xc')]]){_0x83069c=_0x52ea32[_0x1e1b9b[_0x8a6a('0xc')]](_0x1e1b9b);logger[_0x8a6a('0x28')](_0x8a6a('0x2c'),JSON[_0x8a6a('0x1c')](_0x83069c,null,0x2));if(_0x83069c&&_0x83069c[_0x8a6a('0x2d')]===AGI_CODE_SUCCESS&&_0x83069c['result']!==AGI_RESULT_ERROR&&!_0x289263[_0x8a6a('0x2e')]){logger['debug'](_0x8a6a('0x2c'),inspect(_0x83069c));return _[_0x8a6a('0x2f')](_0x83069c['result'])?null:_0x83069c[_0x8a6a('0x30')][_0x8a6a('0x31')]();}else{logger[_0x8a6a('0x9')](_0x8a6a('0x2c'),inspect(_0x83069c));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x47243f){logger['error'](_0x47243f['stack']);return null;}});if(_0x13e17c[_0x8a6a('0x32')]){logger['info'](util[_0x8a6a('0x1d')](_0x8a6a('0x33'),_0x289263[_0x8a6a('0x21')],_0x289263['calleridname'],_0x289263[_0x8a6a('0x23')],_0x289263[_0x8a6a('0x34')],_0x289263['uniqueid']));_0x3d2e98['traverseBFS'](_0x13e17c[_0x8a6a('0x32')]['id'],function(_0x5b2502){try{_0x5b2502=_0x52ea32[_0x8a6a('0x35')](_0x5b2502);logger['debug'](_0x8a6a('0x26'),JSON[_0x8a6a('0x1c')](_0x5b2502,null,0x2));if(_0x5b2502&&_0x52ea32[_0x5b2502[_0x8a6a('0xc')]]){_0x83069c=_0x52ea32[_0x5b2502[_0x8a6a('0xc')]](_0x5b2502);if(_0x83069c){logger[_0x8a6a('0x1a')](_0x8a6a('0x2c'),inspect(_0x83069c));return _['isUndefined'](_0x83069c['result'])?null:_0x83069c['result']['toString']();}else{logger[_0x8a6a('0x9')]('response',inspect(_0x83069c));return null;}}else{logger[_0x8a6a('0x9')]('agicommand\x20not\x20found');return null;}}catch(_0x4b549c){logger['error'](_0x4b549c[_0x8a6a('0xb')]);return null;}});}logger['info'](util['format'](_0x8a6a('0x36'),_0x289263[_0x8a6a('0x21')],_0x289263[_0x8a6a('0x22')],_0x289263[_0x8a6a('0x23')],_0x289263[_0x8a6a('0x34')],_0x289263[_0x8a6a('0x24')]));logger[_0x8a6a('0x28')](util[_0x8a6a('0x1d')](_0x8a6a('0x37'),_0x289263[_0x8a6a('0x2a')],_0x289263[_0x8a6a('0x38')],parseInt(_0x289263[_0x8a6a('0x2b')],0xa)+0x1));_0x289263['continueAt'](_0x289263[_0x8a6a('0x2a')],_0x289263[_0x8a6a('0x38')],parseInt(_0x289263[_0x8a6a('0x2b')],0xa)+0x1);_0x289263['close']();}function handleNotFound(_0x46e1a5){logger['error'](util[_0x8a6a('0x1d')](_0x8a6a('0x39'),_0x46e1a5[_0x8a6a('0x21')]));_0x46e1a5[_0x8a6a('0x3a')](_0x46e1a5[_0x8a6a('0x2a')],_0x46e1a5[_0x8a6a('0x38')],parseInt(_0x46e1a5['priority'],0xa)+0x1);_0x46e1a5[_0x8a6a('0x3b')]();}function handleUnpublished(_0x4e8c09){logger[_0x8a6a('0x9')](util['format'](_0x8a6a('0x3c'),_0x4e8c09['arg_1']));_0x4e8c09[_0x8a6a('0x3a')](_0x4e8c09[_0x8a6a('0x2a')],_0x4e8c09[_0x8a6a('0x38')],parseInt(_0x4e8c09[_0x8a6a('0x2b')],0xa)+0x1);_0x4e8c09[_0x8a6a('0x3b')]();}module[_0x8a6a('0x3d')]={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};