aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-12-29 15:56:48 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2012-12-29 15:56:48 +0100
commit1b83af30a4e935f2037a6e9153cb438c29adfbfc (patch)
tree4b885fe232512d3c4c22c99d004ce202ec7638f6 /src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java
parentf39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4 (diff)
downloadesper-testing-1b83af30a4e935f2037a6e9153cb438c29adfbfc.tar.gz
esper-testing-1b83af30a4e935f2037a6e9153cb438c29adfbfc.tar.bz2
esper-testing-1b83af30a4e935f2037a6e9153cb438c29adfbfc.tar.xz
esper-testing-1b83af30a4e935f2037a6e9153cb438c29adfbfc.zip
o Starting on a generic paging component.
o Showing recent jobs on the jenkins server page.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java b/src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java
index 284d90e..33b3f88 100644
--- a/src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java
+++ b/src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java
@@ -3,6 +3,8 @@ package io.trygvis.esper.testing.web.resource;
import fj.data.*;
import io.trygvis.esper.testing.*;
import io.trygvis.esper.testing.jenkins.*;
+import io.trygvis.esper.testing.util.sql.*;
+import io.trygvis.esper.testing.web.*;
import org.joda.time.*;
import javax.ws.rs.*;
@@ -55,9 +57,34 @@ public class JenkinsResource extends AbstractResource {
});
}
+ @GET
+ @Path("/job")
+ @Produces(MediaType.APPLICATION_JSON)
+ public List<JenkinsJobJson> getJobs(@MagicParam(query = "server") final UUID server, @MagicParam final PageRequest page) throws Exception {
+ return da.inTransaction(new DatabaseAccess.DaosCallback<List<JenkinsJobJson>>() {
+ public List<JenkinsJobJson> run(final Daos daos) throws SQLException {
+ List<JenkinsJobJson> jobs = new ArrayList<>();
+ for (JenkinsJobDto job : daos.jenkinsDao.selectJobsByServer(server, page)) {
+ jobs.add(getJenkinsJobJson(job));
+ }
+ return jobs;
+ }
+ });
+ }
+
private JenkinsServerJson getJenkinsServerJson(Daos daos, JenkinsServerDto server) throws SQLException {
int count = daos.jenkinsDao.selectJobCountForServer(server.uuid);
- return new JenkinsServerJson(server.uuid, server.createdDate, server.url, server.enabled, count);
+
+ List<JenkinsJobJson> jobs = new ArrayList<>();
+ for (JenkinsJobDto jobDto : daos.jenkinsDao.selectJobsByServer(server.uuid, PageRequest.FIRST_PAGE)) {
+ jobs.add(getJenkinsJobJson(jobDto));
+ }
+
+ return new JenkinsServerJson(server.uuid, server.createdDate, server.url, server.enabled, count, jobs);
+ }
+
+ private JenkinsJobJson getJenkinsJobJson(JenkinsJobDto job) {
+ return new JenkinsJobJson(job.uuid, job.createdDate, job.displayName.toNull());
}
public static UUID parseUuid(String s) {
@@ -75,12 +102,26 @@ class JenkinsServerJson {
public final URI url;
public final boolean enabled;
public final int jobCount;
+ public final List<JenkinsJobJson> recentJobs;
- JenkinsServerJson(UUID uuid, DateTime createdDate, URI url, boolean enabled, int jobCount) {
+ JenkinsServerJson(UUID uuid, DateTime createdDate, URI url, boolean enabled, int jobCount, List<JenkinsJobJson> recentJobs) {
this.uuid = uuid;
this.createdDate = createdDate;
this.url = url;
this.enabled = enabled;
this.jobCount = jobCount;
+ this.recentJobs = recentJobs;
+ }
+}
+
+class JenkinsJobJson {
+ public final UUID uuid;
+ public final DateTime createdDate;
+ public final String displayName;
+
+ JenkinsJobJson(UUID uuid, DateTime createdDate, String displayName) {
+ this.uuid = uuid;
+ this.createdDate = createdDate;
+ this.displayName = displayName;
}
}