/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.service.impl.v1.job; /* * #%L * Job Rest Service * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.ws.rs.Path; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; import javax.ws.rs.core.Response.Status; import com.intuit.tank.api.model.v1.job.JobContainer; import com.intuit.tank.api.model.v1.job.JobTO; import com.intuit.tank.api.service.v1.job.JobService; import com.intuit.tank.dao.JobInstanceDao; import com.intuit.tank.dao.JobQueueDao; import com.intuit.tank.dao.ProjectDao; import com.intuit.tank.project.JobInstance; import com.intuit.tank.project.JobQueue; import com.intuit.tank.project.Project; import com.intuit.tank.util.CreateDateComparator; import com.intuit.tank.util.CreateDateComparator.SortOrder; /** * AutomationServiceV1 * * @author dangleton * */ @Path(JobService.SERVICE_RELATIVE_PATH) public class JobServiceV1 implements JobService { // private static final Logger LOG = LogManager.getLogger(FilterServiceV1.class); // @Context // private ServletContext servletContext; /** * @{inheritDoc */ @Override public String ping() { return "PONG " + getClass().getSimpleName(); } /** * @{inheritDoc */ @Override public Response getJob(int jobId) { ResponseBuilder response = Response.ok(); JobInstanceDao dao = new JobInstanceDao(); JobInstance job = dao.findById(jobId); if (job != null) { response.entity(JobServiceUtil.jobToTO(job)); } else { response = Response.status(Status.NOT_FOUND); } return response.build(); } /** * @{inheritDoc */ @Override public Response getJobsForProject(int projectId) { ResponseBuilder response = Response.ok(); Project prj = new ProjectDao().findById(projectId); if (prj != null) { JobQueue queue = new JobQueueDao().findOrCreateForProjectId(projectId); List<JobInstance> jobs = new ArrayList<JobInstance>(queue.getJobs()); Collections.sort(jobs, new CreateDateComparator(SortOrder.DESCENDING)); List<JobTO> list = new ArrayList<JobTO>(); for (JobInstance job : jobs) { list.add(JobServiceUtil.jobToTO(job)); } response.entity(new JobContainer(list)); } else { response = Response.status(Status.NOT_FOUND); } return response.build(); } }