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;
public class GroupResource extends ManagementDependencyProvider {
int id;
@POST
@Path("accounts/{id: [-+]?[0-9][0-9]*}")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response createAccountGroupRateLimit(@PathParam("id") int accountId) {
try {
org.openstack.atlas.service.domain.entities.AccountGroup dGroup = new org.openstack.atlas.service.domain.entities.AccountGroup();
dGroup.setAccountId(accountId);
dGroup.setGroupRateLimit(new GroupRateLimit());
dGroup.getGroupRateLimit().setId(id);
groupService.insertAccountGroup(dGroup);
return Response.status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return ResponseFactory.getErrorResponse(e, null, null);
}
}
@PUT
@Path("setdefault")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response updateGroup(@QueryParam("default") String defaultValue) {
if (!isUserInRole("cp,ops,support")) {
return ResponseFactory.accessDenied();
}
GroupRateLimit lbLimitGroup = new GroupRateLimit();
lbLimitGroup.setId(id);
if (defaultValue != null && defaultValue.equalsIgnoreCase("Y")) {
lbLimitGroup.setDefault(true);
} else {
lbLimitGroup.setDefault(false);
}
try {
groupService.updateGroup(lbLimitGroup);
return Response.status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return ResponseFactory.getErrorResponse(e, null, null);
}
}
@DELETE
public Response deleteGroup() {
try {
GroupRateLimit addLimitGroup = new GroupRateLimit();
addLimitGroup.setId(id);
groupService.deleteGroup(addLimitGroup);
return Response.status(Response.Status.ACCEPTED).build();
} catch (Exception e) {
return ResponseFactory.getErrorResponse(e, null, null);
}
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
}