diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-29 15:56:48 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-29 15:56:48 +0100 |
commit | 1b83af30a4e935f2037a6e9153cb438c29adfbfc (patch) | |
tree | 4b885fe232512d3c4c22c99d004ce202ec7638f6 /src/main/java/io/trygvis/esper/testing/web/resource/JenkinsResource.java | |
parent | f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4 (diff) | |
download | esper-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.java | 45 |
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; } } |