package org.openstack.atlas.api.mgmt.resources; import org.openstack.atlas.api.helpers.ResponseFactory; import org.openstack.atlas.api.mgmt.resources.providers.ManagementDependencyProvider; import org.openstack.atlas.docs.loadbalancers.api.management.v1.Job; import org.openstack.atlas.service.domain.entities.JobState; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import java.util.List; public class JobsResource extends ManagementDependencyProvider { private JobResource jobResource; public void setJobResource(JobResource jobResource) { this.jobResource = jobResource; } @Path("{id: [1-9][0-9]*}") public JobResource retrieveJobResource(@PathParam("id") int id) { jobResource.setId(id); return jobResource; } @GET public Response retrieveJobs(@QueryParam("state") String state, @QueryParam("offset") Integer offset, @QueryParam("limit") Integer limit, @QueryParam("marker") Integer marker) { if (!isUserInRole("cp,ops,support")) { return ResponseFactory.accessDenied(); } List<JobState> domainJobs; org.openstack.atlas.docs.loadbalancers.api.management.v1.Jobs dataModelJobs = new org.openstack.atlas.docs.loadbalancers.api.management.v1.Jobs(); try { if(state == null || state.equals("")) domainJobs = jobStateService.getAll(offset, limit, marker); else domainJobs = jobStateService.getByState(state, offset, limit); for (JobState domainJob : domainJobs) { dataModelJobs.getJobs().add(getDozerMapper().map(domainJob, Job.class)); } return Response.status(200).entity(dataModelJobs).build(); } catch (Exception e) { return ResponseFactory.getErrorResponse(e, null, null); } } }