package org.jivesoftware.openfire.plugin.rest.service; import javax.annotation.PostConstruct; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; 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 org.jivesoftware.openfire.plugin.rest.controller.UserServiceController; import org.jivesoftware.openfire.plugin.rest.entity.UserGroupsEntity; import org.jivesoftware.openfire.plugin.rest.exceptions.ServiceException; @Path("restapi/v1/users/{username}/groups") public class UserGroupService { private UserServiceController plugin; @PostConstruct public void init() { plugin = UserServiceController.getInstance(); } @GET @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public UserGroupsEntity getUserGroups(@PathParam("username") String username) throws ServiceException { return new UserGroupsEntity(plugin.getUserGroups(username)); } @POST public Response addUserToGroups(@PathParam("username") String username, UserGroupsEntity userGroupsEntity) throws ServiceException { plugin.addUserToGroups(username, userGroupsEntity); return Response.status(Response.Status.CREATED).build(); } @POST @Path("/{groupName}") public Response addUserToGroup(@PathParam("username") String username, @PathParam("groupName") String groupName) throws ServiceException { plugin.addUserToGroup(username, groupName); return Response.status(Response.Status.CREATED).build(); } @DELETE @Path("/{groupName}") public Response deleteUserFromGroup(@PathParam("username") String username, @PathParam("groupName") String groupName) throws ServiceException { plugin.deleteUserFromGroup(username, groupName); return Response.status(Response.Status.OK).build(); } @DELETE public Response deleteUserFromGroups(@PathParam("username") String username, UserGroupsEntity userGroupsEntity) throws ServiceException { plugin.deleteUserFromGroups(username, userGroupsEntity); return Response.status(Response.Status.OK).build(); } }