import club.wpia.gigi.database.GigiPreparedStatement;
import club.wpia.gigi.dbObjects.CertificateOwner;
import club.wpia.gigi.dbObjects.Domain;
+import club.wpia.gigi.dbObjects.DomainPingConfiguration;
+import club.wpia.gigi.dbObjects.DomainPingExecution;
public abstract class DomainPinger {
public static final String PING_SUCCEDED = "";
- public abstract void ping(Domain domain, String configuration, CertificateOwner target, int confId);
+ public abstract DomainPingExecution ping(Domain domain, String configuration, CertificateOwner target, DomainPingConfiguration conf);
- protected static void enterPingResult(int configId, String state, String result, String token) {
+ protected static DomainPingExecution enterPingResult(DomainPingConfiguration config, String state, String result, String token) {
PingState estate = DomainPinger.PING_STILL_PENDING == state ? PingState.OPEN : DomainPinger.PING_SUCCEDED.equals(state) ? PingState.SUCCESS : PingState.FAILED;
- try (GigiPreparedStatement enterPingResult = new GigiPreparedStatement("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?")) {
- enterPingResult.setInt(1, configId);
- enterPingResult.setEnum(2, estate);
- enterPingResult.setString(3, result);
- enterPingResult.setString(4, token);
- enterPingResult.execute();
- }
+ return new DomainPingExecution(estate, result, config, token);
}
- protected static void updatePingResult(int configId, String state, String result, String token) {
+ protected static void updatePingResult(DomainPingConfiguration config, String state, String result, String token) {
try (GigiPreparedStatement updatePingResult = new GigiPreparedStatement("UPDATE `domainPinglog` SET `state`=?::`pingState`, `result`=? WHERE `configId`=? AND `challenge`=?")) {
updatePingResult.setString(1, DomainPinger.PING_STILL_PENDING == state ? "open" : DomainPinger.PING_SUCCEDED.equals(state) ? "success" : "failed");
updatePingResult.setString(2, result);
- updatePingResult.setInt(3, configId);
+ updatePingResult.setInt(3, config.getId());
updatePingResult.setString(4, token);
updatePingResult.execute();
}