diff options
author | 2021-08-20 15:40:35 +0100 | |
---|---|---|
committer | 2021-08-27 10:33:32 +0000 | |
commit | a5e32b3d20bc078482cb08645c38ffb685c0f145 (patch) | |
tree | 133fe88578f3a3c3db3ec73315b65f45caba625a /catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java | |
parent | 4701612ba26c4b8c7c7e9fbfa38f582a4b74669f (diff) |
Support querying of model by type
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3678
Change-Id: I5fd19eefe475113df501901628b2ee8669004399
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java index 337c641b33..6449a91112 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java @@ -41,9 +41,11 @@ import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import org.apache.commons.lang3.StringUtils; import org.glassfish.jersey.media.multipart.FormDataParam; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ModelBusinessLogic; @@ -53,10 +55,12 @@ import org.openecomp.sdc.be.components.impl.aaf.PermissionAllowed; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.BeEcompErrorManager; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.datatypes.enums.ModelTypeEnum; import org.openecomp.sdc.be.exception.BusinessException; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.model.Model; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.exception.ModelOperationExceptionSupplier; import org.openecomp.sdc.be.ui.model.ModelCreateRequest; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; @@ -108,6 +112,9 @@ public class ModelServlet extends AbstractValidationsServlet { validateUser(ValidationUtils.sanitizeInputString(userId)); final var modelName = ValidationUtils.sanitizeInputString(modelCreateRequest.getName().trim()); try { + if (modelCreateRequest.getModelType() == null){ + modelCreateRequest.setModelType(ModelTypeEnum.NORMATIVE); + } final Model createdModel = modelBusinessLogic .createModel(new JMapper<>(Model.class, ModelCreateRequest.class).getDestination(modelCreateRequest)); modelBusinessLogic.createModelImports(modelName, modelImportsZip); @@ -134,10 +141,10 @@ public class ModelServlet extends AbstractValidationsServlet { @ApiResponse(responseCode = "403", description = "Restricted operation") } ) - public Response listModels(@HeaderParam(value = Constants.USER_ID_HEADER) final String userId) { + public Response listModels(@HeaderParam(value = Constants.USER_ID_HEADER) final String userId, @QueryParam("modelType") final String modelType) { validateUser(ValidationUtils.sanitizeInputString(userId)); try { - final List<Model> modelList = modelBusinessLogic.listModels(); + final List<Model> modelList = StringUtils.isEmpty(modelType)? modelBusinessLogic.listModels() : modelBusinessLogic.listModels(getModelTypeEnum(modelType)); return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), RepresentationUtils.toRepresentation(modelList)); } catch (final BusinessException e) { throw e; @@ -148,6 +155,14 @@ public class ModelServlet extends AbstractValidationsServlet { return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); } } + + private ModelTypeEnum getModelTypeEnum(final String modelType) { + final ModelTypeEnum modelTypeEnum = ModelTypeEnum.valueOf(modelType.toUpperCase()); + if (modelTypeEnum == null) { + throw ModelOperationExceptionSupplier.unknownModelType(modelType).get(); + } + return modelTypeEnum; + } @PUT @Path("/model/imports") |