Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / api / plugin / plugin.controller.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 _0xaf19=['where','filter','merge','VIRTUAL','options','Plugin','includeAll','include','catch','params','find','join','root','format','%s.zip','basename','createWriteStream','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','server/files/plugins','dirname','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','length','Invalid\x20plugin\x20structure','isFile','isDirectory','some','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','plugins','test','agent','create','body','role','get','UserProfileSection','Plugins','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','%s%s','headers','content-length','content-type','set','endsWith','download','statusCode','webhookPost','http://localhost:','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','extract-zip','rimraf','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','end','status','offset','undefined','count','limit','Content-Range','json','apply','reject','save','update','then','destroy','UserProfileResource','error','stack','name','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','nolimit','order','sort'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xaf19,0x69));var _0x9af1=function(_0x12d5e9,_0x3ddda9){_0x12d5e9=_0x12d5e9-0x0;var _0x52e96b=_0xaf19[_0x12d5e9];return _0x52e96b;};'use strict';var emlformat=require(_0x9af1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9af1('0x1'));var jsonpatch=require(_0x9af1('0x2'));var rp=require(_0x9af1('0x3'));var moment=require(_0x9af1('0x4'));var BPromise=require(_0x9af1('0x5'));var Mustache=require('mustache');var util=require(_0x9af1('0x6'));var path=require(_0x9af1('0x7'));var sox=require(_0x9af1('0x8'));var csv=require(_0x9af1('0x9'));var ejs=require(_0x9af1('0xa'));var fs=require('fs');var fs_extra=require(_0x9af1('0xb'));var _=require(_0x9af1('0xc'));var squel=require(_0x9af1('0xd'));var crypto=require('crypto');var jsforce=require(_0x9af1('0xe'));var deskjs=require(_0x9af1('0xf'));var toCsv=require(_0x9af1('0x9'));var querystring=require(_0x9af1('0x10'));var Papa=require(_0x9af1('0x11'));var extract=require(_0x9af1('0x12'));var rimraf=require(_0x9af1('0x13'));var archiver=require(_0x9af1('0x14'));var Redis=require('ioredis');var authService=require(_0x9af1('0x15'));var qs=require(_0x9af1('0x16'));var as=require(_0x9af1('0x17'));var hardwareService=require(_0x9af1('0x18'));var logger=require(_0x9af1('0x19'))('api');var utils=require(_0x9af1('0x1a'));var config=require(_0x9af1('0x1b'));var licenseUtil=require(_0x9af1('0x1c'));var db=require(_0x9af1('0x1d'))['db'];config[_0x9af1('0x1e')]=_[_0x9af1('0x1f')](config[_0x9af1('0x1e')],{'host':'localhost','port':0x18eb});var socket=require(_0x9af1('0x20'))(new Redis(config['redis']));require('./plugin.socket')[_0x9af1('0x21')](socket);function respondWithStatusCode(_0x5e80c8,_0x5acf48){_0x5acf48=_0x5acf48||0xcc;return function(_0x46e18b){if(_0x46e18b){return _0x5e80c8[_0x9af1('0x22')](_0x5acf48);}return _0x5e80c8['status'](_0x5acf48)[_0x9af1('0x23')]();};}function respondWithResult(_0x3d3a1c,_0x1bf951){_0x1bf951=_0x1bf951||0xc8;return function(_0x12113a){if(_0x12113a){return _0x3d3a1c[_0x9af1('0x24')](_0x1bf951)['json'](_0x12113a);}};}function respondWithFilteredResult(_0x1cfa53,_0x3dd600){return function(_0xca79c8){if(_0xca79c8){var _0x579455=typeof _0x3dd600[_0x9af1('0x25')]==='undefined'&&typeof _0x3dd600['limit']===_0x9af1('0x26');var _0x3947f3=_0xca79c8[_0x9af1('0x27')];var _0x35bbdb=_0x579455?0x0:_0x3dd600['offset'];var _0x3f67e9=_0x579455?_0xca79c8[_0x9af1('0x27')]:_0x3dd600[_0x9af1('0x25')]+_0x3dd600[_0x9af1('0x28')];var _0x113199;if(_0x3f67e9>=_0x3947f3){_0x3f67e9=_0x3947f3;_0x113199=0xc8;}else{_0x113199=0xce;}_0x1cfa53['status'](_0x113199);return _0x1cfa53['set'](_0x9af1('0x29'),_0x35bbdb+'-'+_0x3f67e9+'/'+_0x3947f3)[_0x9af1('0x2a')](_0xca79c8);}return null;};}function patchUpdates(_0x3d996f){return function(_0x22ff71){try{jsonpatch[_0x9af1('0x2b')](_0x22ff71,_0x3d996f,!![]);}catch(_0x2aec51){return BPromise[_0x9af1('0x2c')](_0x2aec51);}return _0x22ff71[_0x9af1('0x2d')]();};}function saveUpdates(_0x279241,_0x173bcb){return function(_0x4f6ded){if(_0x4f6ded){return _0x4f6ded[_0x9af1('0x2e')](_0x279241)[_0x9af1('0x2f')](function(_0x37b29c){return _0x37b29c;});}return null;};}function removeEntity(_0x340d0e,_0x4b1272){return function(_0x343f32){if(_0x343f32){return _0x343f32[_0x9af1('0x30')]()['then'](function(){var _0x44b12f=_0x343f32['get']({'plain':!![]});var _0x2cdfd0='Plugins';return db[_0x9af1('0x31')][_0x9af1('0x30')]({'where':{'type':_0x2cdfd0,'resourceId':_0x44b12f['id']}})[_0x9af1('0x2f')](function(){return _0x343f32;});})['then'](function(){_0x340d0e[_0x9af1('0x24')](0xcc)[_0x9af1('0x23')]();});}};}function handleEntityNotFound(_0x597c33,_0x4c8092){return function(_0x518699){if(!_0x518699){_0x597c33[_0x9af1('0x22')](0x194);}return _0x518699;};}function handleError(_0x46051e,_0x16a1b1){_0x16a1b1=_0x16a1b1||0x1f4;return function(_0x36da03){logger[_0x9af1('0x32')](_0x36da03[_0x9af1('0x33')]);if(_0x36da03[_0x9af1('0x34')]){delete _0x36da03['name'];}_0x46051e[_0x9af1('0x24')](_0x16a1b1)['send'](_0x36da03);};}exports[_0x9af1('0x35')]=function(_0xb9ab55,_0x5c339c){var _0x1a5032={},_0x278d9e={},_0x5acbb6={'count':0x0,'rows':[]};var _0x224b37=_[_0x9af1('0x36')](db['Plugin'][_0x9af1('0x37')],function(_0x1a691c){return{'name':_0x1a691c[_0x9af1('0x38')],'type':_0x1a691c[_0x9af1('0x39')][_0x9af1('0x3a')]};});_0x278d9e['model']=_['map'](_0x224b37,_0x9af1('0x34'));_0x278d9e[_0x9af1('0x3b')]=_[_0x9af1('0x3c')](_0xb9ab55[_0x9af1('0x3b')]);_0x278d9e[_0x9af1('0x3d')]=_[_0x9af1('0x3e')](_0x278d9e[_0x9af1('0x3f')],_0x278d9e[_0x9af1('0x3b')]);_0x1a5032[_0x9af1('0x40')]=_['intersection'](_0x278d9e[_0x9af1('0x3f')],qs[_0x9af1('0x41')](_0xb9ab55[_0x9af1('0x3b')][_0x9af1('0x41')]));_0x1a5032[_0x9af1('0x40')]=_0x1a5032[_0x9af1('0x40')]['length']?_0x1a5032[_0x9af1('0x40')]:_0x278d9e[_0x9af1('0x3f')];if(!_0xb9ab55['query']['hasOwnProperty'](_0x9af1('0x42'))){_0x1a5032[_0x9af1('0x28')]=qs[_0x9af1('0x28')](_0xb9ab55[_0x9af1('0x3b')][_0x9af1('0x28')]);_0x1a5032[_0x9af1('0x25')]=qs[_0x9af1('0x25')](_0xb9ab55[_0x9af1('0x3b')][_0x9af1('0x25')]);}_0x1a5032[_0x9af1('0x43')]=qs[_0x9af1('0x44')](_0xb9ab55[_0x9af1('0x3b')][_0x9af1('0x44')]);_0x1a5032[_0x9af1('0x45')]=qs['filters'](_['pick'](_0xb9ab55[_0x9af1('0x3b')],_0x278d9e[_0x9af1('0x3d')]),_0x224b37);if(_0xb9ab55[_0x9af1('0x3b')][_0x9af1('0x46')]){_0x1a5032[_0x9af1('0x45')]=_[_0x9af1('0x47')](_0x1a5032[_0x9af1('0x45')],{'$or':_[_0x9af1('0x36')](_0x224b37,function(_0x1d9281){if(_0x1d9281['type']!==_0x9af1('0x48')){var _0xc7d29c={};_0xc7d29c[_0x1d9281[_0x9af1('0x34')]]={'$like':'%'+_0xb9ab55['query'][_0x9af1('0x46')]+'%'};return _0xc7d29c;}})});}_0x1a5032=_['merge']({},_0x1a5032,_0xb9ab55[_0x9af1('0x49')]);var _0x1f8704={'where':_0x1a5032[_0x9af1('0x45')]};return db[_0x9af1('0x4a')]['count'](_0x1f8704)[_0x9af1('0x2f')](function(_0x29b629){_0x5acbb6[_0x9af1('0x27')]=_0x29b629;if(_0xb9ab55['query'][_0x9af1('0x4b')]){_0x1a5032[_0x9af1('0x4c')]=[{'all':!![]}];}return db[_0x9af1('0x4a')]['findAll'](_0x1a5032);})[_0x9af1('0x2f')](function(_0x1e4d4d){_0x5acbb6['rows']=_0x1e4d4d;return _0x5acbb6;})[_0x9af1('0x2f')](respondWithFilteredResult(_0x5c339c,_0x1a5032))[_0x9af1('0x4d')](handleError(_0x5c339c,null));};exports['show']=function(_0x3334f2,_0x5e152d){var _0x4b63ec={'raw':!![],'where':{'id':_0x3334f2[_0x9af1('0x4e')]['id']}},_0x38aa75={};_0x38aa75[_0x9af1('0x3f')]=_[_0x9af1('0x3c')](db[_0x9af1('0x4a')][_0x9af1('0x37')]);_0x38aa75[_0x9af1('0x3b')]=_['keys'](_0x3334f2['query']);_0x38aa75[_0x9af1('0x3d')]=_['intersection'](_0x38aa75[_0x9af1('0x3f')],_0x38aa75[_0x9af1('0x3b')]);_0x4b63ec['attributes']=_[_0x9af1('0x3e')](_0x38aa75[_0x9af1('0x3f')],qs[_0x9af1('0x41')](_0x3334f2[_0x9af1('0x3b')][_0x9af1('0x41')]));_0x4b63ec[_0x9af1('0x40')]=_0x4b63ec[_0x9af1('0x40')]['length']?_0x4b63ec[_0x9af1('0x40')]:_0x38aa75[_0x9af1('0x3f')];if(_0x3334f2[_0x9af1('0x3b')]['includeAll']){_0x4b63ec[_0x9af1('0x4c')]=[{'all':!![]}];}_0x4b63ec=_[_0x9af1('0x47')]({},_0x4b63ec,_0x3334f2[_0x9af1('0x49')]);return db['Plugin']['find'](_0x4b63ec)[_0x9af1('0x2f')](handleEntityNotFound(_0x5e152d,null))[_0x9af1('0x2f')](respondWithResult(_0x5e152d,null))[_0x9af1('0x4d')](handleError(_0x5e152d,null));};exports['download']=function(_0x4e56a8,_0x338d4a,_0x2e87f1){return db[_0x9af1('0x4a')][_0x9af1('0x4f')]({'where':{'id':_0x4e56a8['params']['id']},'attributes':['name','path'],'raw':!![]})[_0x9af1('0x2f')](handleEntityNotFound(_0x338d4a,null))[_0x9af1('0x2f')](function(_0x50a9d0){if(_0x50a9d0){var _0x3d8322=path[_0x9af1('0x50')](config[_0x9af1('0x51')],'server/files/plugins',util[_0x9af1('0x52')](_0x9af1('0x53'),path[_0x9af1('0x54')](_0x50a9d0['path'])));var _0x68eaf6=fs[_0x9af1('0x55')](_0x3d8322);var _0x41564c=archiver('zip',{'zlib':{'level':0x9}});_0x41564c['on'](_0x9af1('0x56'),function(_0x18b434){if(_0x18b434[_0x9af1('0x57')]===_0x9af1('0x58')){logger[_0x9af1('0x32')](_0x18b434);}else{throw new db[(_0x9af1('0x59'))][(_0x9af1('0x5a'))](_0x9af1('0x5b'));}});_0x41564c['on']('error',function(_0x2c2468){throw new db[(_0x9af1('0x59'))]['Error'](_0x9af1('0x5b'));});_0x41564c[_0x9af1('0x5c')](_0x68eaf6);_0x41564c[_0x9af1('0x5d')](_0x9af1('0x5e'),{'cwd':path[_0x9af1('0x50')](config['root'],_0x9af1('0x5f'),path[_0x9af1('0x60')](_0x50a9d0[_0x9af1('0x7')])),'ignore':[path[_0x9af1('0x50')](path['basename'](_0x50a9d0[_0x9af1('0x7')]),'node_modules/**/*'),path[_0x9af1('0x50')](path[_0x9af1('0x54')](_0x50a9d0[_0x9af1('0x7')]),_0x9af1('0x61'))],'nodir':!![]})[_0x9af1('0x62')]();_0x68eaf6['on'](_0x9af1('0x63'),function(){if(!fs[_0x9af1('0x64')](_0x3d8322)){throw new db[(_0x9af1('0x59'))][(_0x9af1('0x5a'))](_0x9af1('0x65'));}return _0x338d4a['download'](_0x3d8322,util['format'](_0x9af1('0x53'),path[_0x9af1('0x54')](_0x50a9d0[_0x9af1('0x7')])),function(_0xc3b92d){if(_0xc3b92d){throw new db['Sequelize'][(_0x9af1('0x5a'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0x9af1('0x66')](_0x3d8322);logger[_0x9af1('0x67')](_0x9af1('0x68'));logger[_0x9af1('0x67')](_0x9af1('0x69'));});});}return null;})[_0x9af1('0x4d')](handleError(_0x338d4a,null));};exports['upload']=function(_0x2a02cc,_0x2da636,_0x16ae2c){var _0x2c18eb=path[_0x9af1('0x54')](_0x2a02cc[_0x9af1('0x6a')][_0x9af1('0x6b')],path[_0x9af1('0x6c')](_0x2a02cc[_0x9af1('0x6a')][_0x9af1('0x6b')]));var _0x5785c5=path[_0x9af1('0x50')](config['root'],_0x9af1('0x5f'),_0x2a02cc[_0x9af1('0x6a')][_0x9af1('0x6b')]);var _0x197b73=path[_0x9af1('0x50')](config[_0x9af1('0x51')],_0x9af1('0x5f'),_0x2c18eb);logger['info'](_0x9af1('0x6d'),_0x5785c5);logger[_0x9af1('0x67')](_0x9af1('0x6e'),_0x197b73);try{fs[_0x9af1('0x6f')](_0x5785c5,parseInt(_0x9af1('0x70'),0x8));extract(_0x5785c5,{'dir':_0x197b73},function(_0x41aa0c){if(_0x41aa0c){logger['error'](_0x41aa0c);handleError(_0x41aa0c,!![]);};var _0x53d3ee=fs[_0x9af1('0x71')](_0x197b73);if(_0x53d3ee[_0x9af1('0x72')]>0x1){removeReferences(_0x5785c5,_0x197b73);logger[_0x9af1('0x32')](_0x9af1('0x73'));return _0x16ae2c(new Error(_0x9af1('0x73')));}var _0x227980=fs['lstatSync'](path['join'](_0x197b73,_0x53d3ee[0x0]));if(_0x227980[_0x9af1('0x74')]()){removeReferences(_0x5785c5,_0x197b73);logger[_0x9af1('0x32')](_0x9af1('0x73'));return _0x16ae2c(new Error(_0x9af1('0x73')));}if(_0x227980[_0x9af1('0x75')]()){var _0x24a5fd=fs['readdirSync'](path[_0x9af1('0x50')](_0x197b73,_0x53d3ee[0x0]));if(_0x24a5fd[_0x9af1('0x72')]===0x0){removeReferences(_0x5785c5,_0x197b73);logger[_0x9af1('0x32')](_0x9af1('0x73'));return _0x16ae2c(new Error(_0x9af1('0x73')));}var _0x580780=_0x24a5fd[_0x9af1('0x76')](function(_0x2a236a){return _0x2a236a===_0x9af1('0x77');});if(!_0x580780){return _0x16ae2c(new Error('Plugin\x20manifest\x20missing'));}var _0x531acd=fs['readFileSync'](path['join'](_0x197b73,_0x53d3ee[0x0],_0x9af1('0x77')));var _0x17d872=JSON[_0x9af1('0x78')](_0x531acd);if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x34')]){return _0x16ae2c(new Error(_0x9af1('0x79')));}if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x39')]){return _0x16ae2c(new Error(_0x9af1('0x7a')));}if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x7b')]){return _0x16ae2c(new Error(_0x9af1('0x7c')));}if('undefined'==typeof _0x17d872[_0x9af1('0x7d')]){return _0x16ae2c(new Error(_0x9af1('0x7e')));}if(_0x17d872['type']===_0x9af1('0x7f')){if(_0x9af1('0x26')==typeof _0x17d872['parameters'][_0x9af1('0x80')]){return _0x16ae2c(new Error(_0x9af1('0x81')));}if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x7d')]['views'][_0x9af1('0x82')]&&_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x7d')][_0x9af1('0x80')]['agent']){return _0x16ae2c(new Error(_0x9af1('0x83')));}}else if(_0x17d872['type']===_0x9af1('0x84')){if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x7d')][_0x9af1('0x85')]){return _0x16ae2c(new Error(_0x9af1('0x86')));}if(_0x9af1('0x26')==typeof _0x17d872[_0x9af1('0x7d')][_0x9af1('0x87')]){return _0x16ae2c(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x16ae2c(new Error(_0x9af1('0x88')));}var _0x471606=_0x17d872[_0x9af1('0x34')];var _0x40bfe6=_0x17d872[_0x9af1('0x89')];var _0x13230c=_0x17d872[_0x9af1('0x39')];var _0x2759a6=_0x17d872[_0x9af1('0x8a')]?_0x17d872[_0x9af1('0x8a')]:_0x9af1('0x8b');var _0xd4a482=_0x17d872['icon']?_0x17d872[_0x9af1('0x8c')]:_0x9af1('0x8d');var _0xfb4f20='';var _0x49556e='';var _0x448a55='';var _0x465540='';var _0x415755=_0x17d872[_0x9af1('0x7b')];if(_0x13230c===_0x9af1('0x7f')){if(_0x9af1('0x26')!=typeof _0x17d872[_0x9af1('0x7d')]['views'][_0x9af1('0x82')]){var _0x1837b8=_0x17d872[_0x9af1('0x7d')][_0x9af1('0x80')][_0x9af1('0x82')];if(!/^(f|ht)tps?:\/\//i['test'](_0x1837b8)){_0xfb4f20=path[_0x9af1('0x50')](_0x9af1('0x8e'),_0x2c18eb,_0x53d3ee[0x0],_0x1837b8);}else{_0xfb4f20=_0x1837b8;}}else{logger[_0x9af1('0x67')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x9af1('0x26')!=typeof _0x17d872[_0x9af1('0x7d')]['views']['agent']){var _0x509a31=_0x17d872[_0x9af1('0x7d')][_0x9af1('0x80')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x9af1('0x8f')](_0x509a31)){_0x49556e=path[_0x9af1('0x50')](_0x9af1('0x8e'),_0x2c18eb,_0x53d3ee[0x0],_0x509a31);}else{_0x49556e=_0x509a31;}}else{logger[_0x9af1('0x67')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x13230c==='script'){_0x448a55=_0x17d872['parameters'][_0x9af1('0x85')];_0x465540=_0x17d872[_0x9af1('0x7d')][_0x9af1('0x87')];if('undefined'!=typeof _0x17d872[_0x9af1('0x7d')][_0x9af1('0x80')]){if(_0x9af1('0x26')!=typeof _0x17d872[_0x9af1('0x7d')]['views'][_0x9af1('0x82')]){var _0x1837b8=_0x17d872[_0x9af1('0x7d')]['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0x9af1('0x8f')](_0x1837b8)){_0xfb4f20=path[_0x9af1('0x50')](_0x9af1('0x8e'),_0x2c18eb,_0x53d3ee[0x0],_0x1837b8);}else{_0xfb4f20=_0x1837b8;}}if(_0x9af1('0x26')!=typeof _0x17d872[_0x9af1('0x7d')]['views']['agent']){var _0x509a31=_0x17d872[_0x9af1('0x7d')][_0x9af1('0x80')][_0x9af1('0x90')];if(!/^(f|ht)tps?:\/\//i['test'](_0x509a31)){_0x49556e=path[_0x9af1('0x50')](_0x9af1('0x8e'),_0x2c18eb,_0x53d3ee[0x0],_0x509a31);}else{_0x49556e=_0x509a31;}}}}var _0x385ca6={'name':_0x471606,'description':_0x40bfe6,'path':path['join'](_0x2c18eb,_0x53d3ee[0x0]),'type':_0x13230c,'sidebar':_0x2759a6,'icon':_0xd4a482,'adminUrl':_0xfb4f20,'agentUrl':_0x49556e,'scriptName':_0x448a55,'scriptPath':_0x465540,'version':_0x415755};removeReferences(_0x5785c5,null);return db['Plugin'][_0x9af1('0x91')](_0x385ca6)['then'](function(_0x219dba){var _0x198df5={'role':_0x2a02cc[_0x9af1('0x92')][_0x9af1('0x93')],'userProfileId':_0x2a02cc[_0x9af1('0x92')]['userProfileId']};if(!_0x198df5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x198df5[_0x9af1('0x93')]==='user'){var _0x13b938=_0x219dba[_0x9af1('0x94')]({'plain':!![]});return db[_0x9af1('0x95')][_0x9af1('0x4f')]({'where':{'name':_0x9af1('0x96'),'userProfileId':_0x198df5[_0x9af1('0x97')]},'raw':!![]})[_0x9af1('0x2f')](function(_0x3cf0b3){if(_0x3cf0b3&&_0x3cf0b3['autoAssociation']===0x0){return db['UserProfileResource'][_0x9af1('0x91')]({'name':_0x13b938[_0x9af1('0x34')],'resourceId':_0x13b938['id'],'type':_0x3cf0b3[_0x9af1('0x34')],'sectionId':_0x3cf0b3['id']},{})[_0x9af1('0x2f')](function(){return _0x219dba;});}else{return _0x219dba;}})[_0x9af1('0x4d')](function(_0x415a8c){logger[_0x9af1('0x32')](_0x9af1('0x98'),_0x415a8c);throw _0x415a8c;});}return _0x219dba;})['then'](respondWithResult(_0x2da636,null))[_0x9af1('0x4d')](handleError(_0x2da636,null));}});}catch(_0x2c5a54){_0x2da636[_0x9af1('0x24')](0x1f4)[_0x9af1('0x99')](_0x2c5a54);}};function removeReferences(_0x1d3d57,_0x41e992){try{if(_0x1d3d57){fs[_0x9af1('0x66')](_0x1d3d57);logger[_0x9af1('0x67')]('Zip\x20archive\x20removed');}if(_0x41e992){rimraf(_0x41e992,function(){});logger[_0x9af1('0x67')](_0x9af1('0x9a'));}}catch(_0x2c9318){logger['error'](_0x2c9318);}}exports['update']=function(_0x52c448,_0x1f5c8a,_0x1ea917){return db['Plugin'][_0x9af1('0x4f')]({'where':{'id':_0x52c448['params']['id']}})[_0x9af1('0x2f')](handleEntityNotFound(_0x1f5c8a,null))[_0x9af1('0x2f')](saveUpdates(_0x52c448[_0x9af1('0x92')],null))['then'](respondWithResult(_0x1f5c8a,null))[_0x9af1('0x4d')](handleError(_0x1f5c8a,null));};exports[_0x9af1('0x9b')]=function(_0x41cdf1,_0x4d7cc5,_0x47219c){return db[_0x9af1('0x4a')][_0x9af1('0x4f')]({'where':{'id':_0x41cdf1[_0x9af1('0x4e')]['id']}})[_0x9af1('0x2f')](function(_0x128658){if(_0x128658){return _0x128658[_0x9af1('0x30')]();}})[_0x9af1('0x2f')](function(_0x3a8c32){rimraf(path[_0x9af1('0x50')](config[_0x9af1('0x51')],_0x9af1('0x5f'),path[_0x9af1('0x60')](_0x3a8c32[_0x9af1('0x7')])),function(){});return _0x3a8c32;})[_0x9af1('0x2f')](handleEntityNotFound(_0x4d7cc5,null))['then'](respondWithStatusCode(_0x4d7cc5,null))[_0x9af1('0x4d')](handleError(_0x4d7cc5,null));};exports[_0x9af1('0x9c')]=function(_0xa2335b,_0x4bc320,_0x58eb1e){return BPromise[_0x9af1('0x9d')]()[_0x9af1('0x2f')](function(){if(!_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x7')]){throw new Error(_0x9af1('0x9e'));}if(!_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x9f')]){throw new Error(_0x9af1('0xa0'));}var _0x55b1d8=_0xa2335b[_0x9af1('0x3b')][_0x9af1('0xa1')]?_0xa2335b[_0x9af1('0x3b')]['hostname']+':'+_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x9f')]:'http://localhost:'+_0xa2335b['query'][_0x9af1('0x9f')];var _0x5edc28=_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x2a')]?_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x2a')]:!![];var _0x37402a=_0xa2335b[_0x9af1('0x3b')]['encoding']?_0xa2335b['query'][_0x9af1('0xa2')]:null;var _0x200a6d={'method':_0xa2335b[_0x9af1('0xa3')],'uri':util[_0x9af1('0x52')](_0x9af1('0xa4'),_0x55b1d8,_0xa2335b['query'][_0x9af1('0x7')]),'json':_0x5edc28,'resolveWithFullResponse':!![],'encoding':_0x37402a,'qs':_0xa2335b['query']};if(_0xa2335b[_0x9af1('0xa5')]){_0x200a6d['headers']=_0xa2335b['headers'];if(_0x200a6d[_0x9af1('0xa5')][_0x9af1('0xa6')]){delete _0x200a6d[_0x9af1('0xa5')][_0x9af1('0xa6')];}}if(_0x200a6d['headers'][_0x9af1('0xa7')]){delete _0x200a6d[_0x9af1('0xa5')][_0x9af1('0xa7')];}return rp(_0x200a6d);})['then'](function(_0x4dcac7){if(_0x4dcac7){_0x4bc320[_0x9af1('0xa8')](_0x4dcac7[_0x9af1('0xa5')]);logger[_0x9af1('0x67')](_0x4dcac7[_0x9af1('0x92')]);if(_[_0x9af1('0xa9')](_0xa2335b[_0x9af1('0x3b')][_0x9af1('0x7')],_0x9af1('0xaa'))&&_0x4dcac7[_0x9af1('0xab')]==0x1f4){return _0x4bc320['sendStatus'](_0x4dcac7[_0x9af1('0xab')]);}else{return _0x4bc320['status'](_0x4dcac7['statusCode'])[_0x9af1('0x99')](_0x4dcac7[_0x9af1('0x92')]);}}else{return _0x4bc320[_0x9af1('0x22')](0xc8);}})[_0x9af1('0x4d')](handleError(_0x4bc320,null));};exports[_0x9af1('0xac')]=function(_0x9622d9,_0x28954d,_0xe79e41){return BPromise['resolve']()['then'](function(){if(!_0x9622d9['query']['path']){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x9622d9['query'][_0x9af1('0x9f')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x959166=_0x9622d9[_0x9af1('0x3b')][_0x9af1('0xa1')]?_0x9622d9[_0x9af1('0x3b')][_0x9af1('0xa1')]+':'+_0x9622d9[_0x9af1('0x3b')]['port']:_0x9af1('0xad')+_0x9622d9[_0x9af1('0x3b')]['port'];var _0x9e460a=_0x9622d9[_0x9af1('0x3b')][_0x9af1('0x2a')]?_0x9622d9[_0x9af1('0x3b')][_0x9af1('0x2a')]:!![];var _0x2f331a=_0x9622d9[_0x9af1('0x3b')][_0x9af1('0xa2')]?_0x9622d9[_0x9af1('0x3b')][_0x9af1('0xa2')]:null;var _0x846092={'method':_0x9622d9['method'],'uri':util['format']('%s%s',_0x959166,_0x9622d9[_0x9af1('0x3b')][_0x9af1('0x7')]),'json':_0x9e460a,'resolveWithFullResponse':!![],'encoding':_0x2f331a,'body':_0x9622d9['body']};if(_0x9622d9['headers']){_0x846092[_0x9af1('0xa5')]=_0x9622d9[_0x9af1('0xa5')];if(_0x846092[_0x9af1('0xa5')][_0x9af1('0xa6')]){delete _0x846092[_0x9af1('0xa5')][_0x9af1('0xa6')];}}if(_0x846092[_0x9af1('0xa5')][_0x9af1('0xa7')]){delete _0x846092[_0x9af1('0xa5')]['content-type'];}return rp(_0x846092);})[_0x9af1('0x2f')](function(_0x3e0cf0){if(_0x3e0cf0){_0x28954d['set'](_0x3e0cf0[_0x9af1('0xa5')]);logger[_0x9af1('0x67')](_0x3e0cf0['body']);return _0x28954d[_0x9af1('0x24')](_0x3e0cf0[_0x9af1('0xab')])[_0x9af1('0x99')](_0x3e0cf0[_0x9af1('0x92')]);}else{return _0x28954d[_0x9af1('0x22')](0xc8);}})[_0x9af1('0x4d')](handleError(_0x28954d,null));};