diff options
Diffstat (limited to 'catalog-be/src/main/java/org')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ModelBusinessLogic.java | 10 | ||||
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ModelServlet.java | 28 |
2 files changed, 38 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ModelBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ModelBusinessLogic.java index 7f68a00a8b..a048af4ac8 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ModelBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ModelBusinessLogic.java @@ -21,6 +21,7 @@ package org.openecomp.sdc.be.components.impl; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.List; import java.util.Map; import java.util.Optional; import org.apache.commons.lang3.StringUtils; @@ -56,6 +57,15 @@ public class ModelBusinessLogic { return modelOperation.findModelByName(modelName); } + /** + * Loads the list of models. + * + * @return the list of models + */ + public List<Model> listModels() { + return modelOperation.findAllModels(); + } + public void createModelImports(final String modelName, final InputStream modelImportsZip) { if (StringUtils.isEmpty(modelName)) { throw ModelOperationExceptionSupplier.invalidModel(modelName).get(); 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 0c5e4aebd6..337c641b33 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 @@ -30,10 +30,12 @@ import io.swagger.v3.oas.annotations.servers.Server; import io.swagger.v3.oas.annotations.tags.Tag; import java.io.InputStream; import java.util.Arrays; +import java.util.List; import javax.inject.Inject; import javax.validation.Valid; import javax.validation.constraints.NotNull; import javax.ws.rs.Consumes; +import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.PUT; @@ -121,6 +123,32 @@ public class ModelServlet extends AbstractValidationsServlet { } } + @GET + @Path("/model") + @Produces(MediaType.APPLICATION_JSON) + @PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE) + @Operation(method = "GET", summary = "List TOSCA models", description = "List all the existing TOSCA models", + responses = { + @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = Model.class)))), + @ApiResponse(responseCode = "200", description = "Listing successful"), + @ApiResponse(responseCode = "403", description = "Restricted operation") + } + ) + public Response listModels(@HeaderParam(value = Constants.USER_ID_HEADER) final String userId) { + validateUser(ValidationUtils.sanitizeInputString(userId)); + try { + final List<Model> modelList = modelBusinessLogic.listModels(); + return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), RepresentationUtils.toRepresentation(modelList)); + } catch (final BusinessException e) { + throw e; + } catch (final Exception e) { + var errorMsg = "Unexpected error while listing the models"; + BeEcompErrorManager.getInstance().logBeRestApiGeneralError(errorMsg); + log.error(errorMsg, e); + return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); + } + } + @PUT @Path("/model/imports") @Consumes(MediaType.MULTIPART_FORM_DATA) |