diff options
Diffstat (limited to 'api/routes/stations.py')
| -rw-r--r-- | api/routes/stations.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/api/routes/stations.py b/api/routes/stations.py index e69de29..62e2643 100644 --- a/api/routes/stations.py +++ b/api/routes/stations.py @@ -0,0 +1,33 @@ +from fastapi import APIRouter +from sqlalchemy import select +from ..database import SessionLocal +from ..models import Station + +router = APIRouter( + prefix='/stations', + tags=['stations'] +) + +@router.get('/') +async def get_stations(): + dc = {'stations': []} + session = SessionLocal() + stmt = select(Station) + stations = session.execute(stmt) + for station in stations.scalars(): + stmt_devices = select(SensorDevice.id).where(SensorDevice.station_id == station.id) + ids_res = session.execute(stmt_devices).all() + ids = [] + for id in ids_res: + ids.append(id.id) + stat = { + 'id': station.id, + 'name': station.name, + 'installation_date': station.installation_date, + 'location_id': station.location_id, + 'is_active': station.is_active, + 'sensor_device_ids': ids + } + dc['stations'].append(stat) + dc['size'] = len(dc['stations']) + return dc |
