57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
from typing import List
|
|
|
|
from fastapi import APIRouter, HTTPException, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.usecases.auth_service import verify_token
|
|
from app.infrastructure.database.dependencies import get_db
|
|
from app.core.entities.truck import TruckEntity
|
|
from app.core.usecases.truck_service import TrucksService
|
|
from app.infrastructure.database.models.users import User
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/trucks", response_model=List[TruckEntity])
|
|
def read_trucks(db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = TrucksService(db)
|
|
return service.get_all_trucks()
|
|
|
|
|
|
@router.get("/trucks/{truck_id}", response_model=TruckEntity)
|
|
def read_truck(truck_id: int, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = TrucksService(db)
|
|
truck = service.get_truck_by_id(truck_id)
|
|
if truck is None:
|
|
raise HTTPException(status_code=404, detail="Truck not found")
|
|
return truck
|
|
|
|
|
|
@router.post("/trucks", response_model=TruckEntity)
|
|
def create_truck(truck: TruckEntity, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = TrucksService(db)
|
|
return service.create_truck(truck)
|
|
|
|
|
|
@router.put("/trucks/{truck_id}", response_model=TruckEntity)
|
|
def update_truck(truck_id: int, truck: TruckEntity, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = TrucksService(db)
|
|
updated_truck = service.update_truck(truck_id, truck)
|
|
if updated_truck is None:
|
|
raise HTTPException(status_code=404, detail="Truck not found")
|
|
return updated_truck
|
|
|
|
|
|
@router.delete("/trucks/{truck_id}", response_model=bool)
|
|
def delete_truck(truck_id: int, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = TrucksService(db)
|
|
success = service.delete_truck(truck_id)
|
|
if not success:
|
|
raise HTTPException(status_code=404, detail="Truck not found")
|
|
return success
|