Files
plantillas-proyectos/backend/api/v1/modules/a76/aduanal/routes.py

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