Built motion from commit 9d1906d1.|2.5.40
[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 _0xf77d=['views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','always','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','scriptPath','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','endsWith','download','statusCode','webhookPost','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','save','update','then','destroy','get','Plugins','UserProfileResource','end','error','stack','name','map','type','model','query','keys','filters','intersection','fields','attributes','length','order','sort','where','pick','merge','VIRTUAL','filter','options','Plugin','count','includeAll','rows','catch','show','params','include','find','join','root','server/files/plugins','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','**/*','dirname','node_modules/**/*','existsSync','Plugin\x20not\x20found','format','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','upload','file','filename','Plugin\x20upload\x20filepath:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isDirectory','some','manifest.json','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html'];(function(_0x19a2eb,_0x2df439){var _0x3c8514=function(_0x2b6204){while(--_0x2b6204){_0x19a2eb['push'](_0x19a2eb['shift']());}};_0x3c8514(++_0x2df439);}(_0xf77d,0x17e));var _0xdf77=function(_0x3b4493,_0x106e71){_0x3b4493=_0x3b4493-0x0;var _0x28fc72=_0xf77d[_0x3b4493];return _0x28fc72;};'use strict';var emlformat=require(_0xdf77('0x0'));var rimraf=require(_0xdf77('0x1'));var zipdir=require(_0xdf77('0x2'));var jsonpatch=require(_0xdf77('0x3'));var rp=require(_0xdf77('0x4'));var moment=require(_0xdf77('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xdf77('0x6'));var util=require('util');var path=require(_0xdf77('0x7'));var sox=require('sox');var csv=require(_0xdf77('0x8'));var ejs=require(_0xdf77('0x9'));var fs=require('fs');var fs_extra=require(_0xdf77('0xa'));var _=require(_0xdf77('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xdf77('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xdf77('0x8'));var querystring=require(_0xdf77('0xd'));var Papa=require(_0xdf77('0xe'));var extract=require(_0xdf77('0xf'));var rimraf=require(_0xdf77('0x1'));var archiver=require(_0xdf77('0x10'));var Redis=require(_0xdf77('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xdf77('0x12'));var as=require(_0xdf77('0x13'));var hardwareService=require(_0xdf77('0x14'));var logger=require(_0xdf77('0x15'))(_0xdf77('0x16'));var utils=require(_0xdf77('0x17'));var config=require(_0xdf77('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xdf77('0x19'))['db'];config[_0xdf77('0x1a')]=_['defaults'](config[_0xdf77('0x1a')],{'host':_0xdf77('0x1b'),'port':0x18eb});var socket=require(_0xdf77('0x1c'))(new Redis(config['redis']));require(_0xdf77('0x1d'))[_0xdf77('0x1e')](socket);function respondWithStatusCode(_0x511ec2,_0x538dc0){_0x538dc0=_0x538dc0||0xcc;return function(_0x5c0085){if(_0x5c0085){return _0x511ec2[_0xdf77('0x1f')](_0x538dc0);}return _0x511ec2[_0xdf77('0x20')](_0x538dc0)['end']();};}function respondWithResult(_0x165267,_0x207408){_0x207408=_0x207408||0xc8;return function(_0x525243){if(_0x525243){return _0x165267[_0xdf77('0x20')](_0x207408)[_0xdf77('0x21')](_0x525243);}};}function respondWithFilteredResult(_0x961e6c,_0xbc8678){return function(_0x13eb6c){if(_0x13eb6c){var _0x37e792=typeof _0xbc8678[_0xdf77('0x22')]===_0xdf77('0x23')&&typeof _0xbc8678[_0xdf77('0x24')]===_0xdf77('0x23');var _0x4767e8=_0x13eb6c['count'];var _0x56c5c8=_0x37e792?0x0:_0xbc8678[_0xdf77('0x22')];var _0xf7e891=_0x37e792?_0x13eb6c['count']:_0xbc8678['offset']+_0xbc8678[_0xdf77('0x24')];var _0x1e308f;if(_0xf7e891>=_0x4767e8){_0xf7e891=_0x4767e8;_0x1e308f=0xc8;}else{_0x1e308f=0xce;}_0x961e6c['status'](_0x1e308f);return _0x961e6c[_0xdf77('0x25')](_0xdf77('0x26'),_0x56c5c8+'-'+_0xf7e891+'/'+_0x4767e8)[_0xdf77('0x21')](_0x13eb6c);}return null;};}function patchUpdates(_0x589dbc){return function(_0x477aa5){try{jsonpatch[_0xdf77('0x27')](_0x477aa5,_0x589dbc,!![]);}catch(_0x32ad7c){return BPromise['reject'](_0x32ad7c);}return _0x477aa5[_0xdf77('0x28')]();};}function saveUpdates(_0xa38929,_0x180e0a){return function(_0x2ac5ee){if(_0x2ac5ee){return _0x2ac5ee[_0xdf77('0x29')](_0xa38929)[_0xdf77('0x2a')](function(_0x2270b8){return _0x2270b8;});}return null;};}function removeEntity(_0x4c4360,_0x1adb98){return function(_0x33b2e1){if(_0x33b2e1){return _0x33b2e1[_0xdf77('0x2b')]()[_0xdf77('0x2a')](function(){var _0xdc2979=_0x33b2e1[_0xdf77('0x2c')]({'plain':!![]});var _0x4463fd=_0xdf77('0x2d');return db[_0xdf77('0x2e')][_0xdf77('0x2b')]({'where':{'type':_0x4463fd,'resourceId':_0xdc2979['id']}})['then'](function(){return _0x33b2e1;});})[_0xdf77('0x2a')](function(){_0x4c4360['status'](0xcc)[_0xdf77('0x2f')]();});}};}function handleEntityNotFound(_0x301f54,_0x6f9880){return function(_0x18c201){if(!_0x18c201){_0x301f54[_0xdf77('0x1f')](0x194);}return _0x18c201;};}function handleError(_0xa95998,_0x526227){_0x526227=_0x526227||0x1f4;return function(_0x7a601a){logger[_0xdf77('0x30')](_0x7a601a[_0xdf77('0x31')]);if(_0x7a601a[_0xdf77('0x32')]){delete _0x7a601a[_0xdf77('0x32')];}_0xa95998[_0xdf77('0x20')](_0x526227)['send'](_0x7a601a);};}exports['index']=function(_0x3bc6d3,_0x1857b9){var _0x3ad375={},_0x593675={},_0x28d82f={'count':0x0,'rows':[]};var _0x2cca76=_[_0xdf77('0x33')](db['Plugin']['rawAttributes'],function(_0x438eba){return{'name':_0x438eba['fieldName'],'type':_0x438eba[_0xdf77('0x34')]['key']};});_0x593675[_0xdf77('0x35')]=_[_0xdf77('0x33')](_0x2cca76,_0xdf77('0x32'));_0x593675[_0xdf77('0x36')]=_[_0xdf77('0x37')](_0x3bc6d3['query']);_0x593675[_0xdf77('0x38')]=_[_0xdf77('0x39')](_0x593675[_0xdf77('0x35')],_0x593675['query']);_0x3ad375['attributes']=_[_0xdf77('0x39')](_0x593675[_0xdf77('0x35')],qs['fields'](_0x3bc6d3[_0xdf77('0x36')][_0xdf77('0x3a')]));_0x3ad375[_0xdf77('0x3b')]=_0x3ad375['attributes'][_0xdf77('0x3c')]?_0x3ad375[_0xdf77('0x3b')]:_0x593675['model'];if(!_0x3bc6d3['query']['hasOwnProperty']('nolimit')){_0x3ad375[_0xdf77('0x24')]=qs['limit'](_0x3bc6d3['query'][_0xdf77('0x24')]);_0x3ad375[_0xdf77('0x22')]=qs[_0xdf77('0x22')](_0x3bc6d3['query'][_0xdf77('0x22')]);}_0x3ad375[_0xdf77('0x3d')]=qs[_0xdf77('0x3e')](_0x3bc6d3[_0xdf77('0x36')]['sort']);_0x3ad375[_0xdf77('0x3f')]=qs[_0xdf77('0x38')](_[_0xdf77('0x40')](_0x3bc6d3['query'],_0x593675[_0xdf77('0x38')]),_0x2cca76);if(_0x3bc6d3['query']['filter']){_0x3ad375['where']=_[_0xdf77('0x41')](_0x3ad375['where'],{'$or':_[_0xdf77('0x33')](_0x2cca76,function(_0xe44857){if(_0xe44857[_0xdf77('0x34')]!==_0xdf77('0x42')){var _0x27efa4={};_0x27efa4[_0xe44857[_0xdf77('0x32')]]={'$like':'%'+_0x3bc6d3['query'][_0xdf77('0x43')]+'%'};return _0x27efa4;}})});}_0x3ad375=_[_0xdf77('0x41')]({},_0x3ad375,_0x3bc6d3[_0xdf77('0x44')]);var _0x2061a9={'where':_0x3ad375[_0xdf77('0x3f')]};return db[_0xdf77('0x45')][_0xdf77('0x46')](_0x2061a9)[_0xdf77('0x2a')](function(_0x2baf26){_0x28d82f[_0xdf77('0x46')]=_0x2baf26;if(_0x3bc6d3[_0xdf77('0x36')][_0xdf77('0x47')]){_0x3ad375['include']=[{'all':!![]}];}return db[_0xdf77('0x45')]['findAll'](_0x3ad375);})['then'](function(_0x2a3149){_0x28d82f[_0xdf77('0x48')]=_0x2a3149;return _0x28d82f;})[_0xdf77('0x2a')](respondWithFilteredResult(_0x1857b9,_0x3ad375))[_0xdf77('0x49')](handleError(_0x1857b9,null));};exports[_0xdf77('0x4a')]=function(_0x5b3853,_0x4510b4){var _0x1a3ecc={'raw':!![],'where':{'id':_0x5b3853[_0xdf77('0x4b')]['id']}},_0xace514={};_0xace514[_0xdf77('0x35')]=_[_0xdf77('0x37')](db[_0xdf77('0x45')]['rawAttributes']);_0xace514[_0xdf77('0x36')]=_[_0xdf77('0x37')](_0x5b3853[_0xdf77('0x36')]);_0xace514[_0xdf77('0x38')]=_[_0xdf77('0x39')](_0xace514['model'],_0xace514['query']);_0x1a3ecc[_0xdf77('0x3b')]=_[_0xdf77('0x39')](_0xace514[_0xdf77('0x35')],qs[_0xdf77('0x3a')](_0x5b3853['query'][_0xdf77('0x3a')]));_0x1a3ecc['attributes']=_0x1a3ecc[_0xdf77('0x3b')][_0xdf77('0x3c')]?_0x1a3ecc[_0xdf77('0x3b')]:_0xace514[_0xdf77('0x35')];if(_0x5b3853[_0xdf77('0x36')][_0xdf77('0x47')]){_0x1a3ecc[_0xdf77('0x4c')]=[{'all':!![]}];}_0x1a3ecc=_['merge']({},_0x1a3ecc,_0x5b3853[_0xdf77('0x44')]);return db[_0xdf77('0x45')][_0xdf77('0x4d')](_0x1a3ecc)[_0xdf77('0x2a')](handleEntityNotFound(_0x4510b4,null))[_0xdf77('0x2a')](respondWithResult(_0x4510b4,null))[_0xdf77('0x49')](handleError(_0x4510b4,null));};exports['download']=function(_0x5453c0,_0x6e98b,_0x4db131){return db['Plugin'][_0xdf77('0x4d')]({'where':{'id':_0x5453c0['params']['id']},'attributes':[_0xdf77('0x32'),_0xdf77('0x7')],'raw':!![]})[_0xdf77('0x2a')](handleEntityNotFound(_0x6e98b,null))[_0xdf77('0x2a')](function(_0xcbe639){if(_0xcbe639){var _0x142e75=path[_0xdf77('0x4e')](config[_0xdf77('0x4f')],_0xdf77('0x50'),util['format'](_0xdf77('0x51'),path[_0xdf77('0x52')](_0xcbe639[_0xdf77('0x7')])));var _0x225904=fs[_0xdf77('0x53')](_0x142e75);var _0x3eaf91=archiver(_0xdf77('0x54'),{'zlib':{'level':0x9}});_0x3eaf91['on'](_0xdf77('0x55'),function(_0x5bc9a5){if(_0x5bc9a5[_0xdf77('0x56')]===_0xdf77('0x57')){logger[_0xdf77('0x30')](_0x5bc9a5);}else{throw new db[(_0xdf77('0x58'))][(_0xdf77('0x59'))](_0xdf77('0x5a'));}});_0x3eaf91['on'](_0xdf77('0x30'),function(_0xeee33a){throw new db['Sequelize'][(_0xdf77('0x59'))](_0xdf77('0x5a'));});_0x3eaf91[_0xdf77('0x5b')](_0x225904);_0x3eaf91['glob'](_0xdf77('0x5c'),{'cwd':path[_0xdf77('0x4e')](config[_0xdf77('0x4f')],_0xdf77('0x50'),path[_0xdf77('0x5d')](_0xcbe639[_0xdf77('0x7')])),'ignore':[path[_0xdf77('0x4e')](path['basename'](_0xcbe639[_0xdf77('0x7')]),_0xdf77('0x5e')),path['join'](path[_0xdf77('0x52')](_0xcbe639[_0xdf77('0x7')]),'attachments/**/*')],'nodir':!![]})['finalize']();_0x225904['on']('close',function(){if(!fs[_0xdf77('0x5f')](_0x142e75)){throw new db[(_0xdf77('0x58'))]['Error'](_0xdf77('0x60'));}return _0x6e98b['download'](_0x142e75,util[_0xdf77('0x61')](_0xdf77('0x51'),path['basename'](_0xcbe639[_0xdf77('0x7')])),function(_0x59eaaf){if(_0x59eaaf){throw new db[(_0xdf77('0x58'))]['Error'](_0xdf77('0x62'));}fs[_0xdf77('0x63')](_0x142e75);logger[_0xdf77('0x64')]('Download\x20completed');logger['info']('Temporary\x20file\x20removed');});});}return null;})['catch'](handleError(_0x6e98b,null));};exports[_0xdf77('0x65')]=function(_0x3bed5f,_0x14a628,_0x545fe9){var _0x545d7=path[_0xdf77('0x52')](_0x3bed5f[_0xdf77('0x66')][_0xdf77('0x67')],path['extname'](_0x3bed5f[_0xdf77('0x66')][_0xdf77('0x67')]));var _0x537243=path[_0xdf77('0x4e')](config[_0xdf77('0x4f')],_0xdf77('0x50'),_0x3bed5f[_0xdf77('0x66')][_0xdf77('0x67')]);var _0x4b4396=path['join'](config[_0xdf77('0x4f')],_0xdf77('0x50'),_0x545d7);logger['info'](_0xdf77('0x68'),_0x537243);logger['info']('Plugin\x20upload\x20destination:\x20%s',_0x4b4396);try{fs[_0xdf77('0x69')](_0x537243,parseInt(_0xdf77('0x6a'),0x8));extract(_0x537243,{'dir':_0x4b4396},function(_0x379acc){if(_0x379acc){logger['error'](_0x379acc);handleError(_0x379acc,!![]);};var _0x23d6fe=fs[_0xdf77('0x6b')](_0x4b4396);if(_0x23d6fe[_0xdf77('0x3c')]>0x1){removeReferences(_0x537243,_0x4b4396);logger[_0xdf77('0x30')]('Invalid\x20plugin\x20structure');return _0x545fe9(new Error(_0xdf77('0x6c')));}var _0x1fabd7=fs[_0xdf77('0x6d')](path[_0xdf77('0x4e')](_0x4b4396,_0x23d6fe[0x0]));if(_0x1fabd7['isFile']()){removeReferences(_0x537243,_0x4b4396);logger[_0xdf77('0x30')](_0xdf77('0x6c'));return _0x545fe9(new Error(_0xdf77('0x6c')));}if(_0x1fabd7[_0xdf77('0x6e')]()){var _0x4ef109=fs[_0xdf77('0x6b')](path[_0xdf77('0x4e')](_0x4b4396,_0x23d6fe[0x0]));if(_0x4ef109[_0xdf77('0x3c')]===0x0){removeReferences(_0x537243,_0x4b4396);logger[_0xdf77('0x30')](_0xdf77('0x6c'));return _0x545fe9(new Error(_0xdf77('0x6c')));}var _0xe4e20f=_0x4ef109[_0xdf77('0x6f')](function(_0x392eb3){return _0x392eb3===_0xdf77('0x70');});if(!_0xe4e20f){return _0x545fe9(new Error('Plugin\x20manifest\x20missing'));}var _0x2dccae=fs[_0xdf77('0x71')](path['join'](_0x4b4396,_0x23d6fe[0x0],_0xdf77('0x70')));var _0x5c041a=JSON[_0xdf77('0x72')](_0x2dccae);if(_0xdf77('0x23')==typeof _0x5c041a[_0xdf77('0x32')]){return _0x545fe9(new Error(_0xdf77('0x73')));}if('undefined'==typeof _0x5c041a['type']){return _0x545fe9(new Error(_0xdf77('0x74')));}if(_0xdf77('0x23')==typeof _0x5c041a[_0xdf77('0x75')]){return _0x545fe9(new Error(_0xdf77('0x76')));}if(_0xdf77('0x23')==typeof _0x5c041a[_0xdf77('0x77')]){return _0x545fe9(new Error(_0xdf77('0x78')));}if(_0x5c041a[_0xdf77('0x34')]===_0xdf77('0x79')){if(_0xdf77('0x23')==typeof _0x5c041a['parameters'][_0xdf77('0x7a')]){return _0x545fe9(new Error('Invalid\x20manifest:\x20views\x20missing'));}if('undefined'==typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')][_0xdf77('0x7b')]&&'undefined'==typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')][_0xdf77('0x7c')]){return _0x545fe9(new Error(_0xdf77('0x7d')));}}else if(_0x5c041a[_0xdf77('0x34')]===_0xdf77('0x7e')){if(_0xdf77('0x23')==typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7f')]){return _0x545fe9(new Error(_0xdf77('0x80')));}if(_0xdf77('0x23')==typeof _0x5c041a[_0xdf77('0x77')]['scriptPath']){return _0x545fe9(new Error(_0xdf77('0x81')));}}else{return _0x545fe9(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x12bf22=_0x5c041a[_0xdf77('0x32')];var _0x5453f2=_0x5c041a[_0xdf77('0x82')];var _0xde7ab9=_0x5c041a[_0xdf77('0x34')];var _0x35fb43=_0x5c041a[_0xdf77('0x83')]?_0x5c041a[_0xdf77('0x83')]:_0xdf77('0x84');var _0xae8807=_0x5c041a[_0xdf77('0x85')]?_0x5c041a[_0xdf77('0x85')]:_0xdf77('0x86');var _0x188f40='';var _0x4732af='';var _0x26f65d='';var _0x4e6a7f='';var _0x288635=_0x5c041a['version'];if(_0xde7ab9===_0xdf77('0x79')){if('undefined'!=typeof _0x5c041a['parameters'][_0xdf77('0x7a')][_0xdf77('0x7b')]){var _0x7291ef=_0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')][_0xdf77('0x7b')];if(!/^(f|ht)tps?:\/\//i[_0xdf77('0x87')](_0x7291ef)){_0x188f40=path['join'](_0xdf77('0x88'),_0x545d7,_0x23d6fe[0x0],_0x7291ef);}else{_0x188f40=_0x7291ef;}}else{logger[_0xdf77('0x64')](_0xdf77('0x89'));}if(_0xdf77('0x23')!=typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')][_0xdf77('0x7c')]){var _0x24c4a3=_0x5c041a[_0xdf77('0x77')]['views'][_0xdf77('0x7c')];if(!/^(f|ht)tps?:\/\//i['test'](_0x24c4a3)){_0x4732af=path[_0xdf77('0x4e')](_0xdf77('0x88'),_0x545d7,_0x23d6fe[0x0],_0x24c4a3);}else{_0x4732af=_0x24c4a3;}}else{logger['info'](_0xdf77('0x8a'));}}else if(_0xde7ab9===_0xdf77('0x7e')){_0x26f65d=_0x5c041a[_0xdf77('0x77')][_0xdf77('0x7f')];_0x4e6a7f=_0x5c041a['parameters'][_0xdf77('0x8b')];if(_0xdf77('0x23')!=typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')]){if(_0xdf77('0x23')!=typeof _0x5c041a['parameters']['views'][_0xdf77('0x7b')]){var _0x7291ef=_0x5c041a['parameters']['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0xdf77('0x87')](_0x7291ef)){_0x188f40=path[_0xdf77('0x4e')]('plugins',_0x545d7,_0x23d6fe[0x0],_0x7291ef);}else{_0x188f40=_0x7291ef;}}if('undefined'!=typeof _0x5c041a[_0xdf77('0x77')][_0xdf77('0x7a')][_0xdf77('0x7c')]){var _0x24c4a3=_0x5c041a['parameters'][_0xdf77('0x7a')][_0xdf77('0x7c')];if(!/^(f|ht)tps?:\/\//i[_0xdf77('0x87')](_0x24c4a3)){_0x4732af=path[_0xdf77('0x4e')](_0xdf77('0x88'),_0x545d7,_0x23d6fe[0x0],_0x24c4a3);}else{_0x4732af=_0x24c4a3;}}}}var _0xeaa9c1={'name':_0x12bf22,'description':_0x5453f2,'path':path['join'](_0x545d7,_0x23d6fe[0x0]),'type':_0xde7ab9,'sidebar':_0x35fb43,'icon':_0xae8807,'adminUrl':_0x188f40,'agentUrl':_0x4732af,'scriptName':_0x26f65d,'scriptPath':_0x4e6a7f,'version':_0x288635};removeReferences(_0x537243,null);return db[_0xdf77('0x45')][_0xdf77('0x8c')](_0xeaa9c1)[_0xdf77('0x2a')](function(_0x556c73){var _0x2872ad={'role':_0x3bed5f[_0xdf77('0x8d')][_0xdf77('0x8e')],'userProfileId':_0x3bed5f['body']['userProfileId']};if(!_0x2872ad)throw new Error(_0xdf77('0x8f'));if(_0x2872ad[_0xdf77('0x8e')]===_0xdf77('0x90')){var _0x160f1c=_0x556c73[_0xdf77('0x2c')]({'plain':!![]});return db[_0xdf77('0x91')][_0xdf77('0x4d')]({'where':{'name':_0xdf77('0x2d'),'userProfileId':_0x2872ad['userProfileId']},'raw':!![]})[_0xdf77('0x2a')](function(_0x53efd0){if(_0x53efd0&&_0x53efd0['autoAssociation']===0x0){return db[_0xdf77('0x2e')][_0xdf77('0x8c')]({'name':_0x160f1c[_0xdf77('0x32')],'resourceId':_0x160f1c['id'],'type':_0x53efd0['name'],'sectionId':_0x53efd0['id']},{})[_0xdf77('0x2a')](function(){return _0x556c73;});}else{return _0x556c73;}})[_0xdf77('0x49')](function(_0x43be61){logger['error'](_0xdf77('0x92'),_0x43be61);throw _0x43be61;});}return _0x556c73;})[_0xdf77('0x2a')](respondWithResult(_0x14a628,null))[_0xdf77('0x49')](handleError(_0x14a628,null));}});}catch(_0x5871af){_0x14a628[_0xdf77('0x20')](0x1f4)[_0xdf77('0x93')](_0x5871af);}};function removeReferences(_0x7ecb62,_0x335199){try{if(_0x7ecb62){fs['unlinkSync'](_0x7ecb62);logger['info'](_0xdf77('0x94'));}if(_0x335199){rimraf(_0x335199,function(){});logger[_0xdf77('0x64')](_0xdf77('0x95'));}}catch(_0x556fb6){logger['error'](_0x556fb6);}}exports['update']=function(_0x52fbf8,_0x4d21e9,_0x3792cd){return db['Plugin']['find']({'where':{'id':_0x52fbf8[_0xdf77('0x4b')]['id']}})['then'](handleEntityNotFound(_0x4d21e9,null))[_0xdf77('0x2a')](saveUpdates(_0x52fbf8['body'],null))['then'](respondWithResult(_0x4d21e9,null))[_0xdf77('0x49')](handleError(_0x4d21e9,null));};exports[_0xdf77('0x96')]=function(_0x1c42e7,_0x5e09b3,_0x3f30f2){return db[_0xdf77('0x45')][_0xdf77('0x4d')]({'where':{'id':_0x1c42e7[_0xdf77('0x4b')]['id']}})[_0xdf77('0x2a')](function(_0x7510fa){if(_0x7510fa){return _0x7510fa[_0xdf77('0x2b')]();}})[_0xdf77('0x2a')](function(_0x2382e3){rimraf(path[_0xdf77('0x4e')](config[_0xdf77('0x4f')],'server/files/plugins',path[_0xdf77('0x5d')](_0x2382e3['path'])),function(){});return _0x2382e3;})['then'](handleEntityNotFound(_0x5e09b3,null))[_0xdf77('0x2a')](respondWithStatusCode(_0x5e09b3,null))[_0xdf77('0x49')](handleError(_0x5e09b3,null));};exports[_0xdf77('0x97')]=function(_0x39ddc8,_0x4752cd,_0x2bea4f){return BPromise[_0xdf77('0x98')]()[_0xdf77('0x2a')](function(){if(!_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x7')]){throw new Error(_0xdf77('0x99'));}if(!_0x39ddc8['query'][_0xdf77('0x9a')]){throw new Error(_0xdf77('0x9b'));}var _0xb5e498=_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x9c')]?_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x9c')]+':'+_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x9a')]:_0xdf77('0x9d')+_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x9a')];var _0x598e99=_0x39ddc8['query'][_0xdf77('0x21')]?_0x39ddc8['query'][_0xdf77('0x21')]:!![];var _0x2ce227=_0x39ddc8[_0xdf77('0x36')]['encoding']?_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x9e')]:null;var _0x108346={'method':_0x39ddc8[_0xdf77('0x9f')],'uri':util[_0xdf77('0x61')](_0xdf77('0xa0'),_0xb5e498,_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x7')]),'json':_0x598e99,'resolveWithFullResponse':!![],'encoding':_0x2ce227,'qs':_0x39ddc8[_0xdf77('0x36')]};if(_0x39ddc8[_0xdf77('0xa1')]){_0x108346['headers']=_0x39ddc8[_0xdf77('0xa1')];if(_0x108346[_0xdf77('0xa1')][_0xdf77('0xa2')]){delete _0x108346[_0xdf77('0xa1')][_0xdf77('0xa2')];}}if(_0x108346[_0xdf77('0xa1')][_0xdf77('0xa3')]){delete _0x108346[_0xdf77('0xa1')][_0xdf77('0xa3')];}return rp(_0x108346);})['then'](function(_0x2e3d64){if(_0x2e3d64){_0x4752cd[_0xdf77('0x25')](_0x2e3d64[_0xdf77('0xa1')]);logger[_0xdf77('0x64')](_0x2e3d64[_0xdf77('0x8d')]);if(_[_0xdf77('0xa4')](_0x39ddc8[_0xdf77('0x36')][_0xdf77('0x7')],_0xdf77('0xa5'))&&_0x2e3d64[_0xdf77('0xa6')]==0x1f4){return _0x4752cd[_0xdf77('0x1f')](_0x2e3d64[_0xdf77('0xa6')]);}else{return _0x4752cd[_0xdf77('0x20')](_0x2e3d64['statusCode'])[_0xdf77('0x93')](_0x2e3d64['body']);}}else{return _0x4752cd[_0xdf77('0x1f')](0xc8);}})[_0xdf77('0x49')](handleError(_0x4752cd,null));};exports[_0xdf77('0xa7')]=function(_0x7dc928,_0x481c53,_0x38ee73){return BPromise[_0xdf77('0x98')]()[_0xdf77('0x2a')](function(){if(!_0x7dc928[_0xdf77('0x36')][_0xdf77('0x7')]){throw new Error(_0xdf77('0x99'));}if(!_0x7dc928['query']['port']){throw new Error(_0xdf77('0x9b'));}var _0x1c7a14=_0x7dc928['query'][_0xdf77('0x9c')]?_0x7dc928[_0xdf77('0x36')][_0xdf77('0x9c')]+':'+_0x7dc928['query'][_0xdf77('0x9a')]:_0xdf77('0x9d')+_0x7dc928[_0xdf77('0x36')][_0xdf77('0x9a')];var _0x277f75=_0x7dc928[_0xdf77('0x36')][_0xdf77('0x21')]?_0x7dc928[_0xdf77('0x36')][_0xdf77('0x21')]:!![];var _0x1f9c33=_0x7dc928[_0xdf77('0x36')][_0xdf77('0x9e')]?_0x7dc928[_0xdf77('0x36')][_0xdf77('0x9e')]:null;var _0x546e02={'method':_0x7dc928[_0xdf77('0x9f')],'uri':util[_0xdf77('0x61')](_0xdf77('0xa0'),_0x1c7a14,_0x7dc928[_0xdf77('0x36')][_0xdf77('0x7')]),'json':_0x277f75,'resolveWithFullResponse':!![],'encoding':_0x1f9c33,'body':_0x7dc928['body']};if(_0x7dc928[_0xdf77('0xa1')]){_0x546e02[_0xdf77('0xa1')]=_0x7dc928[_0xdf77('0xa1')];if(_0x546e02[_0xdf77('0xa1')][_0xdf77('0xa2')]){delete _0x546e02['headers']['content-length'];}}if(_0x546e02[_0xdf77('0xa1')][_0xdf77('0xa3')]){delete _0x546e02[_0xdf77('0xa1')]['content-type'];}return rp(_0x546e02);})['then'](function(_0x52aa08){if(_0x52aa08){_0x481c53['set'](_0x52aa08['headers']);logger[_0xdf77('0x64')](_0x52aa08['body']);return _0x481c53['status'](_0x52aa08[_0xdf77('0xa6')])[_0xdf77('0x93')](_0x52aa08[_0xdf77('0x8d')]);}else{return _0x481c53[_0xdf77('0x1f')](0xc8);}})[_0xdf77('0x49')](handleError(_0x481c53,null));};