Initial commit - Migrated to Dev environment
This commit is contained in:
46
backend/app/api/v1/endpoints/fleet.py
Executable file
46
backend/app/api/v1/endpoints/fleet.py
Executable file
@@ -0,0 +1,46 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy import select, text
|
||||
from app.api.deps import get_db, get_current_user
|
||||
from app.models.vehicle import Vehicle
|
||||
from app.models.company import CompanyMember
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/vehicles")
|
||||
async def get_my_vehicles(db: AsyncSession = Depends(get_db), current_user = Depends(get_current_user)):
|
||||
# Megkeressük a cégeket (széfeket), amikhez a felhasználónak köze van
|
||||
company_query = select(CompanyMember.company_id).where(CompanyMember.user_id == current_user.id)
|
||||
company_res = await db.execute(company_query)
|
||||
company_ids = company_res.scalars().all()
|
||||
|
||||
if not company_ids:
|
||||
return []
|
||||
|
||||
# Lekérjük az összes járművet, ami ezekhez a cégekhez tartozik
|
||||
query = select(Vehicle).where(Vehicle.current_company_id.in_(company_ids))
|
||||
result = await db.execute(query)
|
||||
return result.scalars().all()
|
||||
|
||||
@router.post("/vehicles")
|
||||
async def add_vehicle(vehicle_in: dict, db: AsyncSession = Depends(get_db), current_user = Depends(get_current_user)):
|
||||
# Itt a meglévő logika fut tovább, de a Vehicle-t a user alapértelmezett cégéhez kötjük
|
||||
# Először lekérjük a user "owner" típusú cégét
|
||||
org_query = text("SELECT company_id FROM data.company_members WHERE user_id = :uid AND role = 'owner' LIMIT 1")
|
||||
org_res = await db.execute(org_query, {"uid": current_user.id})
|
||||
company_id = org_res.scalar()
|
||||
|
||||
if not company_id:
|
||||
raise HTTPException(status_code=404, detail="Nem található saját széf a jármű rögzítéséhez.")
|
||||
|
||||
# Új jármű létrehozása az új modell alapján
|
||||
new_vehicle = Vehicle(
|
||||
current_company_id=company_id,
|
||||
brand_id=vehicle_in.get("brand_id"),
|
||||
model_name=vehicle_in.get("model_name"),
|
||||
identification_number=vehicle_in.get("vin"),
|
||||
license_plate=vehicle_in.get("license_plate")
|
||||
)
|
||||
db.add(new_vehicle)
|
||||
await db.commit()
|
||||
return {"status": "success", "vehicle_id": str(new_vehicle.id)}
|
||||
Reference in New Issue
Block a user