From 84fb49088a14cff8b453e0e32f6ad7007eb2184a Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 29 Dec 2012 18:11:08 +0100 Subject: o Adding jobs view for jenkins app. --- .../trygvis/esper/testing/jenkins/JenkinsDao.java | 67 +++++++++++----------- 1 file changed, 33 insertions(+), 34 deletions(-) (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java') diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java index 117d91d..e94c7fd 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java @@ -12,6 +12,7 @@ import java.util.List; import static fj.data.Option.*; import static io.trygvis.esper.testing.Util.toList; import static io.trygvis.esper.testing.Util.toUuidArray; +import static io.trygvis.esper.testing.util.sql.ResultSetF.getInt; import static io.trygvis.esper.testing.util.sql.SqlOption.fromRs; import static java.lang.System.*; @@ -29,22 +30,16 @@ public class JenkinsDao { this.c = c; } - private JenkinsServerDto jenkinsServer(ResultSet rs) throws SQLException { - int i = 1; - return new JenkinsServerDto( - UUID.fromString(rs.getString(i++)), - new DateTime(rs.getTimestamp(i++).getTime()), - URI.create(rs.getString(i++)), - rs.getBoolean(i)); - } - - private List toServerList(ResultSet rs) throws SQLException { - List list = new ArrayList<>(); - while (rs.next()) { - list.add(jenkinsServer(rs)); + private SqlF jenkinsServer = new SqlF() { + public JenkinsServerDto apply(ResultSet rs) throws SQLException { + int i = 1; + return new JenkinsServerDto( + UUID.fromString(rs.getString(i++)), + new DateTime(rs.getTimestamp(i++).getTime()), + URI.create(rs.getString(i++)), + rs.getBoolean(i)); } - return list; - } + }; public static final SqlF jenkinsJob = new SqlF() { public JenkinsJobDto apply(ResultSet rs) throws SQLException { @@ -58,14 +53,6 @@ public class JenkinsDao { } }; - public List toJobList(ResultSet rs) throws SQLException { - List list = new ArrayList<>(); - while (rs.next()) { - list.add(jenkinsJob.apply(rs)); - } - return list; - } - public static final String JENKINS_BUILD = "uuid, created_date, job, file, entry_id, url, result, number, duration, timestamp, users"; public static final SqlF jenkinsBuild = new SqlF() { @@ -111,18 +98,14 @@ public class JenkinsDao { sql += " ORDER BY url"; try (PreparedStatement s = c.prepareStatement(sql)) { - return toServerList(s.executeQuery()); + return toList(s, jenkinsServer); } } - public Option selectServer(UUID uuid) throws SQLException { + public SqlOption selectServer(UUID uuid) throws SQLException { try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server WHERE uuid=?")) { s.setString(1, uuid.toString()); - ResultSet rs = s.executeQuery(); - if (!rs.next()) { - return none(); - } - return some(jenkinsServer(rs)); + return fromRs(s.executeQuery()).map(jenkinsServer); } } @@ -138,7 +121,7 @@ public class JenkinsDao { } public List selectJobsByServer(UUID server, PageRequest page) throws SQLException { - try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_JOB + " FROM jenkins_job WHERE server=? ORDER BY created_date LIMIT ? OFFSET ?")) { + try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_JOB + " FROM jenkins_job WHERE server=? ORDER BY created_date DESC LIMIT ? OFFSET ?")) { int i = 1; s.setString(i++, server.toString()); s.setInt(i++, page.count.orSome(10)); @@ -157,9 +140,7 @@ public class JenkinsDao { public int selectJobCountForServer(UUID uuid) throws SQLException { try (PreparedStatement s = c.prepareStatement("SELECT count(1) FROM jenkins_job WHERE server=?")) { s.setString(1, uuid.toString()); - ResultSet rs = s.executeQuery(); - rs.next(); - return rs.getInt(1); + return fromRs(s.executeQuery()).map(getInt).get(); } } @@ -192,6 +173,24 @@ public class JenkinsDao { } } + public List selectBuildByJob(UUID job, PageRequest page) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_BUILD + " FROM jenkins_build WHERE job=? ORDER BY created_date DESC LIMIT ? OFFSET ?")) { + int i = 1; + s.setString(i++, job.toString()); + s.setInt(i++, page.count.orSome(10)); + s.setInt(i, page.startIndex.orSome(0)); + return toList(s, jenkinsBuild); + } + } + + public int selectBuildCountByJob(UUID job) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT count(1) FROM jenkins_build WHERE job=?")) { + int i = 1; + s.setString(i, job.toString()); + return fromRs(s.executeQuery()).map(getInt).get(); + } + } + public UUID insertBuild(UUID job, UUID file, String entryId, URI url, String result, int number, int duration, long timestamp, UUID[] users) throws SQLException { try (PreparedStatement s = c.prepareStatement("INSERT INTO jenkins_build(" + JENKINS_BUILD + ") VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { UUID uuid = UUID.randomUUID(); -- cgit v1.2.3