1
0

Added date parser and Vertx explicit instance

This commit is contained in:
Jose
2025-03-15 18:33:35 +01:00
parent c2037ecbd1
commit 31930aeb2c
16 changed files with 42 additions and 48 deletions

View File

@@ -1,29 +0,0 @@
package net.miarma.contaminus.common;
import java.lang.reflect.Type;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
public class LocalDateTimeSerializer implements JsonSerializer<LocalDateTime>, JsonDeserializer<LocalDateTime> {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
@Override
public JsonElement serialize(LocalDateTime src, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(src.format(FORMATTER));
}
@Override
public LocalDateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return LocalDateTime.parse(json.getAsString(), FORMATTER);
}
}

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("actuators")
public class Actuator {
@@ -19,7 +20,7 @@ public class Actuator {
this.actuatorId = row.getInteger("actuatorId");
this.deviceId = row.getInteger("deviceId");
this.status = row.getInteger("status");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public Actuator(int actuatorId, int deviceId, int status, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("co_values")
public class COValue {
@@ -19,7 +20,7 @@ public class COValue {
this.valueId = row.getInteger("valueId");
this.sensorId = row.getInteger("sensorId");
this.value = row.getFloat("value");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public COValue(int valueId, int sensorId, float value, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_co_by_device")
public class DeviceCO {
@@ -16,7 +17,7 @@ public class DeviceCO {
public DeviceCO(Row row) {
this.deviceId = row.getInteger("deviceId");
this.carbonMonoxide = row.getFloat("carbonMonoxide");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DeviceCO(int deviceId, float carbonMonoxide, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_gps_by_device")
public class DeviceGPS {
@@ -18,7 +19,7 @@ public class DeviceGPS {
this.deviceId = row.getInteger("deviceId");
this.lat = row.getFloat("lat");
this.lon = row.getFloat("lon");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DeviceGPS(int deviceId, long lat, long lon) {

View File

@@ -3,6 +3,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_latest_values")
public class DeviceLatestValuesView {
@@ -27,13 +28,13 @@ public class DeviceLatestValuesView {
this.sensorType = row.getString("sensorType");
this.unit = row.getString("unit");
this.sensorStatus = row.getInteger("sensorStatus");
this.sensorTimestamp = row.getLong("sensorTimestamp");
this.sensorTimestamp = DateParser.parseDate(row.getLocalDateTime("sensorTimestamp"));
this.temperature = row.getFloat("temperature");
this.humidity = row.getFloat("humidity");
this.carbonMonoxide = row.getFloat("carbonMonoxide");
this.lat = row.getFloat("lat");
this.lon = row.getFloat("lon");
this.airValuesTimestamp = row.getLong("airValuesTimestamp");
this.airValuesTimestamp = DateParser.parseDate(row.getLocalDateTime("airValuesTimestamp"));
}
public DeviceLatestValuesView(int deviceId, int sensorId, String sensorType, String unit, int sensorStatus,

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_pollution_map")
public class DevicePollutionMap {
@@ -22,7 +23,7 @@ public class DevicePollutionMap {
this.lat = row.getFloat("lat");
this.lon = row.getFloat("lon");
this.carbonMonoxide = row.getFloat("carbonMonoxide");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DevicePollutionMap(int deviceId, String deviceName, float lat, float lon, float carbonMonoxide,

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_sensor_history_by_device")
public class DeviceSensorHistory {
@@ -20,7 +21,7 @@ public class DeviceSensorHistory {
this.deviceName = row.getString("deviceName");
this.value = row.getFloat("value");
this.valueType = row.getString("valueType");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DeviceSensorHistory(int deviceId, String deviceName, float value, String valueType, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_sensor_values")
public class DeviceSensorValue {
@@ -32,7 +33,7 @@ public class DeviceSensorValue {
this.carbonMonoxide = row.getFloat("carbonMonoxide");
this.lat = row.getFloat("lat");
this.lon = row.getFloat("lon");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DeviceSensorValue(int sensorId, int deviceId, String sensorType, String unit, int sensorStatus,

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("v_weather_by_device")
public class DeviceWeather {
@@ -18,7 +19,7 @@ public class DeviceWeather {
this.deviceId = row.getInteger("deviceId");
this.temperature = row.getFloat("temperature");
this.humidity = row.getFloat("humidity");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public DeviceWeather(int deviceId, float temperature, float humidity, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("gps_values")
public class GpsValue {
@@ -21,7 +22,7 @@ public class GpsValue {
this.sensorId = row.getInteger("sensorId");
this.lat = row.getFloat("lat");
this.lon = row.getFloat("lon");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public GpsValue(int valueId, int sensorId, float lat, float lon, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("sensors")
public class Sensor {
@@ -23,7 +24,7 @@ public class Sensor {
this.sensorType = row.getString("sensorType");
this.unit = row.getString("unit");
this.status = row.getInteger("status");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public Sensor(int sensorId, int deviceId, String sensorType, String unit, int status, long timestamp) {

View File

@@ -4,6 +4,7 @@ import java.util.Objects;
import io.vertx.sqlclient.Row;
import net.miarma.contaminus.common.Table;
import net.miarma.contaminus.util.DateParser;
@Table("weather_values")
public class WeatherValue {
@@ -21,7 +22,7 @@ public class WeatherValue {
this.sensorId = row.getInteger("sensorId");
this.temperature = row.getFloat("temperature");
this.humidity = row.getFloat("humidity");
this.timestamp = row.getLong("timestamp");
this.timestamp = DateParser.parseDate(row.getLocalDateTime("timestamp"));
}
public WeatherValue(int valueId, int sensorId, float temperature, float humidity, long timestamp) {

View File

@@ -4,27 +4,29 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import com.google.gson.Gson;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Promise;
import io.vertx.core.Vertx;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.web.handler.BodyHandler;
import io.vertx.ext.web.handler.CorsHandler;
import io.vertx.jdbcclient.JDBCConnectOptions;
import io.vertx.jdbcclient.JDBCPool;
import io.vertx.sqlclient.PoolOptions;
import net.miarma.contaminus.common.ConfigManager;
import net.miarma.contaminus.common.Constants;
import net.miarma.contaminus.database.DatabaseManager;
import net.miarma.contaminus.database.QueryBuilder;
import net.miarma.contaminus.database.entities.Device;
import net.miarma.contaminus.database.entities.Sensor;
@SuppressWarnings("unused")
public class DataLayerAPIVerticle extends AbstractVerticle {
private JDBCPool pool;
private DatabaseManager dbManager;
private ConfigManager configManager;
private Gson gson = new Gson();
public DataLayerAPIVerticle(JDBCPool pool) {
this.pool = pool;

View File

@@ -25,7 +25,6 @@ import net.miarma.contaminus.database.entities.DevicePollutionMap;
import net.miarma.contaminus.database.entities.DeviceSensorHistory;
import net.miarma.contaminus.database.entities.DeviceSensorValue;
import net.miarma.contaminus.database.entities.Actuator;
import net.miarma.contaminus.database.entities.Device;
import net.miarma.contaminus.database.entities.Sensor;
import net.miarma.contaminus.util.RestClientUtil;
@@ -38,7 +37,7 @@ public class LogicLayerAPIVerticle extends AbstractVerticle {
this.configManager = ConfigManager.getInstance();
WebClientOptions options = new WebClientOptions()
.setUserAgent("ContaminUS");
this.restClient = new RestClientUtil(WebClient.create(vertx, options));
this.restClient = new RestClientUtil(WebClient.create(Vertx.vertx(), options));
}
@Override

View File

@@ -0,0 +1,10 @@
package net.miarma.contaminus.util;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
public class DateParser {
public static long parseDate(LocalDateTime date) {
return date.toEpochSecond(ZoneOffset.UTC);
}
}