mirror of
https://github.com/michivonah/bbzw-horizon.git
synced 2025-12-22 17:16:27 +01:00
implement recent data endpoint
This commit is contained in:
parent
49b01c269a
commit
2c1a95c1a5
3 changed files with 54 additions and 7 deletions
|
|
@ -2,7 +2,8 @@ import os
|
|||
from sqlmodel import create_engine, Session
|
||||
from dotenv import load_dotenv
|
||||
from models import User, SensorData, Client, Session as SessionModel
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from typing import List, Optional
|
||||
|
||||
|
||||
# Lade Umgebungsvariablen
|
||||
|
|
@ -12,6 +13,13 @@ DB_CONNECTION_STRING = os.getenv("DB_CONNECTION_STRING", "postgresql://user:pass
|
|||
# SQLAlchemy Setup
|
||||
engine = create_engine(DB_CONNECTION_STRING, echo=True)
|
||||
|
||||
def get_db():
|
||||
db = Session(bind=engine)
|
||||
try:
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
# Funktion zum Speichern von Sensordaten
|
||||
def save_sensor_data(db: Session, sensor_data: SensorData):
|
||||
db.add(sensor_data) # Das Pydantic-Modell kann direkt hinzugefügt werden
|
||||
|
|
@ -56,4 +64,11 @@ def save_token_to_db(db: Session, token: str, user_id: int, valid_until: datetim
|
|||
new_session = SessionModel(token=token, validuntil=valid_until, userid=user_id)
|
||||
db.add(new_session)
|
||||
db.commit()
|
||||
db.refresh(new_session)
|
||||
db.refresh(new_session)
|
||||
|
||||
def get_recent_sensor_data(db: Session, client_id: int, start_date: datetime, end_date: datetime) -> List[SensorData]:
|
||||
return db.query(SensorData).filter(
|
||||
SensorData.timestamp >= start_date,
|
||||
SensorData.timestamp < end_date, # Das end_date sollte exklusiv sein
|
||||
SensorData.clientid == client_id
|
||||
).all()
|
||||
Loading…
Add table
Add a link
Reference in a new issue