Built motion from commit 06eb8eb0.|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 _0x5c97=['../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','redis','./plugin.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','reject','save','then','destroy','get','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','fieldName','type','model','query','keys','filters','intersection','attributes','fields','nolimit','sort','where','pick','merge','VIRTUAL','filter','includeAll','rows','catch','show','rawAttributes','length','include','options','find','download','path','join','root','server/files/plugins','format','%s.zip','basename','createWriteStream','warning','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','glob','**/*','dirname','node_modules/**/*','attachments/**/*','close','existsSync','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','Invalid\x20plugin\x20structure','lstatSync','isFile','readdirSync','some','manifest.json','readFileSync','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','parameters','views','admin','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','icon','icon-apps','html','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','test','Warning:\x20agent\x20view\x20not\x20specified','script','scriptPath','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','update','delete','params','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','headers','content-length','content-type','endsWith','statusCode','webhookPost','method','%s%s','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','desk.js','papaparse','extract-zip','archiver','ioredis'];(function(_0x2dfcc3,_0x244881){var _0x2d4796=function(_0x3083f1){while(--_0x3083f1){_0x2dfcc3['push'](_0x2dfcc3['shift']());}};_0x2d4796(++_0x244881);}(_0x5c97,0x1eb));var _0x75c9=function(_0x17e0ff,_0x4dbd1e){_0x17e0ff=_0x17e0ff-0x0;var _0x357979=_0x5c97[_0x17e0ff];return _0x357979;};'use strict';var emlformat=require(_0x75c9('0x0'));var rimraf=require(_0x75c9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x75c9('0x2'));var moment=require(_0x75c9('0x3'));var BPromise=require(_0x75c9('0x4'));var Mustache=require(_0x75c9('0x5'));var util=require(_0x75c9('0x6'));var path=require('path');var sox=require(_0x75c9('0x7'));var csv=require(_0x75c9('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x75c9('0x9'));var squel=require(_0x75c9('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x75c9('0xb'));var toCsv=require(_0x75c9('0x8'));var querystring=require('querystring');var Papa=require(_0x75c9('0xc'));var extract=require(_0x75c9('0xd'));var rimraf=require(_0x75c9('0x1'));var archiver=require(_0x75c9('0xe'));var Redis=require(_0x75c9('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x75c9('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x75c9('0x11'));var logger=require(_0x75c9('0x12'))(_0x75c9('0x13'));var utils=require(_0x75c9('0x14'));var config=require(_0x75c9('0x15'));var licenseUtil=require(_0x75c9('0x16'));var db=require(_0x75c9('0x17'))['db'];config['redis']=_[_0x75c9('0x18')](config['redis'],{'host':_0x75c9('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x75c9('0x1a')]));require(_0x75c9('0x1b'))['register'](socket);function respondWithStatusCode(_0x4fdbc7,_0x34831b){_0x34831b=_0x34831b||0xcc;return function(_0x179de0){if(_0x179de0){return _0x4fdbc7[_0x75c9('0x1c')](_0x34831b);}return _0x4fdbc7['status'](_0x34831b)[_0x75c9('0x1d')]();};}function respondWithResult(_0xf40a39,_0x3d046f){_0x3d046f=_0x3d046f||0xc8;return function(_0x1bf76f){if(_0x1bf76f){return _0xf40a39[_0x75c9('0x1e')](_0x3d046f)[_0x75c9('0x1f')](_0x1bf76f);}};}function respondWithFilteredResult(_0x465481,_0xdc6da6){return function(_0x4ead6e){if(_0x4ead6e){var _0x9c6ce8=typeof _0xdc6da6[_0x75c9('0x20')]===_0x75c9('0x21')&&typeof _0xdc6da6[_0x75c9('0x22')]===_0x75c9('0x21');var _0x28e937=_0x4ead6e[_0x75c9('0x23')];var _0x55c21c=_0x9c6ce8?0x0:_0xdc6da6[_0x75c9('0x20')];var _0x382a82=_0x9c6ce8?_0x4ead6e['count']:_0xdc6da6[_0x75c9('0x20')]+_0xdc6da6['limit'];var _0x2fcd22;if(_0x382a82>=_0x28e937){_0x382a82=_0x28e937;_0x2fcd22=0xc8;}else{_0x2fcd22=0xce;}_0x465481[_0x75c9('0x1e')](_0x2fcd22);return _0x465481[_0x75c9('0x24')]('Content-Range',_0x55c21c+'-'+_0x382a82+'/'+_0x28e937)['json'](_0x4ead6e);}return null;};}function patchUpdates(_0x2bd15c){return function(_0x58a3ba){try{jsonpatch['apply'](_0x58a3ba,_0x2bd15c,!![]);}catch(_0x59b7f2){return BPromise[_0x75c9('0x25')](_0x59b7f2);}return _0x58a3ba[_0x75c9('0x26')]();};}function saveUpdates(_0x38ba1f,_0x36da46){return function(_0x50612f){if(_0x50612f){return _0x50612f['update'](_0x38ba1f)[_0x75c9('0x27')](function(_0x431a32){return _0x431a32;});}return null;};}function removeEntity(_0x305fdc,_0x2aff3b){return function(_0x50e394){if(_0x50e394){return _0x50e394[_0x75c9('0x28')]()[_0x75c9('0x27')](function(){var _0x48eecd=_0x50e394[_0x75c9('0x29')]({'plain':!![]});var _0x4e3add=_0x75c9('0x2a');return db[_0x75c9('0x2b')][_0x75c9('0x28')]({'where':{'type':_0x4e3add,'resourceId':_0x48eecd['id']}})[_0x75c9('0x27')](function(){return _0x50e394;});})[_0x75c9('0x27')](function(){_0x305fdc['status'](0xcc)[_0x75c9('0x1d')]();});}};}function handleEntityNotFound(_0x4c15fa,_0x462976){return function(_0x1ee9af){if(!_0x1ee9af){_0x4c15fa[_0x75c9('0x1c')](0x194);}return _0x1ee9af;};}function handleError(_0x5bac14,_0x1ca30b){_0x1ca30b=_0x1ca30b||0x1f4;return function(_0x4f7d77){logger[_0x75c9('0x2c')](_0x4f7d77[_0x75c9('0x2d')]);if(_0x4f7d77[_0x75c9('0x2e')]){delete _0x4f7d77[_0x75c9('0x2e')];}_0x5bac14[_0x75c9('0x1e')](_0x1ca30b)[_0x75c9('0x2f')](_0x4f7d77);};}exports[_0x75c9('0x30')]=function(_0x14e31e,_0x42053e){var _0x1c20c6={},_0x282ec5={},_0x4b9086={'count':0x0,'rows':[]};var _0x8c6293=_[_0x75c9('0x31')](db[_0x75c9('0x32')]['rawAttributes'],function(_0x591199){return{'name':_0x591199[_0x75c9('0x33')],'type':_0x591199[_0x75c9('0x34')]['key']};});_0x282ec5[_0x75c9('0x35')]=_['map'](_0x8c6293,'name');_0x282ec5[_0x75c9('0x36')]=_[_0x75c9('0x37')](_0x14e31e[_0x75c9('0x36')]);_0x282ec5[_0x75c9('0x38')]=_[_0x75c9('0x39')](_0x282ec5['model'],_0x282ec5[_0x75c9('0x36')]);_0x1c20c6[_0x75c9('0x3a')]=_[_0x75c9('0x39')](_0x282ec5[_0x75c9('0x35')],qs[_0x75c9('0x3b')](_0x14e31e[_0x75c9('0x36')][_0x75c9('0x3b')]));_0x1c20c6[_0x75c9('0x3a')]=_0x1c20c6[_0x75c9('0x3a')]['length']?_0x1c20c6[_0x75c9('0x3a')]:_0x282ec5[_0x75c9('0x35')];if(!_0x14e31e[_0x75c9('0x36')]['hasOwnProperty'](_0x75c9('0x3c'))){_0x1c20c6[_0x75c9('0x22')]=qs[_0x75c9('0x22')](_0x14e31e[_0x75c9('0x36')][_0x75c9('0x22')]);_0x1c20c6['offset']=qs['offset'](_0x14e31e[_0x75c9('0x36')]['offset']);}_0x1c20c6['order']=qs[_0x75c9('0x3d')](_0x14e31e[_0x75c9('0x36')]['sort']);_0x1c20c6[_0x75c9('0x3e')]=qs[_0x75c9('0x38')](_[_0x75c9('0x3f')](_0x14e31e[_0x75c9('0x36')],_0x282ec5[_0x75c9('0x38')]),_0x8c6293);if(_0x14e31e['query']['filter']){_0x1c20c6[_0x75c9('0x3e')]=_[_0x75c9('0x40')](_0x1c20c6[_0x75c9('0x3e')],{'$or':_[_0x75c9('0x31')](_0x8c6293,function(_0x10d8f8){if(_0x10d8f8[_0x75c9('0x34')]!==_0x75c9('0x41')){var _0x528698={};_0x528698[_0x10d8f8[_0x75c9('0x2e')]]={'$like':'%'+_0x14e31e['query'][_0x75c9('0x42')]+'%'};return _0x528698;}})});}_0x1c20c6=_[_0x75c9('0x40')]({},_0x1c20c6,_0x14e31e['options']);var _0x48b331={'where':_0x1c20c6[_0x75c9('0x3e')]};return db['Plugin'][_0x75c9('0x23')](_0x48b331)[_0x75c9('0x27')](function(_0x291dfb){_0x4b9086[_0x75c9('0x23')]=_0x291dfb;if(_0x14e31e['query'][_0x75c9('0x43')]){_0x1c20c6['include']=[{'all':!![]}];}return db[_0x75c9('0x32')]['findAll'](_0x1c20c6);})[_0x75c9('0x27')](function(_0x219a1d){_0x4b9086[_0x75c9('0x44')]=_0x219a1d;return _0x4b9086;})[_0x75c9('0x27')](respondWithFilteredResult(_0x42053e,_0x1c20c6))[_0x75c9('0x45')](handleError(_0x42053e,null));};exports[_0x75c9('0x46')]=function(_0x3f22cd,_0x38e126){var _0x1d95d3={'raw':!![],'where':{'id':_0x3f22cd['params']['id']}},_0x114551={};_0x114551[_0x75c9('0x35')]=_[_0x75c9('0x37')](db[_0x75c9('0x32')][_0x75c9('0x47')]);_0x114551[_0x75c9('0x36')]=_[_0x75c9('0x37')](_0x3f22cd[_0x75c9('0x36')]);_0x114551[_0x75c9('0x38')]=_[_0x75c9('0x39')](_0x114551[_0x75c9('0x35')],_0x114551[_0x75c9('0x36')]);_0x1d95d3[_0x75c9('0x3a')]=_['intersection'](_0x114551[_0x75c9('0x35')],qs[_0x75c9('0x3b')](_0x3f22cd[_0x75c9('0x36')]['fields']));_0x1d95d3['attributes']=_0x1d95d3['attributes'][_0x75c9('0x48')]?_0x1d95d3[_0x75c9('0x3a')]:_0x114551[_0x75c9('0x35')];if(_0x3f22cd[_0x75c9('0x36')][_0x75c9('0x43')]){_0x1d95d3[_0x75c9('0x49')]=[{'all':!![]}];}_0x1d95d3=_['merge']({},_0x1d95d3,_0x3f22cd[_0x75c9('0x4a')]);return db[_0x75c9('0x32')][_0x75c9('0x4b')](_0x1d95d3)[_0x75c9('0x27')](handleEntityNotFound(_0x38e126,null))[_0x75c9('0x27')](respondWithResult(_0x38e126,null))[_0x75c9('0x45')](handleError(_0x38e126,null));};exports[_0x75c9('0x4c')]=function(_0x53ab84,_0xc0964c,_0x27f002){return db['Plugin'][_0x75c9('0x4b')]({'where':{'id':_0x53ab84['params']['id']},'attributes':[_0x75c9('0x2e'),_0x75c9('0x4d')],'raw':!![]})[_0x75c9('0x27')](handleEntityNotFound(_0xc0964c,null))[_0x75c9('0x27')](function(_0x454d17){if(_0x454d17){var _0x1b28b6=path[_0x75c9('0x4e')](config[_0x75c9('0x4f')],_0x75c9('0x50'),util[_0x75c9('0x51')](_0x75c9('0x52'),path[_0x75c9('0x53')](_0x454d17[_0x75c9('0x4d')])));var _0x565825=fs[_0x75c9('0x54')](_0x1b28b6);var _0x4df532=archiver('zip',{'zlib':{'level':0x9}});_0x4df532['on'](_0x75c9('0x55'),function(_0x5cbd68){if(_0x5cbd68['code']===_0x75c9('0x56')){logger[_0x75c9('0x2c')](_0x5cbd68);}else{throw new db[(_0x75c9('0x57'))][(_0x75c9('0x58'))](_0x75c9('0x59'));}});_0x4df532['on'](_0x75c9('0x2c'),function(_0x3bc631){throw new db[(_0x75c9('0x57'))][(_0x75c9('0x58'))](_0x75c9('0x59'));});_0x4df532['pipe'](_0x565825);_0x4df532[_0x75c9('0x5a')](_0x75c9('0x5b'),{'cwd':path[_0x75c9('0x4e')](config['root'],_0x75c9('0x50'),path[_0x75c9('0x5c')](_0x454d17['path'])),'ignore':[path[_0x75c9('0x4e')](path[_0x75c9('0x53')](_0x454d17['path']),_0x75c9('0x5d')),path[_0x75c9('0x4e')](path[_0x75c9('0x53')](_0x454d17[_0x75c9('0x4d')]),_0x75c9('0x5e'))],'nodir':!![]})['finalize']();_0x565825['on'](_0x75c9('0x5f'),function(){if(!fs[_0x75c9('0x60')](_0x1b28b6)){throw new db['Sequelize'][(_0x75c9('0x58'))]('Plugin\x20not\x20found');}return _0xc0964c['download'](_0x1b28b6,util[_0x75c9('0x51')](_0x75c9('0x52'),path[_0x75c9('0x53')](_0x454d17[_0x75c9('0x4d')])),function(_0x3e146a){if(_0x3e146a){throw new db[(_0x75c9('0x57'))][(_0x75c9('0x58'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0x75c9('0x61')](_0x1b28b6);logger[_0x75c9('0x62')](_0x75c9('0x63'));logger['info'](_0x75c9('0x64'));});});}return null;})[_0x75c9('0x45')](handleError(_0xc0964c,null));};exports[_0x75c9('0x65')]=function(_0x40d2d6,_0x13e2ae,_0x115804){var _0x110c47=path[_0x75c9('0x53')](_0x40d2d6[_0x75c9('0x66')][_0x75c9('0x67')],path[_0x75c9('0x68')](_0x40d2d6['file'][_0x75c9('0x67')]));var _0x27d9ca=path[_0x75c9('0x4e')](config[_0x75c9('0x4f')],'server/files/plugins',_0x40d2d6[_0x75c9('0x66')]['filename']);var _0xc12d04=path[_0x75c9('0x4e')](config[_0x75c9('0x4f')],'server/files/plugins',_0x110c47);logger[_0x75c9('0x62')](_0x75c9('0x69'),_0x27d9ca);logger['info'](_0x75c9('0x6a'),_0xc12d04);try{fs[_0x75c9('0x6b')](_0x27d9ca,parseInt(_0x75c9('0x6c'),0x8));extract(_0x27d9ca,{'dir':_0xc12d04},function(_0x4cd19d){if(_0x4cd19d){logger['error'](_0x4cd19d);handleError(_0x4cd19d,!![]);};var _0x510037=fs['readdirSync'](_0xc12d04);if(_0x510037[_0x75c9('0x48')]>0x1){removeReferences(_0x27d9ca,_0xc12d04);logger[_0x75c9('0x2c')](_0x75c9('0x6d'));return _0x115804(new Error(_0x75c9('0x6d')));}var _0x5cb6ac=fs[_0x75c9('0x6e')](path[_0x75c9('0x4e')](_0xc12d04,_0x510037[0x0]));if(_0x5cb6ac[_0x75c9('0x6f')]()){removeReferences(_0x27d9ca,_0xc12d04);logger['error'](_0x75c9('0x6d'));return _0x115804(new Error(_0x75c9('0x6d')));}if(_0x5cb6ac['isDirectory']()){var _0x1383a0=fs[_0x75c9('0x70')](path['join'](_0xc12d04,_0x510037[0x0]));if(_0x1383a0['length']===0x0){removeReferences(_0x27d9ca,_0xc12d04);logger['error'](_0x75c9('0x6d'));return _0x115804(new Error(_0x75c9('0x6d')));}var _0x2161e9=_0x1383a0[_0x75c9('0x71')](function(_0x35e7bb){return _0x35e7bb===_0x75c9('0x72');});if(!_0x2161e9){return _0x115804(new Error('Plugin\x20manifest\x20missing'));}var _0x3a5d29=fs[_0x75c9('0x73')](path[_0x75c9('0x4e')](_0xc12d04,_0x510037[0x0],_0x75c9('0x72')));var _0xb08675=JSON['parse'](_0x3a5d29);if(_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x2e')]){return _0x115804(new Error(_0x75c9('0x74')));}if(_0x75c9('0x21')==typeof _0xb08675['type']){return _0x115804(new Error(_0x75c9('0x75')));}if(_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x76')]){return _0x115804(new Error(_0x75c9('0x77')));}if('undefined'==typeof _0xb08675['parameters']){return _0x115804(new Error(_0x75c9('0x78')));}if(_0xb08675[_0x75c9('0x34')]==='html'){if(_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x79')]['views']){return _0x115804(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')][_0x75c9('0x7b')]&&_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')]['agent']){return _0x115804(new Error(_0x75c9('0x7c')));}}else if(_0xb08675[_0x75c9('0x34')]==='script'){if(_0x75c9('0x21')==typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7d')]){return _0x115804(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if(_0x75c9('0x21')==typeof _0xb08675['parameters']['scriptPath']){return _0x115804(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x115804(new Error(_0x75c9('0x7e')));}var _0x58cc95=_0xb08675['name'];var _0x5051a0=_0xb08675[_0x75c9('0x7f')];var _0x1578df=_0xb08675[_0x75c9('0x34')];var _0xfd7b5c=_0xb08675['sidebar']?_0xb08675[_0x75c9('0x80')]:'always';var _0x134f0b=_0xb08675[_0x75c9('0x81')]?_0xb08675['icon']:_0x75c9('0x82');var _0x46dd63='';var _0x22f993='';var _0x17a9ef='';var _0x4a609b='';var _0x4f586a=_0xb08675['version'];if(_0x1578df===_0x75c9('0x83')){if('undefined'!=typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')]['admin']){var _0x16e84c=_0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')][_0x75c9('0x7b')];if(!/^(f|ht)tps?:\/\//i['test'](_0x16e84c)){_0x46dd63=path['join'](_0x75c9('0x84'),_0x110c47,_0x510037[0x0],_0x16e84c);}else{_0x46dd63=_0x16e84c;}}else{logger[_0x75c9('0x62')](_0x75c9('0x85'));}if(_0x75c9('0x21')!=typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')][_0x75c9('0x86')]){var _0x5ae203=_0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x75c9('0x87')](_0x5ae203)){_0x22f993=path[_0x75c9('0x4e')]('plugins',_0x110c47,_0x510037[0x0],_0x5ae203);}else{_0x22f993=_0x5ae203;}}else{logger['info'](_0x75c9('0x88'));}}else if(_0x1578df===_0x75c9('0x89')){_0x17a9ef=_0xb08675['parameters'][_0x75c9('0x7d')];_0x4a609b=_0xb08675[_0x75c9('0x79')][_0x75c9('0x8a')];if('undefined'!=typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')]){if(_0x75c9('0x21')!=typeof _0xb08675[_0x75c9('0x79')]['views'][_0x75c9('0x7b')]){var _0x16e84c=_0xb08675[_0x75c9('0x79')]['views'][_0x75c9('0x7b')];if(!/^(f|ht)tps?:\/\//i[_0x75c9('0x87')](_0x16e84c)){_0x46dd63=path[_0x75c9('0x4e')]('plugins',_0x110c47,_0x510037[0x0],_0x16e84c);}else{_0x46dd63=_0x16e84c;}}if(_0x75c9('0x21')!=typeof _0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')][_0x75c9('0x86')]){var _0x5ae203=_0xb08675[_0x75c9('0x79')][_0x75c9('0x7a')][_0x75c9('0x86')];if(!/^(f|ht)tps?:\/\//i['test'](_0x5ae203)){_0x22f993=path[_0x75c9('0x4e')](_0x75c9('0x84'),_0x110c47,_0x510037[0x0],_0x5ae203);}else{_0x22f993=_0x5ae203;}}}}var _0x21f618={'name':_0x58cc95,'description':_0x5051a0,'path':path[_0x75c9('0x4e')](_0x110c47,_0x510037[0x0]),'type':_0x1578df,'sidebar':_0xfd7b5c,'icon':_0x134f0b,'adminUrl':_0x46dd63,'agentUrl':_0x22f993,'scriptName':_0x17a9ef,'scriptPath':_0x4a609b,'version':_0x4f586a};removeReferences(_0x27d9ca,null);return db['Plugin'][_0x75c9('0x8b')](_0x21f618)[_0x75c9('0x27')](function(_0x50c7de){var _0x2c4709={'role':_0x40d2d6[_0x75c9('0x8c')]['role'],'userProfileId':_0x40d2d6[_0x75c9('0x8c')]['userProfileId']};if(!_0x2c4709)throw new Error(_0x75c9('0x8d'));if(_0x2c4709[_0x75c9('0x8e')]===_0x75c9('0x8f')){var _0x2e194b=_0x50c7de['get']({'plain':!![]});return db[_0x75c9('0x90')][_0x75c9('0x4b')]({'where':{'name':_0x75c9('0x2a'),'userProfileId':_0x2c4709[_0x75c9('0x91')]},'raw':!![]})[_0x75c9('0x27')](function(_0x13c7ba){if(_0x13c7ba&&_0x13c7ba[_0x75c9('0x92')]===0x0){return db['UserProfileResource'][_0x75c9('0x8b')]({'name':_0x2e194b[_0x75c9('0x2e')],'resourceId':_0x2e194b['id'],'type':_0x13c7ba[_0x75c9('0x2e')],'sectionId':_0x13c7ba['id']},{})[_0x75c9('0x27')](function(){return _0x50c7de;});}else{return _0x50c7de;}})[_0x75c9('0x45')](function(_0x1d994c){logger['error'](_0x75c9('0x93'),_0x1d994c);throw _0x1d994c;});}return _0x50c7de;})[_0x75c9('0x27')](respondWithResult(_0x13e2ae,null))[_0x75c9('0x45')](handleError(_0x13e2ae,null));}});}catch(_0x4ba4bc){_0x13e2ae[_0x75c9('0x1e')](0x1f4)['send'](_0x4ba4bc);}};function removeReferences(_0x52e2a1,_0x2aaf1d){try{if(_0x52e2a1){fs[_0x75c9('0x61')](_0x52e2a1);logger[_0x75c9('0x62')](_0x75c9('0x94'));}if(_0x2aaf1d){rimraf(_0x2aaf1d,function(){});logger[_0x75c9('0x62')](_0x75c9('0x95'));}}catch(_0x347613){logger[_0x75c9('0x2c')](_0x347613);}}exports[_0x75c9('0x96')]=function(_0x1bc80f,_0x4288de,_0x4eb30d){return db['Plugin']['find']({'where':{'id':_0x1bc80f['params']['id']}})[_0x75c9('0x27')](handleEntityNotFound(_0x4288de,null))[_0x75c9('0x27')](saveUpdates(_0x1bc80f['body'],null))[_0x75c9('0x27')](respondWithResult(_0x4288de,null))[_0x75c9('0x45')](handleError(_0x4288de,null));};exports[_0x75c9('0x97')]=function(_0x49babe,_0xf34f71,_0x4f4d74){return db[_0x75c9('0x32')][_0x75c9('0x4b')]({'where':{'id':_0x49babe[_0x75c9('0x98')]['id']}})[_0x75c9('0x27')](function(_0xefecc2){if(_0xefecc2){return _0xefecc2['destroy']();}})['then'](function(_0x2ab683){rimraf(path[_0x75c9('0x4e')](config['root'],'server/files/plugins',path['dirname'](_0x2ab683[_0x75c9('0x4d')])),function(){});return _0x2ab683;})['then'](handleEntityNotFound(_0xf34f71,null))[_0x75c9('0x27')](respondWithStatusCode(_0xf34f71,null))[_0x75c9('0x45')](handleError(_0xf34f71,null));};exports[_0x75c9('0x99')]=function(_0x3a4065,_0x48f7e4,_0x5b64f9){return BPromise[_0x75c9('0x9a')]()[_0x75c9('0x27')](function(){if(!_0x3a4065[_0x75c9('0x36')]['path']){throw new Error(_0x75c9('0x9b'));}if(!_0x3a4065[_0x75c9('0x36')][_0x75c9('0x9c')]){throw new Error(_0x75c9('0x9d'));}var _0x4aee22=_0x3a4065[_0x75c9('0x36')]['hostname']?_0x3a4065[_0x75c9('0x36')][_0x75c9('0x9e')]+':'+_0x3a4065[_0x75c9('0x36')]['port']:_0x75c9('0x9f')+_0x3a4065[_0x75c9('0x36')]['port'];var _0xa061e7=_0x3a4065[_0x75c9('0x36')][_0x75c9('0x1f')]?_0x3a4065[_0x75c9('0x36')][_0x75c9('0x1f')]:!![];var _0x5b2989=_0x3a4065[_0x75c9('0x36')][_0x75c9('0xa0')]?_0x3a4065['query'][_0x75c9('0xa0')]:null;var _0x159a27={'method':_0x3a4065['method'],'uri':util[_0x75c9('0x51')]('%s%s',_0x4aee22,_0x3a4065[_0x75c9('0x36')][_0x75c9('0x4d')]),'json':_0xa061e7,'resolveWithFullResponse':!![],'encoding':_0x5b2989,'qs':_0x3a4065['query']};if(_0x3a4065[_0x75c9('0xa1')]){_0x159a27[_0x75c9('0xa1')]=_0x3a4065['headers'];if(_0x159a27['headers'][_0x75c9('0xa2')]){delete _0x159a27[_0x75c9('0xa1')][_0x75c9('0xa2')];}}if(_0x159a27[_0x75c9('0xa1')][_0x75c9('0xa3')]){delete _0x159a27[_0x75c9('0xa1')][_0x75c9('0xa3')];}return rp(_0x159a27);})['then'](function(_0x34018d){if(_0x34018d){_0x48f7e4['set'](_0x34018d[_0x75c9('0xa1')]);logger[_0x75c9('0x62')](_0x34018d[_0x75c9('0x8c')]);if(_[_0x75c9('0xa4')](_0x3a4065['query'][_0x75c9('0x4d')],_0x75c9('0x4c'))&&_0x34018d[_0x75c9('0xa5')]==0x1f4){return _0x48f7e4['sendStatus'](_0x34018d[_0x75c9('0xa5')]);}else{return _0x48f7e4[_0x75c9('0x1e')](_0x34018d[_0x75c9('0xa5')])[_0x75c9('0x2f')](_0x34018d[_0x75c9('0x8c')]);}}else{return _0x48f7e4[_0x75c9('0x1c')](0xc8);}})[_0x75c9('0x45')](handleError(_0x48f7e4,null));};exports[_0x75c9('0xa6')]=function(_0xb5a675,_0x206c65,_0x51380f){return BPromise['resolve']()['then'](function(){if(!_0xb5a675[_0x75c9('0x36')][_0x75c9('0x4d')]){throw new Error(_0x75c9('0x9b'));}if(!_0xb5a675[_0x75c9('0x36')][_0x75c9('0x9c')]){throw new Error(_0x75c9('0x9d'));}var _0x55513e=_0xb5a675[_0x75c9('0x36')]['hostname']?_0xb5a675['query'][_0x75c9('0x9e')]+':'+_0xb5a675[_0x75c9('0x36')][_0x75c9('0x9c')]:_0x75c9('0x9f')+_0xb5a675[_0x75c9('0x36')][_0x75c9('0x9c')];var _0x497695=_0xb5a675[_0x75c9('0x36')][_0x75c9('0x1f')]?_0xb5a675[_0x75c9('0x36')][_0x75c9('0x1f')]:!![];var _0x1d2e8c=_0xb5a675['query'][_0x75c9('0xa0')]?_0xb5a675[_0x75c9('0x36')][_0x75c9('0xa0')]:null;var _0x7c1a55={'method':_0xb5a675[_0x75c9('0xa7')],'uri':util[_0x75c9('0x51')](_0x75c9('0xa8'),_0x55513e,_0xb5a675[_0x75c9('0x36')][_0x75c9('0x4d')]),'json':_0x497695,'resolveWithFullResponse':!![],'encoding':_0x1d2e8c,'body':_0xb5a675[_0x75c9('0x8c')]};if(_0xb5a675[_0x75c9('0xa1')]){_0x7c1a55['headers']=_0xb5a675[_0x75c9('0xa1')];if(_0x7c1a55['headers'][_0x75c9('0xa2')]){delete _0x7c1a55[_0x75c9('0xa1')][_0x75c9('0xa2')];}}if(_0x7c1a55[_0x75c9('0xa1')][_0x75c9('0xa3')]){delete _0x7c1a55[_0x75c9('0xa1')][_0x75c9('0xa3')];}return rp(_0x7c1a55);})['then'](function(_0x23366e){if(_0x23366e){_0x206c65['set'](_0x23366e[_0x75c9('0xa1')]);logger[_0x75c9('0x62')](_0x23366e[_0x75c9('0x8c')]);return _0x206c65['status'](_0x23366e[_0x75c9('0xa5')])['send'](_0x23366e[_0x75c9('0x8c')]);}else{return _0x206c65[_0x75c9('0x1c')](0xc8);}})[_0x75c9('0x45')](handleError(_0x206c65,null));};