summaryrefslogtreecommitdiff
path: root/api/routes/stations.py
blob: 62e2643bba5c661f495704902ab5bbdc82c32a8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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