38 lines
2.0 KiB
Python
38 lines
2.0 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from sqlalchemy.orm import Session
|
|
from . import services, dto
|
|
from core.database import get_db
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/customs-broker/{broker_key}", response_model=dto.CustomsBrokerDTO)
|
|
def get_customs_broker(broker_key: str, db: Session = Depends(get_db)):
|
|
broker = services.CustomsBrokerService.get_by_broker_key(db, broker_key)
|
|
if not broker:
|
|
raise HTTPException(status_code=404, detail="Customs Broker not found")
|
|
return broker
|
|
|
|
@router.post("/customs-broker", response_model=dto.CustomsBrokerDTO)
|
|
def create_customs_broker(broker_data: dto.CustomsBrokerDTO, db: Session = Depends(get_db)):
|
|
return services.CustomsBrokerService.create_customs_broker(db, broker_data)
|
|
|
|
@router.delete("/customs-broker/{broker_key}", response_model=dto.CustomsBrokerDTO)
|
|
def delete_customs_broker(broker_key: str, db: Session = Depends(get_db)):
|
|
broker = services.CustomsBrokerService.delete_customs_broker(db, broker_key)
|
|
if not broker:
|
|
raise HTTPException(status_code=404, detail="Customs Broker not found")
|
|
return broker
|
|
|
|
@router.put("/customs-broker-vu/{broker_key}", response_model=dto.CustomsBrokerVUCreateDTO)
|
|
def update_customs_broker_vu(broker_key: str, vu_data: dto.CustomsBrokerVUCreateDTO, db: Session = Depends(get_db)):
|
|
updated_vu = services.CustomsBrokerVUService.update_vu(db, broker_key, vu_data)
|
|
if not updated_vu:
|
|
raise HTTPException(status_code=404, detail="Customs Broker VU not found")
|
|
return updated_vu
|
|
|
|
@router.put("/customs-broker-personnel/{broker_key}/{line}", response_model=dto.CustomsBrokerPersonnelDTO)
|
|
def update_customs_broker_personnel(broker_key: str, line: int, personnel_data: dto.CustomsBrokerPersonnelDTO, db: Session = Depends(get_db)):
|
|
updated_personnel = services.CustomsBrokerPersonnelService.update_personnel(db, broker_key, line, personnel_data)
|
|
if not updated_personnel:
|
|
raise HTTPException(status_code=404, detail="Customs Broker Personnel not found")
|
|
return updated_personnel |