From 8333029c4f99de8660066ccab99d9ac2e82c6ebb Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 17 Jan 2021 10:53:26 +0100
Subject: [PATCH] v2.0.3; order measurements by timestamp descending

---
 src/logic/database/Crud.py             | 14 ++++++++++----
 src/logic/database/Schemas.py          |  4 ++--
 src/logic/routers/MeasurementRouter.py |  2 +-
 src/version.json                       |  4 ++--
 4 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/logic/database/Crud.py b/src/logic/database/Crud.py
index 2256b16..5fe6860 100644
--- a/src/logic/database/Crud.py
+++ b/src/logic/database/Crud.py
@@ -117,11 +117,17 @@ def get_measurements(db: Session, startDateTime: str, endDateTime: str) -> List[
 def get_measurements_for_sensor(db: Session, startDateTime: str,
                                 endDateTime: str, sensorId: int) -> List[Models.Measurement]:
     if startDateTime and endDateTime:
-        return db.query(Models.Measurement).filter(and_(startDateTime <= Models.Measurement.timestamp,
-                                                        endDateTime >= Models.Measurement.timestamp,
-                                                        Models.Measurement.sensor_id == sensorId)).all()
+        return db.query(Models.Measurement) \
+            .filter(and_(startDateTime <= Models.Measurement.timestamp,
+                         endDateTime >= Models.Measurement.timestamp,
+                         Models.Measurement.sensor_id == sensorId)) \
+            .order_by(Models.Measurement.timestamp.desc()) \
+            .all()
 
-    return db.query(Models.Measurement).filter(Models.Measurement.sensor_id == sensorId).all()
+    return db.query(Models.Measurement) \
+        .filter(Models.Measurement.sensor_id == sensorId) \
+        .order_by(Models.Measurement.timestamp.desc()) \
+        .all()
 
 
 def get_latest_measurement_for_sensor(db: Session, sensorId: int) -> Models.Measurement:
diff --git a/src/logic/database/Schemas.py b/src/logic/database/Schemas.py
index f6b6fec..44be90a 100644
--- a/src/logic/database/Schemas.py
+++ b/src/logic/database/Schemas.py
@@ -25,8 +25,8 @@ class Version(BaseModel):
 
 
 class MinMax(BaseModel):
-    min: float or None
-    max: float or None
+    min: float = None
+    max: float = None
 
 
 # ===== measurement =====
diff --git a/src/logic/routers/MeasurementRouter.py b/src/logic/routers/MeasurementRouter.py
index c927cf3..af10479 100644
--- a/src/logic/routers/MeasurementRouter.py
+++ b/src/logic/routers/MeasurementRouter.py
@@ -70,7 +70,7 @@ async def get_min_and_max_for_sensor_ids(sensorIds: List[int] = Query(None),
     if values:
         return MinMax(min=min(values), max=max(values))
 
-    return MinMax(min=None, max=None)
+    return MinMax()
 
 
 @router.post('/measurements/', response_model=Schemas.Status,
diff --git a/src/version.json b/src/version.json
index eb4dbd9..16a01eb 100644
--- a/src/version.json
+++ b/src/version.json
@@ -1,7 +1,7 @@
 {
     "version": {
-        "name": "v2.0.3",
-        "code": 11,
+        "name": "v2.0.4",
+        "code": 12,
         "date": "17.01.21"
     }
 }
\ No newline at end of file
-- 
GitLab