51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
from typing import List
|
|
|
|
from fastapi import APIRouter, HTTPException, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.infrastructure.database.dependencies import get_db
|
|
from app.core.entities.federal_district import FederalDistrictEntity
|
|
from app.core.usecases.federal_district_service import FederalDistrictsService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/federal-districts", response_model=List[FederalDistrictEntity])
|
|
def read_federal_districts(db: Session = Depends(get_db)):
|
|
service = FederalDistrictsService(db)
|
|
return service.get_all_federal_districts()
|
|
|
|
|
|
@router.get("/federal-districts/{federal_district_id}", response_model=FederalDistrictEntity)
|
|
def read_federal_district(federal_district_id: int, db: Session = Depends(get_db)):
|
|
service = FederalDistrictsService(db)
|
|
federal_district = service.get_federal_district_by_id(federal_district_id)
|
|
if federal_district is None:
|
|
raise HTTPException(status_code=404, detail="Federal district not found")
|
|
return federal_district
|
|
|
|
|
|
@router.post("/federal-districts", response_model=FederalDistrictEntity)
|
|
def create_federal_district(federal_district: FederalDistrictEntity, db: Session = Depends(get_db)):
|
|
service = FederalDistrictsService(db)
|
|
return service.create_federal_district(federal_district)
|
|
|
|
|
|
@router.put("/federal-districts/{federal_district_id}", response_model=FederalDistrictEntity)
|
|
def update_federal_district(federal_district_id: int, federal_district: FederalDistrictEntity,
|
|
db: Session = Depends(get_db)):
|
|
service = FederalDistrictsService(db)
|
|
updated_federal_district = service.update_federal_district(federal_district_id, federal_district)
|
|
if updated_federal_district is None:
|
|
raise HTTPException(status_code=404, detail="Federal district not found")
|
|
return updated_federal_district
|
|
|
|
|
|
@router.delete("/federal-districts/{federal_district_id}", response_model=bool)
|
|
def delete_federal_district(federal_district_id: int, db: Session = Depends(get_db)):
|
|
service = FederalDistrictsService(db)
|
|
success = service.delete_federal_district(federal_district_id)
|
|
if not success:
|
|
raise HTTPException(status_code=404, detail="Federal district not found")
|
|
return success
|