From 2646e63a47c11fa87c2a1cc07a9050aad58d27dc Mon Sep 17 00:00:00 2001 From: Arun Bandari Date: Wed, 11 Nov 2020 15:49:25 +0530 Subject: [PATCH] ApplaudSolutions/applaud-cloud#2971 support seeded models --- index.js | 14 +++++++++----- public/lib/loadSwaggerUI.js | 4 ++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index ef62cfb..75df476 100644 --- a/index.js +++ b/index.js @@ -138,14 +138,18 @@ function mountSwagger(loopbackApplication, swaggerApp, opts) { }; //list of APIs to hide from UI. const blackListKeys = _.keys(blackListApi); const blackListValues = _.values(blackListApi); + const isStandardModel = req.query.type === 'seed'; if (tenantId) { - swaggerFilterPath = '/custom/' + tenantId; + let Model; + if (isStandardModel) swaggerFilterPath = '/'; + else swaggerFilterPath = '/custom/' + tenantId + '-'; if (req.query && req.query.model) { - const modelName = tenantId + '-' + req.query.model; + const modelName = isStandardModel ? req.query.model : tenantId + '-' + req.query.model; const modelDef = req.app.models[modelName]; + Model = modelDef; if (modelDef && modelDef.definition && modelDef.definition.settings && modelDef.definition.settings.slug) { - swaggerFilterPath += '-' + modelDef.definition.settings.slug; - } else swaggerFilterPath += '-' + req.query.model; + swaggerFilterPath += modelDef.definition.settings.slug; + } else swaggerFilterPath += req.query.model; } if (swaggerObject && swaggerObject.paths) { @@ -189,7 +193,7 @@ function mountSwagger(loopbackApplication, swaggerApp, opts) { }, {}); const includeDefaultDefinitions = ['ObjectID', 'x-any']; filteredSwaggerObject.definitions = _.pickBy(swaggerObject.definitions, function(val, key) { - return key.startsWith(tenantId) || includeDefaultDefinitions.indexOf(key) !== -1; + return (Model && Model.modelName === key) || key.startsWith(tenantId) || includeDefaultDefinitions.indexOf(key) !== -1; }); res.status(200).send(filteredSwaggerObject); } else { diff --git a/public/lib/loadSwaggerUI.js b/public/lib/loadSwaggerUI.js index a75a3a8..eb00f95 100644 --- a/public/lib/loadSwaggerUI.js +++ b/public/lib/loadSwaggerUI.js @@ -35,11 +35,15 @@ $(function() { var methodOrder = ['get', 'head', 'options', 'put', 'post', 'delete']; var url = config.url || '/swagger/resources'; var model = GetParameterValues('model'); + var type = GetParameterValues('type'); var token = window.localStorage.getItem(appKey); if (model) { url += (url.indexOf('?') > 0 ? '&' : '?') + 'model=' + model; $('body').addClass('stripped'); } + if (type) { + url += (url.indexOf('?') > 0 ? '&' : '?') + 'type=' + type; + } if (token) { url += (url.indexOf('?') > 0 ? '&' : '?') + 'acccess_token=' + token; }