1 package club.wpia.gigi.dbObjects;
3 import java.sql.Timestamp;
6 import club.wpia.gigi.database.GigiPreparedStatement;
7 import club.wpia.gigi.database.GigiResultSet;
8 import club.wpia.gigi.ping.DomainPinger.PingState;
10 public class DomainPingExecution {
12 private final PingState state;
14 private final String type;
16 private final String info;
18 private final String result;
20 private final DomainPingConfiguration config;
22 private final Timestamp date;
24 protected DomainPingExecution(GigiResultSet rs) {
25 state = PingState.valueOf(rs.getString(1).toUpperCase());
26 type = rs.getString(2);
27 info = rs.getString(3);
28 result = rs.getString(4);
29 config = DomainPingConfiguration.getById(rs.getInt(5));
30 date = rs.getTimestamp(6);
33 public DomainPingExecution(PingState state, String result, DomainPingConfiguration config, String challenge) {
35 this.type = config.getType().getDBName();
36 this.info = config.getInfo();
39 this.date = new Timestamp(System.currentTimeMillis());
40 try (GigiPreparedStatement enterPingResult = new GigiPreparedStatement("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?, `when`=?, `needsAction`=?")) {
41 enterPingResult.setInt(1, config.getId());
42 enterPingResult.setEnum(2, state);
43 enterPingResult.setString(3, result);
44 enterPingResult.setString(4, challenge);
45 enterPingResult.setTimestamp(5, this.date);
46 // Ping results with current state "failed" need followup action in
47 // two weeks to revoke any remaining active certificates.
48 enterPingResult.setBoolean(6, state == PingState.FAILED);
49 enterPingResult.execute();
53 public PingState getState() {
57 public String getType() {
61 public String getInfo() {
65 public String getResult() {
69 public DomainPingConfiguration getConfig() {
73 public Date getDate() {