From a61be7a7ec72a70bab6fb3a5fd2090353717a523 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Mon, 26 Sep 2016 14:56:34 +0530 Subject: [PATCH] Enable group management api --- .../service/api/GroupManagementService.java | 153 +++++++------- .../admin/GroupManagementAdminService.java | 152 +++++++------- .../impl/GroupManagementServiceImpl.java | 197 +++++++++--------- .../GroupManagementAdminServiceImpl.java | 62 +++--- .../src/main/webapp/WEB-INF/cxf-servlet.xml | 2 +- 5 files changed, 295 insertions(+), 271 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java index cf5b2882fa..f21d1c9a4b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java @@ -18,85 +18,96 @@ */ package org.wso2.carbon.device.mgt.jaxrs.service.api; -import org.wso2.carbon.apimgt.annotations.api.Scope; +import org.wso2.carbon.apimgt.annotations.api.API; +import org.wso2.carbon.apimgt.annotations.api.Permission; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup; -import javax.ws.rs.*; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -//@Path("/groups") -//@Produces(MediaType.APPLICATION_JSON) -//@Consumes(MediaType.APPLICATION_JSON) +@API(name = "Group Management", version = "1.0.0", context = "/api/device-mgt/v1.0/groups", tags = {"devicemgt_admin"}) + +@Path("/groups") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) public interface GroupManagementService { -// @GET -// @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"}) -// Response getGroups(@QueryParam("user") String user, @QueryParam("offset") int offset, -// @QueryParam("limit") int limit); -// -// @POST -// @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/add"}) -// Response createGroup(DeviceGroup group); -// -// @Path("/{groupName}") -// @GET -// @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/view"}) -// Response getGroup(@PathParam("groupName") String groupName); -// -// @Path("/{groupName}") -// @PUT -// @Permission(scope = "group-modify", permissions = {"/permission/admin/device-mgt/user/groups/update"}) -// Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup); -// -// @Path("/{groupName}") -// @DELETE -// @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/remove"}) -// Response deleteGroup(@PathParam("groupName") String groupName); -// -// @Path("/{groupName}/share-with-user") -// @POST -// @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/share"}) -// Response shareGroupWithUser(@PathParam("groupName") String groupName, String targetUser); -// -// @Path("/{groupName}/share-with-role") -// @POST -// @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/share"}) -// Response shareGroupWithRole(@PathParam("groupName") String groupName, String targetRole); -// -// @Path("/{groupName}/remove-share-with-user") -// @POST -// @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/unshare"}) -// Response removeShareWithUser(@PathParam("groupName") String groupName, String targetUser); -// -// @Path("/{groupName}/remove-share-with-role") -// @POST -// @Permission(scope = "group-share", permissions = {"/permission/admin/device-mgt/user/groups/unshare"}) -// Response removeShareWithRole(@PathParam("groupName") String groupName, String targetUser); -// -// @GET -// @Path("/{groupName}/users") -// @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"}) -// Response getUsersOfGroup(@PathParam("groupName") String groupName); -// -// @GET -// @Path("/{groupName}/devices") -// @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/groups/roles"}) -// Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset, -// @QueryParam("limit") int limit); -// -// @POST -// @Path("/{groupName}/devices") -// @Produces("application/json") -// @Permission(scope = "group-add", permissions = {"/permission/admin/device-mgt/user/groups/devices/add"}) -// Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier); -// -// @DELETE -// @Path("/{groupName}/devices") -// @Permission(scope = "group-remove", permissions = {"/permission/admin/device-mgt/user/groups/devices/remove"}) -// Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type, -// @QueryParam("id") String id); + @GET + @Permission(name = "View Group", permission = "/permission/admin/device-mgt/user/groups/list") + Response getGroups(@QueryParam("user") String user, @QueryParam("offset") int offset, + @QueryParam("limit") int limit); + + @POST + @Permission(name = "Add Group", permission = "/permission/admin/device-mgt/user/groups/add") + Response createGroup(DeviceGroup group); + + @Path("/{groupName}") + @GET + @Permission(name = "View Group", permission = "/permission/admin/device-mgt/user/groups/view") + Response getGroup(@PathParam("groupName") String groupName); + + @Path("/{groupName}") + @PUT + @Permission(name = "Update Group", permission = "/permission/admin/device-mgt/user/groups/update") + Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup); + + @Path("/{groupName}") + @DELETE + @Permission(name = "Remove Groups", permission = "/permission/admin/device-mgt/user/groups/remove") + Response deleteGroup(@PathParam("groupName") String groupName); + + @Path("/{groupName}/share-with-user") + @POST + @Permission(name = "Share Group to a User", permission = "/permission/admin/device-mgt/user/groups/share") + Response shareGroupWithUser(@PathParam("groupName") String groupName, String targetUser); + + @Path("/{groupName}/share-with-role") + @POST + @Permission(name = "Share Group to a Role", permission = "/permission/admin/device-mgt/user/groups/share") + Response shareGroupWithRole(@PathParam("groupName") String groupName, String targetRole); + + @Path("/{groupName}/remove-share-with-user") + @POST + @Permission(name = "Unshare a Group", permission = "/permission/admin/device-mgt/user/groups/unshare") + Response removeShareWithUser(@PathParam("groupName") String groupName, String targetUser); + + @Path("/{groupName}/remove-share-with-role") + @POST + @Permission(name = "Unshare a Group", permission = "/permission/admin/device-mgt/user/groups/unshare") + Response removeShareWithRole(@PathParam("groupName") String groupName, String targetUser); + + @GET + @Path("/{groupName}/users") + @Permission(name = "Get Users of Group", permission = "/permission/admin/device-mgt/user/groups/list") + Response getUsersOfGroup(@PathParam("groupName") String groupName); + + @GET + @Path("/{groupName}/devices") + @Permission(name = "Get Devices of Group", permission = "/permission/admin/device-mgt/groups/roles") + Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset, + @QueryParam("limit") int limit); + + @POST + @Path("/{groupName}/devices") + @Produces("application/json") + @Permission(name = "Add Device to a Group", permission = "/permission/admin/device-mgt/user/groups/devices/add") + Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier); + @DELETE + @Path("/{groupName}/devices") + @Permission(name = "Remove Devices from Group", + permission = "/permission/admin/device-mgt/user/groups/devices/remove") + Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type, + @QueryParam("id") String id); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java index 0580d8504d..885005944a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java @@ -18,82 +18,92 @@ */ package org.wso2.carbon.device.mgt.jaxrs.service.api.admin; -import io.swagger.annotations.*; -import org.wso2.carbon.apimgt.annotations.api.Scope; +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 io.swagger.annotations.ResponseHeader; +import org.wso2.carbon.apimgt.annotations.api.API; +import org.wso2.carbon.apimgt.annotations.api.Permission; import org.wso2.carbon.policy.mgt.common.DeviceGroupWrapper; -import javax.ws.rs.*; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.HeaderParam; +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 java.util.Date; -//@Path("/admin/groups") -//@Produces(MediaType.APPLICATION_JSON) -//@Consumes(MediaType.APPLICATION_JSON) -//@Api(value = "Group Management Administrative Service", description = "This an API intended to be used by " + -// "'internal' components to log in as an admin user and do a selected number of operations. " + -// "Further, this is strictly restricted to admin users only ") -public interface GroupManagementAdminService { - -// @GET -// @ApiOperation( -// produces = MediaType.APPLICATION_JSON, -// httpMethod = "GET", -// value = "Get groups by the name.", -// notes = "Get devices the name of device and tenant.", -// response = DeviceGroupWrapper.class, -// responseContainer = "List", -// tags = "Group Management Administrative Service") -// @ApiResponses(value = { -// @ApiResponse(code = 200, message = "OK. \n Successfully fetched the list of groups.", -// response = DeviceGroupWrapper.class, -// responseContainer = "List", -// responseHeaders = { -// @ResponseHeader( -// name = "Content-Type", -// description = "The content type of the body"), -// @ResponseHeader( -// name = "ETag", -// description = "Entity Tag of the response resource.\n" + -// "Used by caches, or in conditional requests."), -// @ResponseHeader( -// name = "Last-Modified", -// description = "Date and time the resource has been modified the last time.\n" + -// "Used by caches, or in conditional requests."), -// }), -// @ApiResponse( -// code = 304, -// message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), -// @ApiResponse( -// code = 406, -// message = "Not Acceptable.\n The requested media type is not supported"), -// @ApiResponse( -// code = 500, -// message = "Internal Server ErrorResponse. \n Server error occurred while fetching the group list.") -// }) -// @Permission(scope = "group-view", permissions = {"/permission/admin/device-mgt/user/groups/list"}) -// Response getGroupsOfUser( -// @ApiParam( -// name = "username", -// value = "Username of the user.", -// required = true) -// @QueryParam("username") String username, -// @ApiParam( -// name = "If-Modified-Since", -// value = "Timestamp of the last modified date", -// required = false) -// @HeaderParam("If-Modified-Since") String timestamp, -// @ApiParam( -// name = "offset", -// value = "Starting point within the complete list of items qualified.", -// required = false) -// @QueryParam("offset") int offset, -// @ApiParam( -// name = "limit", -// value = "Maximum size of resource array to return.", -// required = false) -// @QueryParam("limit") int limit); -// +@API(name = "Group Management Admin", version = "1.0.0", context = "/api/device-mgt/v1.0/admin/groups", tags = {"devicemgt_admin"}) +@Path("/admin/groups") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +@Api(value = "Group Management Administrative Service", description = "This an API intended to be used by " + + "'internal' components to log in as an admin user and do a selected number of operations. " + + "Further, this is strictly restricted to admin users only ") +public interface GroupManagementAdminService { + @GET + @ApiOperation( + produces = MediaType.APPLICATION_JSON, + httpMethod = "GET", + value = "Get groups by the name.", + notes = "Get devices the name of device and tenant.", + response = DeviceGroupWrapper.class, + responseContainer = "List", + tags = "Group Management Administrative Service") + @ApiResponses(value = { + @ApiResponse(code = 200, message = "OK. \n Successfully fetched the list of groups.", + response = DeviceGroupWrapper.class, + responseContainer = "List", + responseHeaders = { + @ResponseHeader( + name = "Content-Type", + description = "The content type of the body"), + @ResponseHeader( + name = "ETag", + description = "Entity Tag of the response resource.\n" + + "Used by caches, or in conditional requests."), + @ResponseHeader( + name = "Last-Modified", + description = "Date and time the resource has been modified the last time.\n" + + "Used by caches, or in conditional requests."), + }), + @ApiResponse( + code = 304, + message = "Not Modified. \n Empty body because the client has already the latest version of the " + + "requested resource."), + @ApiResponse( + code = 406, + message = "Not Acceptable.\n The requested media type is not supported"), + @ApiResponse( + code = 500, + message = "Internal Server ErrorResponse. \n Server error occurred while fetching the group list.") + }) + @Permission(name = "View All Groups", permission = "/permission/admin/device-mgt/user/groups/list") + Response getGroupsOfUser( + @ApiParam( + name = "username", + value = "Username of the user.", + required = true) + @QueryParam("username") String username, + @ApiParam( + name = "If-Modified-Since", + value = "Timestamp of the last modified date", + required = false) + @HeaderParam("If-Modified-Since") String timestamp, + @ApiParam( + name = "offset", + value = "Starting point within the complete list of items qualified.", + required = false) + @QueryParam("offset") int offset, + @ApiParam( + name = "limit", + value = "Maximum size of resource array to return.", + required = false) + @QueryParam("limit") int limit); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java index 0b12ebb687..10e6fef2c9 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java @@ -18,10 +18,6 @@ */ package org.wso2.carbon.device.mgt.jaxrs.service.impl; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup; -import org.wso2.carbon.device.mgt.jaxrs.service.api.GroupManagementService; -import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.context.PrivilegedCarbonContext; @@ -33,105 +29,108 @@ import org.wso2.carbon.device.mgt.jaxrs.service.api.GroupManagementService; import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; import org.wso2.carbon.policy.mgt.common.DeviceGroupWrapper; -import javax.ws.rs.*; +import javax.ws.rs.Consumes; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.List; -//@Path("/groups") -//@Produces(MediaType.APPLICATION_JSON) -//@Consumes(MediaType.APPLICATION_JSON) +@Path("/groups") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) public class GroupManagementServiceImpl implements GroupManagementService { -// private static final Log log = LogFactory.getLog(GroupManagementServiceImpl.class); -// -// @Override -// public Response getGroups(@QueryParam("user") String user, @QueryParam("offset") int offset, -// @QueryParam("limit") int limit) { -// try { -// List groupWrappers = new ArrayList<>(); -// GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService(); -// List deviceGroups = service.getGroups(user); -// int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); -// for (DeviceGroup dg : deviceGroups) { -// DeviceGroupWrapper gw = new DeviceGroupWrapper(); -// gw.setId(dg.getId()); -// gw.setOwner(dg.getOwner()); -// gw.setName(dg.getName()); -// gw.setTenantId(tenantId); -// groupWrappers.add(gw); -// } -// return Response.status(Response.Status.OK).entity(groupWrappers).build(); -// } catch (GroupManagementException e) { -// String error = "ErrorResponse occurred while getting the groups related to users for policy."; -// log.error(error, e); -// return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build(); -// } -// } -// -// @Override -// public Response createGroup(DeviceGroup group) { -// return null; -// } -// -// @Override -// public Response getGroup(@PathParam("groupName") String groupName) { -// return null; -// } -// -// @Override -// public Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup) { -// return null; -// } -// -// @Override -// public Response deleteGroup(@PathParam("groupName") String groupName) { -// return null; -// } -// -// @Override -// public Response shareGroupWithUser(String groupName, String targetUser) { -// return null; -// } -// -// @Override -// public Response shareGroupWithRole(String groupName, String targetRole) { -// return null; -// } -// -// @Override -// public Response removeShareWithUser(@PathParam("groupName") String groupName, -// @QueryParam("username") String targetUser) { -// return null; -// } -// -// @Override -// public Response removeShareWithRole(@PathParam("groupName") String groupName, -// @QueryParam("roleName") String targetUser) { -// return null; -// } -// -// @Override -// public Response getUsersOfGroup(@PathParam("groupName") String groupName) { -// return null; -// } -// -// @Override -// public Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset, -// @QueryParam("limit") int limit) { -// return null; -// } -// -// @Override -// public Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier) { -// return null; -// } -// -// @Override -// public Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type, -// @QueryParam("id") String id) { -// return null; -// } - -} + private static final Log log = LogFactory.getLog(GroupManagementServiceImpl.class); + + @Override + public Response getGroups(@QueryParam("user") String user, @QueryParam("offset") int offset, + @QueryParam("limit") int limit) { + try { + List groupWrappers = new ArrayList<>(); + GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService(); + List deviceGroups = service.getGroups(user); + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); + for (DeviceGroup dg : deviceGroups) { + DeviceGroupWrapper gw = new DeviceGroupWrapper(); + gw.setId(dg.getId()); + gw.setOwner(dg.getOwner()); + gw.setName(dg.getName()); + gw.setTenantId(tenantId); + groupWrappers.add(gw); + } + return Response.status(Response.Status.OK).entity(groupWrappers).build(); + } catch (GroupManagementException e) { + String error = "ErrorResponse occurred while getting the groups related to users for policy."; + log.error(error, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build(); + } + } + + @Override + public Response createGroup(DeviceGroup group) { + return null; + } + + @Override + public Response getGroup(@PathParam("groupName") String groupName) { + return null; + } + + @Override + public Response updateGroup(@PathParam("groupName") String groupName, DeviceGroup deviceGroup) { + return null; + } + + @Override + public Response deleteGroup(@PathParam("groupName") String groupName) { + return null; + } + + @Override + public Response shareGroupWithUser(String groupName, String targetUser) { + return null; + } + + @Override + public Response shareGroupWithRole(String groupName, String targetRole) { + return null; + } + + @Override + public Response removeShareWithUser(@PathParam("groupName") String groupName, + @QueryParam("username") String targetUser) { + return null; + } + + @Override + public Response removeShareWithRole(@PathParam("groupName") String groupName, + @QueryParam("roleName") String targetUser) { + return null; + } + + @Override + public Response getUsersOfGroup(@PathParam("groupName") String groupName) { + return null; + } + + @Override + public Response getDevicesOfGroup(@PathParam("groupName") String groupName, @QueryParam("offset") int offset, + @QueryParam("limit") int limit) { + return null; + } + + @Override + public Response addDeviceToGroup(@PathParam("groupName") String groupName, DeviceIdentifier deviceIdentifier) { + return null; + } + + @Override + public Response removeDeviceFromGroup(@PathParam("groupName") String groupName, @QueryParam("type") String type, + @QueryParam("id") String id) { + return null; + } +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java index 7573df0f5e..9cf5253c2c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java @@ -18,7 +18,6 @@ */ package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin; -import io.swagger.annotations.ApiParam; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.PaginationResult; @@ -26,37 +25,42 @@ import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException; import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.GroupManagementAdminService; import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; -import javax.ws.rs.*; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.HeaderParam; +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 java.util.Date; -//@Path("/admin/groups") -//@Produces(MediaType.APPLICATION_JSON) -//@Consumes(MediaType.APPLICATION_JSON) +@Path("/admin/groups") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) public class GroupManagementAdminServiceImpl implements GroupManagementAdminService { -// -// private static final Log log = LogFactory.getLog(GroupManagementAdminServiceImpl.class); -// -// @Override -// public Response getGroupsOfUser( -// @QueryParam("username") String username, -// @HeaderParam("If-Modified-Since") String timestamp, -// @QueryParam("offset") int offset, -// @QueryParam("limit") int limit) { -// try { -// PaginationResult result = -// DeviceMgtAPIUtils.getGroupManagementProviderService().getGroups(username, offset, limit); -// if (result != null && result.getRecordsTotal() > 0) { -// return Response.status(Response.Status.OK).entity(result).build(); -// } else { -// return Response.status(Response.Status.NOT_FOUND).build(); -// } -// } catch (GroupManagementException e) { -// String msg = "ErrorResponse occurred while retrieving the groups of user '" + username + "'"; -// log.error(msg, e); -// return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); -// } -// } + + private static final Log log = LogFactory.getLog(GroupManagementAdminServiceImpl.class); + + @GET + @Override + public Response getGroupsOfUser( + @QueryParam("username") String username, + @HeaderParam("If-Modified-Since") String timestamp, + @QueryParam("offset") int offset, + @QueryParam("limit") int limit) { + try { + PaginationResult result = + DeviceMgtAPIUtils.getGroupManagementProviderService().getGroups(username, offset, limit); + if (result != null && result.getRecordsTotal() > 0) { + return Response.status(Response.Status.OK).entity(result).build(); + } else { + return Response.status(Response.Status.NOT_FOUND).build(); + } + } catch (GroupManagementException e) { + String msg = "ErrorResponse occurred while retrieving the groups of user '" + username + "'"; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); + } + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml index 8405fb99fc..a5f5ed308a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/webapp/WEB-INF/cxf-servlet.xml @@ -73,7 +73,7 @@ - +