Added date parser and Vertx explicit instance
This commit is contained in:
@@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("actuators")
|
@Table("actuators")
|
||||||
public class Actuator {
|
public class Actuator {
|
||||||
@@ -19,7 +20,7 @@ public class Actuator {
|
|||||||
this.actuatorId = row.getInteger("actuatorId");
|
this.actuatorId = row.getInteger("actuatorId");
|
||||||
this.deviceId = row.getInteger("deviceId");
|
this.deviceId = row.getInteger("deviceId");
|
||||||
this.status = row.getInteger("status");
|
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) {
|
public Actuator(int actuatorId, int deviceId, int status, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("co_values")
|
@Table("co_values")
|
||||||
public class COValue {
|
public class COValue {
|
||||||
@@ -19,7 +20,7 @@ public class COValue {
|
|||||||
this.valueId = row.getInteger("valueId");
|
this.valueId = row.getInteger("valueId");
|
||||||
this.sensorId = row.getInteger("sensorId");
|
this.sensorId = row.getInteger("sensorId");
|
||||||
this.value = row.getFloat("value");
|
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) {
|
public COValue(int valueId, int sensorId, float value, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_co_by_device")
|
@Table("v_co_by_device")
|
||||||
public class DeviceCO {
|
public class DeviceCO {
|
||||||
@@ -16,7 +17,7 @@ public class DeviceCO {
|
|||||||
public DeviceCO(Row row) {
|
public DeviceCO(Row row) {
|
||||||
this.deviceId = row.getInteger("deviceId");
|
this.deviceId = row.getInteger("deviceId");
|
||||||
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
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) {
|
public DeviceCO(int deviceId, float carbonMonoxide, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_gps_by_device")
|
@Table("v_gps_by_device")
|
||||||
public class DeviceGPS {
|
public class DeviceGPS {
|
||||||
@@ -18,7 +19,7 @@ public class DeviceGPS {
|
|||||||
this.deviceId = row.getInteger("deviceId");
|
this.deviceId = row.getInteger("deviceId");
|
||||||
this.lat = row.getFloat("lat");
|
this.lat = row.getFloat("lat");
|
||||||
this.lon = row.getFloat("lon");
|
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) {
|
public DeviceGPS(int deviceId, long lat, long lon) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_latest_values")
|
@Table("v_latest_values")
|
||||||
public class DeviceLatestValuesView {
|
public class DeviceLatestValuesView {
|
||||||
@@ -27,13 +28,13 @@ public class DeviceLatestValuesView {
|
|||||||
this.sensorType = row.getString("sensorType");
|
this.sensorType = row.getString("sensorType");
|
||||||
this.unit = row.getString("unit");
|
this.unit = row.getString("unit");
|
||||||
this.sensorStatus = row.getInteger("sensorStatus");
|
this.sensorStatus = row.getInteger("sensorStatus");
|
||||||
this.sensorTimestamp = row.getLong("sensorTimestamp");
|
this.sensorTimestamp = DateParser.parseDate(row.getLocalDateTime("sensorTimestamp"));
|
||||||
this.temperature = row.getFloat("temperature");
|
this.temperature = row.getFloat("temperature");
|
||||||
this.humidity = row.getFloat("humidity");
|
this.humidity = row.getFloat("humidity");
|
||||||
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
||||||
this.lat = row.getFloat("lat");
|
this.lat = row.getFloat("lat");
|
||||||
this.lon = row.getFloat("lon");
|
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,
|
public DeviceLatestValuesView(int deviceId, int sensorId, String sensorType, String unit, int sensorStatus,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_pollution_map")
|
@Table("v_pollution_map")
|
||||||
public class DevicePollutionMap {
|
public class DevicePollutionMap {
|
||||||
@@ -22,7 +23,7 @@ public class DevicePollutionMap {
|
|||||||
this.lat = row.getFloat("lat");
|
this.lat = row.getFloat("lat");
|
||||||
this.lon = row.getFloat("lon");
|
this.lon = row.getFloat("lon");
|
||||||
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
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,
|
public DevicePollutionMap(int deviceId, String deviceName, float lat, float lon, float carbonMonoxide,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_sensor_history_by_device")
|
@Table("v_sensor_history_by_device")
|
||||||
public class DeviceSensorHistory {
|
public class DeviceSensorHistory {
|
||||||
@@ -20,7 +21,7 @@ public class DeviceSensorHistory {
|
|||||||
this.deviceName = row.getString("deviceName");
|
this.deviceName = row.getString("deviceName");
|
||||||
this.value = row.getFloat("value");
|
this.value = row.getFloat("value");
|
||||||
this.valueType = row.getString("valueType");
|
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) {
|
public DeviceSensorHistory(int deviceId, String deviceName, float value, String valueType, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_sensor_values")
|
@Table("v_sensor_values")
|
||||||
public class DeviceSensorValue {
|
public class DeviceSensorValue {
|
||||||
@@ -32,7 +33,7 @@ public class DeviceSensorValue {
|
|||||||
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
this.carbonMonoxide = row.getFloat("carbonMonoxide");
|
||||||
this.lat = row.getFloat("lat");
|
this.lat = row.getFloat("lat");
|
||||||
this.lon = row.getFloat("lon");
|
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,
|
public DeviceSensorValue(int sensorId, int deviceId, String sensorType, String unit, int sensorStatus,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("v_weather_by_device")
|
@Table("v_weather_by_device")
|
||||||
public class DeviceWeather {
|
public class DeviceWeather {
|
||||||
@@ -18,7 +19,7 @@ public class DeviceWeather {
|
|||||||
this.deviceId = row.getInteger("deviceId");
|
this.deviceId = row.getInteger("deviceId");
|
||||||
this.temperature = row.getFloat("temperature");
|
this.temperature = row.getFloat("temperature");
|
||||||
this.humidity = row.getFloat("humidity");
|
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) {
|
public DeviceWeather(int deviceId, float temperature, float humidity, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("gps_values")
|
@Table("gps_values")
|
||||||
public class GpsValue {
|
public class GpsValue {
|
||||||
@@ -21,7 +22,7 @@ public class GpsValue {
|
|||||||
this.sensorId = row.getInteger("sensorId");
|
this.sensorId = row.getInteger("sensorId");
|
||||||
this.lat = row.getFloat("lat");
|
this.lat = row.getFloat("lat");
|
||||||
this.lon = row.getFloat("lon");
|
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) {
|
public GpsValue(int valueId, int sensorId, float lat, float lon, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("sensors")
|
@Table("sensors")
|
||||||
public class Sensor {
|
public class Sensor {
|
||||||
@@ -23,7 +24,7 @@ public class Sensor {
|
|||||||
this.sensorType = row.getString("sensorType");
|
this.sensorType = row.getString("sensorType");
|
||||||
this.unit = row.getString("unit");
|
this.unit = row.getString("unit");
|
||||||
this.status = row.getInteger("status");
|
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) {
|
public Sensor(int sensorId, int deviceId, String sensorType, String unit, int status, long timestamp) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import io.vertx.sqlclient.Row;
|
import io.vertx.sqlclient.Row;
|
||||||
import net.miarma.contaminus.common.Table;
|
import net.miarma.contaminus.common.Table;
|
||||||
|
import net.miarma.contaminus.util.DateParser;
|
||||||
|
|
||||||
@Table("weather_values")
|
@Table("weather_values")
|
||||||
public class WeatherValue {
|
public class WeatherValue {
|
||||||
@@ -21,7 +22,7 @@ public class WeatherValue {
|
|||||||
this.sensorId = row.getInteger("sensorId");
|
this.sensorId = row.getInteger("sensorId");
|
||||||
this.temperature = row.getFloat("temperature");
|
this.temperature = row.getFloat("temperature");
|
||||||
this.humidity = row.getFloat("humidity");
|
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) {
|
public WeatherValue(int valueId, int sensorId, float temperature, float humidity, long timestamp) {
|
||||||
|
|||||||
@@ -4,27 +4,29 @@ import java.util.Arrays;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import io.vertx.core.AbstractVerticle;
|
import io.vertx.core.AbstractVerticle;
|
||||||
import io.vertx.core.Promise;
|
import io.vertx.core.Promise;
|
||||||
import io.vertx.core.Vertx;
|
|
||||||
import io.vertx.core.http.HttpMethod;
|
import io.vertx.core.http.HttpMethod;
|
||||||
import io.vertx.core.json.JsonObject;
|
|
||||||
import io.vertx.ext.web.Router;
|
import io.vertx.ext.web.Router;
|
||||||
import io.vertx.ext.web.RoutingContext;
|
import io.vertx.ext.web.RoutingContext;
|
||||||
import io.vertx.ext.web.handler.BodyHandler;
|
import io.vertx.ext.web.handler.BodyHandler;
|
||||||
import io.vertx.ext.web.handler.CorsHandler;
|
import io.vertx.ext.web.handler.CorsHandler;
|
||||||
import io.vertx.jdbcclient.JDBCConnectOptions;
|
|
||||||
import io.vertx.jdbcclient.JDBCPool;
|
import io.vertx.jdbcclient.JDBCPool;
|
||||||
import io.vertx.sqlclient.PoolOptions;
|
|
||||||
import net.miarma.contaminus.common.ConfigManager;
|
import net.miarma.contaminus.common.ConfigManager;
|
||||||
import net.miarma.contaminus.common.Constants;
|
import net.miarma.contaminus.common.Constants;
|
||||||
import net.miarma.contaminus.database.DatabaseManager;
|
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")
|
@SuppressWarnings("unused")
|
||||||
public class DataLayerAPIVerticle extends AbstractVerticle {
|
public class DataLayerAPIVerticle extends AbstractVerticle {
|
||||||
private JDBCPool pool;
|
private JDBCPool pool;
|
||||||
private DatabaseManager dbManager;
|
private DatabaseManager dbManager;
|
||||||
private ConfigManager configManager;
|
private ConfigManager configManager;
|
||||||
|
private Gson gson = new Gson();
|
||||||
|
|
||||||
public DataLayerAPIVerticle(JDBCPool pool) {
|
public DataLayerAPIVerticle(JDBCPool pool) {
|
||||||
this.pool = pool;
|
this.pool = pool;
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import net.miarma.contaminus.database.entities.DevicePollutionMap;
|
|||||||
import net.miarma.contaminus.database.entities.DeviceSensorHistory;
|
import net.miarma.contaminus.database.entities.DeviceSensorHistory;
|
||||||
import net.miarma.contaminus.database.entities.DeviceSensorValue;
|
import net.miarma.contaminus.database.entities.DeviceSensorValue;
|
||||||
import net.miarma.contaminus.database.entities.Actuator;
|
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.database.entities.Sensor;
|
||||||
import net.miarma.contaminus.util.RestClientUtil;
|
import net.miarma.contaminus.util.RestClientUtil;
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@ public class LogicLayerAPIVerticle extends AbstractVerticle {
|
|||||||
this.configManager = ConfigManager.getInstance();
|
this.configManager = ConfigManager.getInstance();
|
||||||
WebClientOptions options = new WebClientOptions()
|
WebClientOptions options = new WebClientOptions()
|
||||||
.setUserAgent("ContaminUS");
|
.setUserAgent("ContaminUS");
|
||||||
this.restClient = new RestClientUtil(WebClient.create(vertx, options));
|
this.restClient = new RestClientUtil(WebClient.create(Vertx.vertx(), options));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user