diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java | 93 |
1 files changed, 32 insertions, 61 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java index 0309e23e72..6d61e0685b 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java @@ -20,47 +20,28 @@ package org.openecomp.sdc.be.servlets; -import java.util.List; - -import javax.inject.Singleton; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import com.jcabi.aspects.Loggable; +import fj.data.Either; +import io.swagger.annotations.*; import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.config.BeEcompErrorManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.info.GroupDefinitionInfo; import org.openecomp.sdc.be.model.GroupDefinition; -import org.openecomp.sdc.be.model.GroupProperty; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.log.wrappers.Logger; import org.openecomp.sdc.exception.ResponseFormat; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import com.google.common.reflect.TypeToken; -import com.jcabi.aspects.Loggable; - -import fj.data.Either; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; +import javax.inject.Singleton; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; /** * Root resource (exposed at "/" path) @@ -69,11 +50,11 @@ import io.swagger.annotations.ApiResponses; @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/v1/catalog") -@Api(value = "Resource Group Servlet") +@Api(value = "Group Servlet") @Singleton public class GroupServlet extends AbstractValidationsServlet { - private static final Logger log = LoggerFactory.getLogger(GroupServlet.class); + private static final Logger log = Logger.getLogger(GroupServlet.class); public static final String START_HANDLE_REQUEST = "Start handle request of {}"; @POST @@ -98,7 +79,7 @@ public class GroupServlet extends AbstractValidationsServlet { GroupBusinessLogic businessLogic = getGroupBL(context); ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(containerComponentType); GroupDefinition groupDefinition = businessLogic - .createGroup(type, componentTypeEnum, componentId, userId); + .createGroup(componentId, componentTypeEnum, type, userId); return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.CREATED), groupDefinition); @@ -162,7 +143,7 @@ public class GroupServlet extends AbstractValidationsServlet { GroupBusinessLogic businessLogic = this.getGroupBL(context); ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(containerComponentType); GroupDefinition groupDefinition = businessLogic - .deleteGroup(componentTypeEnum, componentId, groupId, userId); + .deleteGroup(componentId, componentTypeEnum, groupId, userId); return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.NO_CONTENT), groupDefinition.getUniqueId()); } @@ -184,33 +165,25 @@ public class GroupServlet extends AbstractValidationsServlet { ServletContext context = request.getSession().getServletContext(); GroupBusinessLogic businessLogic = this.getGroupBL(context); ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(containerComponentType); - GroupDefinition updatedGroup = businessLogic.updateGroup(componentTypeEnum, componentId, groupId, userId, groupData); + GroupDefinition updatedGroup = businessLogic.updateGroup(componentId, componentTypeEnum, groupId, userId, groupData); return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), updatedGroup); } - /** - * Updates List of properties on a group (only values) - * @param containerComponentType - * @param componentId - * @param groupUniqueId - * @param data - * @param request - * @param userId - * @return - */ @PUT - @Path("/{containerComponentType}/{componentId}/groups/{groupUniqueId}/properties") - @ApiOperation(value = "Updates List of properties on a group (only values)", httpMethod = "PUT", notes = "Returns updated list of properties", response = GroupDefinition.class) + @Path("/{containerComponentType}/{componentId}/groups/{groupUniqueId}/metadata") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation(value = "Update Group Metadata", httpMethod = "PUT", notes = "Returns updated group definition", response = GroupDefinition.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Group Updated"), @ApiResponse(code = 403, message = "Restricted operation"), @ApiResponse(code = 400, message = "Invalid content / Missing content") }) - public Response updateGroupProperties(@PathParam("containerComponentType") final String containerComponentType, + public Response updateGroupMetadata( + @PathParam("containerComponentType") final String containerComponentType, @PathParam("componentId") final String componentId, @PathParam("groupUniqueId") final String groupUniqueId, - @ApiParam(value = "Group Properties to be Updated", required = true) String data, + @ApiParam(value = "Service object to be Updated", required = true) String data, @Context final HttpServletRequest request, @HeaderParam(value = Constants.USER_ID_HEADER) String userId) { - init(log); ServletContext context = request.getSession().getServletContext(); String url = request.getMethod() + " " + request.getRequestURI(); log.debug(START_HANDLE_REQUEST, url); @@ -223,21 +196,19 @@ public class GroupServlet extends AbstractValidationsServlet { try { GroupBusinessLogic businessLogic = getGroupBL(context); - Either<List<GroupProperty>, ResponseFormat> convertResponse = parseListOfObjects(data, - new TypeToken<List<GroupProperty>>() { - }.getType()); + Either<GroupDefinition, ResponseFormat> convertResponse = parseToObject(data, () -> GroupDefinition.class); if (convertResponse.isRight()) { - log.debug("failed to parse group Property"); + log.debug("failed to parse group"); response = buildErrorResponse(convertResponse.right().value()); return response; } - List<GroupProperty> groupPropertyToUpdate = convertResponse.left().value(); + GroupDefinition updatedGroup = convertResponse.left().value(); // Update GroupDefinition ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(containerComponentType); - Either<List<GroupProperty>, ResponseFormat> actionResponse = businessLogic.validateAndUpdateGroupProperties( - componentId, groupUniqueId, user, componentTypeEnum, groupPropertyToUpdate, false); + Either<GroupDefinition, ResponseFormat> actionResponse = businessLogic + .validateAndUpdateGroupMetadata(componentId, user, componentTypeEnum, updatedGroup, true ,true); if (actionResponse.isRight()) { log.debug("failed to update GroupDefinition"); @@ -245,13 +216,13 @@ public class GroupServlet extends AbstractValidationsServlet { return response; } - List<GroupProperty> groupProperty = actionResponse.left().value(); - Object result = RepresentationUtils.toRepresentation(groupProperty); + GroupDefinition group = actionResponse.left().value(); + Object result = RepresentationUtils.toRepresentation(group); return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), result); } catch (Exception e) { - BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Update Group Properties"); - log.debug("update group properties failed with exception", e); + BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Update Group Metadata"); + log.debug("update group metadata failed with exception", e); response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); return response; |