package com.intuit.tank.api.client.v1.job;
/*
* #%L
* Job Rest Client
* %%
* 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.Collections;
import java.util.List;
import javax.annotation.Nullable;
import javax.ws.rs.core.MediaType;
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.rest.BaseRestClient;
import com.intuit.tank.rest.RestServiceException;
import com.intuit.tank.rest.util.ServiceConsants;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
/**
* JobClient
*
* @author dangleton
*
*/
public class JobServiceClient extends BaseRestClient {
private static final String SERVICE_BASE_URL = ServiceConsants.REST_SERVICE_CONTEXT
+ JobService.SERVICE_RELATIVE_PATH;
/**
*
* @param serviceUrl
*/
public JobServiceClient(String serviceUrl) {
super(serviceUrl, null, null);
}
/**
*
* @param serviceUrl
*/
public JobServiceClient(String serviceUrl, final String proxyServer, final Integer proxyPort) {
super(serviceUrl, proxyServer, proxyPort);
}
/**
*
* @return
*/
protected String getServiceBaseUrl() {
return SERVICE_BASE_URL;
}
/**
* @{inheritDoc
*/
@Nullable
public JobTO getJob(int jobId) throws RestServiceException, UniformInterfaceException {
WebResource webResource = client.resource(urlBuilder.buildUrl(JobService.METHOD_JOB, jobId));
ClientResponse response = webResource.accept(MediaType.APPLICATION_XML_TYPE).get(ClientResponse.class);
if (response.getStatus() == Status.NOT_FOUND.getStatusCode()) {
return null;
}
exceptionHandler.checkStatusCode(response);
return response.getEntity(JobTO.class);
}
/**
* @{inheritDoc
*/
@Nullable
public List<JobTO> getJobsForProject(int projectId) throws RestServiceException, UniformInterfaceException {
WebResource webResource = client.resource(urlBuilder.buildUrl(JobService.METHOD_JOBS, projectId));
ClientResponse response = webResource.accept(MediaType.APPLICATION_XML_TYPE).get(ClientResponse.class);
if (response.getStatus() == Status.NOT_FOUND.getStatusCode()) {
return Collections.emptyList();
}
exceptionHandler.checkStatusCode(response);
JobContainer jobContainer = response.getEntity(JobContainer.class);
return jobContainer.getJobs();
}
}