aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java132
1 files changed, 123 insertions, 9 deletions
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 757902a..05ed567 100644
--- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
@@ -1,23 +1,59 @@
package io.trygvis.esper.testing.jenkins;
+import fj.data.*;
+import org.joda.time.*;
+
import java.net.URI;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
+import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
+import static fj.data.Option.none;
+import static fj.data.Option.some;
+import static java.lang.System.currentTimeMillis;
+
public class JenkinsDao {
private final Connection c;
- private static final String JENKINS_SERVER = "uuid, url";
+
+ private static final String JENKINS_SERVER = "uuid, created_date, url";
+
+ private static final String JENKINS_BUILD = "uuid, created_date, entry_id, url, result, number, duration, timestamp";
public JenkinsDao(Connection c) {
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)));
+ }
+
+// private JenkinsEventDto jenkinsEvent(ResultSet rs) throws SQLException {
+// int i = 1;
+// return new JenkinsEventDto(
+// UUID.fromString(rs.getString(i++)),
+// new DateTime(rs.getTimestamp(i++).getTime()),
+// URI.create(rs.getString(i)));
+// }
+
+ private JenkinsBuildDto jenkinsBuild(ResultSet rs) throws SQLException {
+ int i = 1;
+ return new JenkinsBuildDto(
+ UUID.fromString(rs.getString(i++)),
+ new DateTime(rs.getTimestamp(i++).getTime()),
+ rs.getString(i++),
+ URI.create(rs.getString(i++)),
+ rs.getString(i++),
+ rs.getInt(i++),
+ rs.getInt(i++),
+ new DateTime(rs.getTimestamp(i).getTime()));
+ }
+
public List<JenkinsServerDto> selectServer() throws SQLException {
try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server")) {
ResultSet rs = s.executeQuery();
@@ -28,21 +64,49 @@ public class JenkinsDao {
}
return servers;
}
+ }
+
+ public Option<JenkinsBuildDto> selectBuildByEntryId(String id) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_BUILD + " FROM jenkins_build WHERE entry_id=?")) {
+ int i = 1;
+ s.setString(i, id);
+ ResultSet rs = s.executeQuery();
+
+ if (!rs.next()) {
+ return none();
+ }
+ return some(jenkinsBuild(rs));
+ }
}
- private JenkinsServerDto jenkinsServer(ResultSet rs) throws SQLException {
- int i = 1;
- return new JenkinsServerDto(UUID.fromString(rs.getString(i++)), URI.create(rs.getString(i)));
+ public UUID insertBuild(String entryId, URI uri, String result, int number, int duration, long timestamp) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("INSERT INTO jenkins_build(" + JENKINS_BUILD + ") VALUES(?, ?, ?, ?, ?, ?, ?, ?)")) {
+ UUID uuid = UUID.randomUUID();
+ int i = 1;
+ s.setString(i++, uuid.toString());
+ s.setTimestamp(i++, new Timestamp(currentTimeMillis()));
+ s.setString(i++, entryId);
+ s.setString(i++, uri.toASCIIString());
+ s.setString(i++, result);
+ s.setInt(i++, number);
+ s.setInt(i++, duration);
+ s.setTimestamp(i, new Timestamp(timestamp));
+ s.executeUpdate();
+
+ return uuid;
+ }
}
}
class JenkinsServerDto {
public final UUID uuid;
+ public final DateTime created_date;
public final URI uri;
- JenkinsServerDto(UUID uuid, URI uri) {
+ JenkinsServerDto(UUID uuid, DateTime created_date, URI uri) {
this.uuid = uuid;
+ this.created_date = created_date;
this.uri = uri;
}
@@ -61,3 +125,53 @@ class JenkinsServerDto {
return uuid.hashCode();
}
}
+
+class JenkinsJobDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final URI uri;
+ public final String title;
+
+ JenkinsJobDto(UUID uuid, DateTime created_date, URI uri, String title) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.uri = uri;
+ this.title = title;
+ }
+}
+
+class JenkinsBuildDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final String entryId;
+ public final URI uri;
+ public final String result;
+ public final int number;
+ public final int duration;
+ public final DateTime timestamp;
+
+ JenkinsBuildDto(UUID uuid, DateTime created_date, String entryId, URI uri, String result, int number, int duration, DateTime timestamp) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.entryId = entryId;
+ this.uri = uri;
+ this.result = result;
+ this.number = number;
+ this.duration = duration;
+ this.timestamp = timestamp;
+ }
+}
+
+class JenkinsEventDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final String id;
+ public final DateTime timestamp;
+
+ JenkinsEventDto(UUID uuid, DateTime created_date, String id, DateTime timestamp) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.id = id;
+ this.timestamp = timestamp;
+ }
+}