From 8e9c0653dd6c6862123c9609ae34e1206d86456e Mon Sep 17 00:00:00 2001 From: talig Date: Wed, 20 Dec 2017 14:30:43 +0200 Subject: Add collaboration feature Issue-ID: SDC-767 Change-Id: I14fb4c1f54086ed03a56a7ff7fab9ecd40381795 Signed-off-by: talig --- .../item-permissions-rest-services/pom.xml | 68 ++++++++++++++++++++++ .../itempermissions/rest/ItemPermissions.java | 53 +++++++++++++++++ .../MapItemPermissionsToItemPermissionsDto.java | 20 +++++++ .../rest/services/ItemPermissionsImpl.java | 52 +++++++++++++++++ .../item-permissions-rest-types/pom.xml | 24 ++++++++ .../itempermissions/types/ItemPermissionsDto.java | 27 +++++++++ .../types/ItemPermissionsRequestDto.java | 32 ++++++++++ .../item-permissions-rest/pom.xml | 24 ++++++++ 8 files changed, 300 insertions(+) create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/pom.xml create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/ItemPermissions.java create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/mapping/MapItemPermissionsToItemPermissionsDto.java create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/services/ItemPermissionsImpl.java create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/pom.xml create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsDto.java create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsRequestDto.java create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/pom.xml (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest') diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/pom.xml new file mode 100644 index 0000000000..cec27da833 --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + + org.openecomp.sdc + item-permissions-rest + 1.2.0-SNAPSHOT + + + item-permissions-rest-services + + + + + + org.openecomp.sdc + item-permissions-rest-types + ${project.version} + + + + org.openecomp.sdc + openecomp-sdc-common-rest + ${project.version} + + + + org.openecomp.sdc + openecomp-sdc-item-permissions-manager + ${project.version} + + + + javax.inject + javax.inject + 1 + + + + + + + + + + + + + + + + + io.swagger + swagger-models + RELEASE + + + org.springframework + spring-context + ${spring.framework.version} + + + + + \ No newline at end of file diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/ItemPermissions.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/ItemPermissions.java new file mode 100644 index 0000000000..e73595c67b --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/ItemPermissions.java @@ -0,0 +1,53 @@ +package org.openecomp.sdcrests.itempermissions.rest; + + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.openecomp.sdcrests.itempermissions.types.ItemPermissionsDto; +import org.openecomp.sdcrests.itempermissions.types.ItemPermissionsRequestDto; +import org.springframework.validation.annotation.Validated; + +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.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM; +import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG; + +/** + * Created by ayalaben on 6/18/2017. + */ +@Path("/v1.0/items/{itemId}/permissions") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +@Api(value = "Item Permissions") +@Validated +public interface ItemPermissions { + + @GET + @Path("/") + @ApiOperation(value = "List users permissions assigned on item", + response = ItemPermissionsDto.class, + responseContainer = "List") + + Response list(@PathParam("itemId") String itemId, + @HeaderParam(USER_ID_HEADER_PARAM) String user); + + @PUT + @Path("/{permission}") + @ApiOperation(value = "Update useres permission on item") + Response updatePermissions(@Valid ItemPermissionsRequestDto request, + @PathParam("itemId") String itemId, + @PathParam("permission") String permission, + @NotNull(message = USER_MISSING_ERROR_MSG) + @HeaderParam(USER_ID_HEADER_PARAM) String user); + +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/mapping/MapItemPermissionsToItemPermissionsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/mapping/MapItemPermissionsToItemPermissionsDto.java new file mode 100644 index 0000000000..88c3d4d74e --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/mapping/MapItemPermissionsToItemPermissionsDto.java @@ -0,0 +1,20 @@ +package org.openecomp.sdcrests.itempermissions.rest.mapping; + +import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity; +import org.openecomp.sdcrests.itempermissions.types.ItemPermissionsDto; +import org.openecomp.sdcrests.mapping.MappingBase; + +/** + * Created by ayalaben on 6/18/2017. + */ + +public class MapItemPermissionsToItemPermissionsDto extends + MappingBase { + + + @Override + public void doMapping(ItemPermissionsEntity source, ItemPermissionsDto target) { + target.setUserId(source.getUserId()); + target.setPermission(source.getPermission()); + } +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/services/ItemPermissionsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/services/ItemPermissionsImpl.java new file mode 100644 index 0000000000..4fe93c20ac --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-services/src/main/java/org/openecomp/sdcrests/itempermissions/rest/services/ItemPermissionsImpl.java @@ -0,0 +1,52 @@ +//package org.openecomp.sdcrests.itempermissions.rest.mapping.mapping.services; +package org.openecomp.sdcrests.itempermissions.rest.services; + + +import org.openecomp.sdc.itempermissions.ItemPermissionsManager; +import org.openecomp.sdc.itempermissions.ItemPermissionsManagerFactory; +import org.openecomp.sdcrests.itempermissions.rest.ItemPermissions; +import org.openecomp.sdcrests.itempermissions.rest.mapping.MapItemPermissionsToItemPermissionsDto; +import org.openecomp.sdcrests.itempermissions.types.ItemPermissionsDto; +import org.openecomp.sdcrests.itempermissions.types.ItemPermissionsRequestDto; +import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import javax.inject.Named; +import javax.ws.rs.core.Response; + +/** + * Created by ayalaben on 6/18/2017. + */ + +@Named +@Service("itemPermissions") +@Scope(value = "prototype") +public class ItemPermissionsImpl implements ItemPermissions { + + private ItemPermissionsManager itemPermissionsManager = + ItemPermissionsManagerFactory.getInstance().createInterface(); + + @Override + public Response list(String itemId, String user) { + + GenericCollectionWrapper results = new GenericCollectionWrapper<>(); + MapItemPermissionsToItemPermissionsDto mapper = new MapItemPermissionsToItemPermissionsDto(); + + itemPermissionsManager.listItemPermissions(itemId) + .forEach(itemPermission -> results.add(mapper.applyMapping + (itemPermission, ItemPermissionsDto.class))); + + return Response.ok(results).build(); + } + + @Override + public Response updatePermissions(ItemPermissionsRequestDto request, String itemId, + String permission, String user) { + + itemPermissionsManager.updateItemPermissions(itemId,permission,request.getAddedUsersIds(), + request.getRemovedUsersIds()); + + return Response.ok().build(); + } +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/pom.xml new file mode 100644 index 0000000000..49f1f2b6d3 --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + + io.swagger + swagger-annotations + 1.5.3 + + + + + + org.openecomp.sdc + item-permissions-rest + 1.2.0-SNAPSHOT + + + item-permissions-rest-types + + + \ No newline at end of file diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsDto.java new file mode 100644 index 0000000000..d7f0b9f259 --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsDto.java @@ -0,0 +1,27 @@ +package org.openecomp.sdcrests.itempermissions.types; + +/** + * Created by ayalaben on 6/18/2017. + */ +public class ItemPermissionsDto { + + private String userId; + private String permission; + + public String getUserId() { + return userId; + } + + public void setUserId(String id) { + this.userId = id; + } + + public String getPermission() { + return permission; + } + + public void setPermission(String permission) { + this.permission = permission; + } + +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsRequestDto.java new file mode 100644 index 0000000000..82a960c7fd --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/item-permissions-rest-types/src/main/java/org/openecomp/sdcrests/itempermissions/types/ItemPermissionsRequestDto.java @@ -0,0 +1,32 @@ +package org.openecomp.sdcrests.itempermissions.types; + +import io.swagger.annotations.ApiModel; + +import java.util.Set; + +/** + * Created by ayalaben on 6/20/2017. + */ + +@ApiModel(value = "ItemPermissionsRequest") +public class ItemPermissionsRequestDto { + + private Set addedUsersIds; + private Set removedUsersIds; + + public Set getAddedUsersIds() { + return addedUsersIds; + } + + public void setAddedUsersIds(Set addedUsersIds) { + this.addedUsersIds = addedUsersIds; + } + + public Set getRemovedUsersIds() { + return removedUsersIds; + } + + public void setRemovedUsersIds(Set removedUsersIds) { + this.removedUsersIds = removedUsersIds; + } +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/pom.xml new file mode 100644 index 0000000000..f89fb0760a --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/item-permissions-rest/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + + org.openecomp.sdc + openecomp-sdc-rest-webapp + 1.2.0-SNAPSHOT + + + org.openecomp.sdc + item-permissions-rest + + pom + + + + item-permissions-rest-types + item-permissions-rest-services + + + \ No newline at end of file -- cgit 1.2.3-korg