Compare commits

..

3 Commits

Author SHA1 Message Date
1e7516fe7b update requirements 2026-02-22 12:19:33 +01:00
a63864bcaa updated compose file 2026-02-22 12:17:03 +01:00
e45faeb281 updated compose file 2026-02-22 11:22:19 +01:00
4 changed files with 5 additions and 34 deletions

View File

@@ -1,4 +1,3 @@
version: "3.9"
name: "road_vision" name: "road_vision"
services: services:
mqtt: mqtt:

View File

@@ -1,8 +1,7 @@
version: "3.9"
name: "road_vision__database" name: "road_vision__database"
services: services:
postgres_db: postgres_db:
image: postgres:latest image: postgres:17
container_name: postgres_db container_name: postgres_db
restart: always restart: always
environment: environment:

View File

@@ -2,7 +2,6 @@ import asyncio
import json import json
from typing import Set, Dict, List, Any from typing import Set, Dict, List, Any
from fastapi import FastAPI, HTTPException, WebSocket, WebSocketDisconnect, Body from fastapi import FastAPI, HTTPException, WebSocket, WebSocketDisconnect, Body
from fastapi.encoders import jsonable_encoder
from sqlalchemy import ( from sqlalchemy import (
create_engine, create_engine,
MetaData, MetaData,
@@ -126,36 +125,10 @@ async def send_data_to_subscribers(user_id: int, data):
@app.post("/processed_agent_data/") @app.post("/processed_agent_data/")
async def create_processed_agent_data(data: List[ProcessedAgentData], user_id: int = Body(..., embed=True)): async def create_processed_agent_data(data: List[ProcessedAgentData]):
session = SessionLocal() # Insert data to database
try: # Send data to subscribers
created_data = [ pass
{
"road_state": item.road_state,
"user_id": user_id,
"x": item.agent_data.accelerometer.x,
"y": item.agent_data.accelerometer.y,
"z": item.agent_data.accelerometer.z,
"latitude": item.agent_data.gps.latitude,
"longitude": item.agent_data.gps.longitude,
"timestamp": item.agent_data.timestamp,
}
for item in data
]
stmt = processed_agent_data.insert().values(created_data).returning(processed_agent_data)
result = session.execute(stmt)
created_records = [dict(row._mapping) for row in result.fetchall()]
session.commit()
for record in created_records:
await send_data_to_subscribers(user_id, jsonable_encoder(record))
return created_records
except Exception as err:
session.rollback()
print(f"Database error: {err}")
raise HTTPException(status_code=500, detail="Internal Server Error")
finally:
session.close()
@app.get( @app.get(

Binary file not shown.