refactor: Simplify company routes by removing redundant CRUD router and improving code readability

This commit is contained in:
2025-12-08 14:34:12 -06:00
parent 6acbd48e9e
commit 9b9d6470be

View File

@@ -9,29 +9,15 @@ from sqlalchemy.orm import Session
from core.database import get_core_db
from core.security import get_current_user, validate_access_to_resource
from api.v1.common.tenant_crud_routes import TenantCRUDRoutes
from .....common.tenant_crud_routes import TenantCRUDRoutes
from .dto import CompanyCreateDTO, CompanyResponseDTO, CompanyUpdateDTO
from .models import Company
from .service import CompanyService
# Create CRUD router
crud_router = TenantCRUDRoutes(
service=CompanyService,
create_schema=CompanyCreateDTO,
update_schema=CompanyUpdateDTO,
response_schema=CompanyResponseDTO,
prefix="/company",
tags=["a76.general_catalogs.company"],
resource_name="Company",
enable_list=True,
enable_filters=True,
).router
router = crud_router
# Main router that includes base CRUD
router = APIRouter(prefix="/company")
# Custom endpoints
@router.get(
"/my-companies",
response_model=List[CompanyResponseDTO],
@@ -97,8 +83,7 @@ async def get_basic_info(
db, tenant_id, company_id_from_user, Company, company_id, "id"
)
company = CompanyService.get_by_id(
db, company_id, tenant_id, company_id_from_user)
company = CompanyService.get_by_id(db, company_id, tenant_id, company_id_from_user)
if not company:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -132,8 +117,7 @@ async def get_responsible_info(
db, tenant_id, company_id_from_user, Company, company_id, "id"
)
company = CompanyService.get_by_id(
db, company_id, tenant_id, company_id_from_user)
company = CompanyService.get_by_id(db, company_id, tenant_id, company_id_from_user)
if not company:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -169,8 +153,7 @@ async def get_program_info(
db, tenant_id, company_id_from_user, Company, company_id, "id"
)
company = CompanyService.get_by_id(
db, company_id, tenant_id, company_id_from_user)
company = CompanyService.get_by_id(db, company_id, tenant_id, company_id_from_user)
if not company:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -183,7 +166,7 @@ async def get_program_info(
"prosec": company.prosec,
"prosec_authorization": company.prosec_authorization,
}
# Base CRUD routes using TenantCRUDRoutes
base_router = TenantCRUDRoutes(
service=CompanyService,
@@ -196,4 +179,4 @@ base_router = TenantCRUDRoutes(
enable_list=True,
enable_filters=True,
).router
router.include_router(base_router)
router.include_router(base_router)