Skip to content

Commit 8023f54

Browse files
authored
Merge pull request #11 from Hanagotchi/HAN-25
HAN-25: Obtener la ultima medición realizada por un sensor
2 parents 5bcf316 + 9043541 commit 8023f54

File tree

5 files changed

+42
-1
lines changed

5 files changed

+42
-1
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from controller.device_plant_controller import withSQLExceptionsHandle
2+
from fastapi import Request
3+
4+
5+
@withSQLExceptionsHandle
6+
def last_measurement_made_by_plant(req: Request, id_plant: int):
7+
try:
8+
return req.app.database.get_last_measurement(id_plant)
9+
except Exception as err:
10+
req.app.database.rollback()
11+
raise err

app/router/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from fastapi import APIRouter
22
from router.device_plant_router import device_plant
3+
from router.measurement_router import measurement
34

45
api_router = APIRouter()
56

67
api_router.include_router(device_plant, tags=["DevicePlant"], prefix="/device-plant")
8+
api_router.include_router(measurement, tags=["Measurement"], prefix="/measurement")

app/router/measurement_router.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from fastapi import APIRouter, Request, status
2+
from schemas.measurement import (
3+
MeasurementSavedSchema
4+
)
5+
from controller import measurement_controller as controller
6+
7+
8+
measurement = APIRouter()
9+
10+
11+
@measurement.get(
12+
"/{id_plant}/last",
13+
status_code=status.HTTP_200_OK,
14+
response_model=MeasurementSavedSchema
15+
)
16+
async def last_measurement_made_by_plant(id_plant: int, req: Request):
17+
return controller.last_measurement_made_by_plant(req, id_plant)

app/schemas/measurement_reading.py renamed to app/schemas/measurement.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22
from typing import Optional
33

44

5+
class MeasurementSavedSchema(BaseModel):
6+
id: int
7+
id_plant: int
8+
plant_type: int
9+
time_stamp: str
10+
temperature: Optional[int]
11+
humidity: Optional[int]
12+
light: Optional[int]
13+
watering: Optional[int]
14+
15+
516
class MeasurementReadingSchema(BaseModel):
617
"""
718
Schema used to parse the data from measurements obtained via RabbitMQ.

app/service/rabbitmq/consumer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from exceptions.empty_package import EmptyPackageError
99
from exceptions.row_not_found import RowNotFoundError
1010
from pydantic import ValidationError
11-
from schemas.measurement_reading import MeasurementReadingSchema
11+
from schemas.measurement import MeasurementReadingSchema
1212
from sqlalchemy import MetaData
1313
from sqlalchemy.orm import Session
1414
from sqlalchemy import create_engine

0 commit comments

Comments
 (0)