package org.openstack.atlas.api.mgmt.resources; import org.openstack.atlas.service.domain.entities.GroupRateLimit; import org.openstack.atlas.api.helpers.ResponseFactory; import org.openstack.atlas.api.mgmt.resources.providers.ManagementDependencyProvider; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; public class GroupsResource extends ManagementDependencyProvider { private GroupResource groupResource; private int id; @Path("{id: [1-9][0-9]*}") public GroupResource retrieveGroupResource(@PathParam("id") int id) { groupResource.setId(id); return groupResource; } @POST @Consumes({MediaType.APPLICATION_XML}) public Response addGroups(@QueryParam("name") String name, @QueryParam("default") String defaultValue) { if (!isUserInRole("cp,ops,support")) { return ResponseFactory.accessDenied(); } GroupRateLimit grp = new GroupRateLimit(); grp.setName(name); grp.setDescription(name); if (defaultValue != null && defaultValue.equalsIgnoreCase("Y")) { grp.setDefault(true); } else { grp.setDefault(false); } try { groupService.createGroup(grp); return Response.status(Response.Status.ACCEPTED).build(); } catch (Exception ex) { return ResponseFactory.getErrorResponse(ex, null, null); } } @GET public Response retrieveGroups() { if (!isUserInRole("cp,ops,support")) { return ResponseFactory.accessDenied(); } List<GroupRateLimit> domainGroupRateLimits; org.openstack.atlas.docs.loadbalancers.api.management.v1.GroupRateLimits lts = new org.openstack.atlas.docs.loadbalancers.api.management.v1.GroupRateLimits(); try { domainGroupRateLimits = groupRepository.getAll(); for (org.openstack.atlas.service.domain.entities.GroupRateLimit domain : domainGroupRateLimits) { lts.getGroupRateLimits().add(getDozerMapper().map(domain, org.openstack.atlas.docs.loadbalancers.api.management.v1.GroupRateLimit.class, "SIMPLE_LIMIT")); } return Response.status(200).entity(lts).build(); } catch (Exception e) { return ResponseFactory.getErrorResponse(e, null, null); } } public GroupResource getGroupResource() { return groupResource; } public void setGroupResource(GroupResource groupResource) { this.groupResource = groupResource; } public int getId() { return id; } public void setId(int id) { this.id = id; } }