From 103ba113f6aac26e49de7601cd9a4133d5cd1803 Mon Sep 17 00:00:00 2001 From: Jose Date: Sun, 16 Mar 2025 03:04:32 +0100 Subject: [PATCH] Fixed errors in Business Logic API and finished it. --- .../main/java/net/miarma/contaminus/Main.java | 16 ++++++ .../database/entities/DeviceSensorValue.java | 2 +- .../server/DataLayerAPIVerticle.java | 54 +++++++++++++++++++ .../server/LogicLayerAPIVerticle.java | 10 ++-- 4 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 backend/src/main/java/net/miarma/contaminus/Main.java diff --git a/backend/src/main/java/net/miarma/contaminus/Main.java b/backend/src/main/java/net/miarma/contaminus/Main.java new file mode 100644 index 0000000..b495d38 --- /dev/null +++ b/backend/src/main/java/net/miarma/contaminus/Main.java @@ -0,0 +1,16 @@ +package net.miarma.contaminus; + +import net.miarma.contaminus.database.QueryBuilder; +import net.miarma.contaminus.database.entities.DeviceSensorValue; + +public class Main { + + public static void main(String[] args) { + // TODO Auto-generated method stub + String query = QueryBuilder + .select(DeviceSensorValue.class) + .build(); + System.out.println(query); + } + +} diff --git a/backend/src/main/java/net/miarma/contaminus/database/entities/DeviceSensorValue.java b/backend/src/main/java/net/miarma/contaminus/database/entities/DeviceSensorValue.java index d3fa82b..ebe0222 100644 --- a/backend/src/main/java/net/miarma/contaminus/database/entities/DeviceSensorValue.java +++ b/backend/src/main/java/net/miarma/contaminus/database/entities/DeviceSensorValue.java @@ -29,7 +29,7 @@ public class DeviceSensorValue { this.unit = row.getString("unit"); this.sensorStatus = row.getInteger("sensorStatus"); this.temperature = row.getFloat("temperature"); - this.humidity = row.getFloat("humidty"); + this.humidity = row.getFloat("humidity"); this.carbonMonoxide = row.getFloat("carbonMonoxide"); this.lat = row.getFloat("lat"); this.lon = row.getFloat("lon"); diff --git a/backend/src/main/java/net/miarma/contaminus/server/DataLayerAPIVerticle.java b/backend/src/main/java/net/miarma/contaminus/server/DataLayerAPIVerticle.java index 4d5823c..819b21a 100644 --- a/backend/src/main/java/net/miarma/contaminus/server/DataLayerAPIVerticle.java +++ b/backend/src/main/java/net/miarma/contaminus/server/DataLayerAPIVerticle.java @@ -21,6 +21,9 @@ 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.DeviceLatestValuesView; +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.Sensor; @SuppressWarnings("unused") @@ -77,6 +80,9 @@ public class DataLayerAPIVerticle extends AbstractVerticle { // Views Routes router.route(HttpMethod.GET, Constants.GET_LATEST_VALUES_VIEW).handler(this::getLatestValuesView); + router.route(HttpMethod.GET, Constants.GET_POLLUTION_MAP_VIEW).handler(this::getDevicePollutionMapView); + router.route(HttpMethod.GET, Constants.GET_SENSOR_VALUES_VIEW).handler(this::getSensorValuesView); + router.route(HttpMethod.GET, Constants.GET_SENSOR_HISTORY_BY_DEVICE_VIEW).handler(this::getSensorHistoryByDeviceView); vertx.createHttpServer() .requestHandler(router) @@ -170,5 +176,53 @@ public class DataLayerAPIVerticle extends AbstractVerticle { context.fail(500, onFailure); }); } + + private void getDevicePollutionMapView(RoutingContext context) { + String query = QueryBuilder + .select(DevicePollutionMap.class) + .build(); + + dbManager.execute(query, DevicePollutionMap.class, + onSuccess -> { + context.response() + .putHeader("content-type", "application/json; charset=utf-8") + .end(gson.toJson(onSuccess)); + }, + onFailure -> { + context.fail(500, onFailure); + }); + } + + private void getSensorValuesView(RoutingContext context) { + String query = QueryBuilder + .select(DeviceSensorValue.class) + .build(); + + dbManager.execute(query, DeviceSensorValue.class, + onSuccess -> { + context.response() + .putHeader("content-type", "application/json; charset=utf-8") + .end(gson.toJson(onSuccess)); + }, + onFailure -> { + context.fail(500, onFailure); + }); + } + + private void getSensorHistoryByDeviceView(RoutingContext context) { + String query = QueryBuilder + .select(DeviceSensorHistory.class) + .build(); + + dbManager.execute(query, DeviceSensorHistory.class, + onSuccess -> { + context.response() + .putHeader("content-type", "application/json; charset=utf-8") + .end(gson.toJson(onSuccess)); + }, + onFailure -> { + context.fail(500, onFailure); + }); + } } diff --git a/backend/src/main/java/net/miarma/contaminus/server/LogicLayerAPIVerticle.java b/backend/src/main/java/net/miarma/contaminus/server/LogicLayerAPIVerticle.java index 8ca274a..db4d208 100644 --- a/backend/src/main/java/net/miarma/contaminus/server/LogicLayerAPIVerticle.java +++ b/backend/src/main/java/net/miarma/contaminus/server/LogicLayerAPIVerticle.java @@ -143,7 +143,7 @@ public class LogicLayerAPIVerticle extends AbstractVerticle { resultList.future().onComplete(complete -> { if (complete.succeeded()) { List aux = Stream.of(complete.result()) - .filter(d -> d.getDeviceId() == deviceId) + .filter(elem -> elem.getDeviceId() == deviceId) .toList(); context.response() @@ -166,7 +166,7 @@ public class LogicLayerAPIVerticle extends AbstractVerticle { resultList.future().onComplete(complete -> { if (complete.succeeded()) { List aux = Arrays.asList(complete.result()).stream() - .filter(d -> d.getDeviceId() == deviceId) + .filter(elem -> elem.getDeviceId() == deviceId) .toList(); context.response() @@ -189,7 +189,7 @@ public class LogicLayerAPIVerticle extends AbstractVerticle { resultList.future().onComplete(complete -> { if (complete.succeeded()) { List aux = Arrays.asList(complete.result()).stream() - .filter(d -> d.getDeviceId() == deviceId) + .filter(elem -> elem.getDeviceId() == deviceId) .toList(); context.response() @@ -205,14 +205,14 @@ public class LogicLayerAPIVerticle extends AbstractVerticle { } private void getSensorValues(RoutingContext context) { - Integer deviceId = Integer.parseInt(context.request().getParam("deviceId")); + Integer sensorId = Integer.parseInt(context.request().getParam("sensorId")); Promise resultList = Promise.promise(); resultList.future().onComplete(complete -> { if (complete.succeeded()) { List aux = Arrays.asList(complete.result()).stream() - .filter(d -> d.getDeviceId() == deviceId) + .filter(val -> val.getSensorId() == sensorId) .toList(); context.response()