diff --git a/server/backend/adapters/http/readings.py b/server/backend/adapters/http/readings.py index 3807998..9fb12ca 100644 --- a/server/backend/adapters/http/readings.py +++ b/server/backend/adapters/http/readings.py @@ -1,7 +1,8 @@ from datetime import datetime from typing import Annotated -from fastapi import APIRouter, Depends, Query, HTTPException +from fastapi import APIRouter, Depends, Query, HTTPException, Path +from pydantic import constr from domain.value_objects import Granularity from domain.exceptions import ValidationError, DatabaseError @@ -12,10 +13,11 @@ from ._readings_schemas import ConsumptionResponseSchema readings_router = APIRouter(prefix="/readings", tags=["readings"]) +DevEUI = Annotated[constr(max_length=64, pattern=r'^[0-9A-Fa-f]+$'), Path()] @readings_router.get("/{dev_eui}", response_model=ConsumptionResponseSchema) def get_consumption( - dev_eui: str, + dev_eui: DevEUI, start: Annotated[datetime, Query()], end: Annotated[datetime, Query()], granularity: Annotated[Granularity, Query()] = "day",