58 lines
2.8 KiB
Python
58 lines
2.8 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.delivery_accessory import DeliveryAccessoryEntity
|
|
from app.core.usecases.delivery_accessory_service import DeliveryAccessoriesService
|
|
from app.infrastructure.database.models.users import User
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/delivery-accessories", response_model=List[DeliveryAccessoryEntity])
|
|
def read_delivery_accessories(db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = DeliveryAccessoriesService(db)
|
|
return service.get_all_delivery_accessories()
|
|
|
|
|
|
@router.get("/delivery-accessories/{delivery_accessory_id}", response_model=DeliveryAccessoryEntity)
|
|
def read_delivery_accessory(delivery_accessory_id: int, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = DeliveryAccessoriesService(db)
|
|
delivery_accessory = service.get_delivery_accessory_by_id(delivery_accessory_id)
|
|
if delivery_accessory is None:
|
|
raise HTTPException(status_code=404, detail="Delivery accessory not found")
|
|
return delivery_accessory
|
|
|
|
|
|
@router.post("/delivery-accessories", response_model=DeliveryAccessoryEntity)
|
|
def create_delivery_accessory(delivery_accessory: DeliveryAccessoryEntity, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = DeliveryAccessoriesService(db)
|
|
return service.create_delivery_accessory(delivery_accessory)
|
|
|
|
|
|
@router.put("/delivery-accessories/{delivery_accessory_id}", response_model=DeliveryAccessoryEntity)
|
|
def update_delivery_accessory(delivery_accessory_id: int, delivery_accessory: DeliveryAccessoryEntity,
|
|
db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = DeliveryAccessoriesService(db)
|
|
updated_delivery_accessory = service.update_delivery_accessory(delivery_accessory_id, delivery_accessory)
|
|
if updated_delivery_accessory is None:
|
|
raise HTTPException(status_code=404, detail="Delivery accessory not found")
|
|
return updated_delivery_accessory
|
|
|
|
|
|
@router.delete("/delivery-accessories/{delivery_accessory_id}", response_model=bool)
|
|
def delete_delivery_accessory(delivery_accessory_id: int, db: Session = Depends(get_db),
|
|
current_user: User = Depends(verify_token)):
|
|
service = DeliveryAccessoriesService(db)
|
|
success = service.delete_delivery_accessory(delivery_accessory_id)
|
|
if not success:
|
|
raise HTTPException(status_code=404, detail="Delivery accessory not found")
|
|
return success
|