Refactor: Modularize middleware and router registration in app/main.py

This commit is contained in:
Scott Idem
2026-01-15 16:36:19 -05:00
parent d321b94395
commit 2227432970
3 changed files with 95 additions and 364 deletions

View File

@@ -15,6 +15,12 @@ from . import config
import logging
import app.log
# Baby step: Import the new registry module
from app.routers.registry import setup_routers
# Import middleware with alias to avoid shadowing 'app' FastAPI instance
from app.middleware import add_process_time_header as process_time_middleware
# Import the routers here first:
from app.routers import ae_obj, aether_cfg, api_crud, api_crud_v2, api_crud_v3, api, importing, sql, account, activity_log, address, archive, archive_content, contact, data_store, event, event_abstract, event_badge, event_badge_importing, event_badge_template, event_device, event_exhibit, event_exhibit_tracking, event_file, event_importing, event_location, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, fundraising, grant, hosted_file, log_client_viewing, lookup, membership_cfg, membership_group, membership_person_group, membership_person, membership_person_profile, membership_type, membership_person_type, order, order_v3, order_line, order_cart, organization, page, person, person_user, post, post_comment, product, qr, site, site_domain, user, util_email, websockets_redis, e_confex, e_cvent, e_impexium, e_stripe
# from app.routers import agent_bridge
@@ -93,375 +99,20 @@ log.debug(config.settings)
app.mount('/static', StaticFiles(directory='static'), name='static')
# Register all application routes
setup_routers(app)
# Legacy registration block being removed...
# Set up each route once the router has been imported
app.include_router(
ae_obj.router,
prefix='/ae_obj',
tags=['AE Object'],
)
# app.include_router(
# ae_obj.router,
# prefix='/ae_obj',
# tags=['AE Object'],
# )
app.include_router(
aether_cfg.router,
tags=['Aether Config'],
)
app.include_router(
api_crud.router,
prefix='/crud',
tags=['CRUD v1.2 (Legacy)'],
#dependencies=[Depends(get_token_header)],
#dependencies=[Depends(get_account_header)],
#responses={404: {'description': 'Not found'}},
)
app.include_router(
api_crud_v2.router,
prefix='/v2/crud',
tags=['CRUD v2.5'],
#dependencies=[Depends(get_token_header)],
#dependencies=[Depends(get_account_header)],
#responses={404: {'description': 'Not found'}},
)
app.include_router(
api_crud_v3.router,
prefix='/v3/crud',
tags=['CRUD v3'],
)
# Deferred import to avoid circular dependencies and ensure environment is ready
# from app.routers import agent_bridge
# app.include_router(
# agent_bridge.router,
# prefix='/agent',
# tags=['Agent Bridge'],
# )
app.include_router(
api.router,
prefix='/api',
tags=['API'],
)
app.include_router(
flask_cfg.router,
prefix='/flask_cfg',
tags=['Flask CFG'],
)
app.include_router(
importing.router,
prefix='/importing',
tags=['Importing'],
)
app.include_router(
sql.router,
# prefix='/sql',
tags=['SQL'],
)
# # app.include_router(
# # flask_cfg.router,
# # prefix='/redis',
# # tags=['Redis'],
# # )
app.include_router(
account.router,
# prefix='/account',
tags=['Account'],
)
# app.include_router(
# activity_log.router,
# prefix='/activity_log',
# tags=['Activity Log'],
# )
# app.include_router(
# address.router,
# prefix='/address',
# tags=['Address'],
# )
# app.include_router(
# archive.router,
# # prefix='/archive',
# tags=['Archive'],
# )
# app.include_router(
# archive_content.router,
# prefix='/archive/content',
# tags=['Archive Content'],
# )
# app.include_router(
# contact.router,
# prefix='/contact',
# tags=['Contact'],
# )
# app.include_router(
# cont_edu_cert.router,
# tags=['Cont Edu Cert'],
# )
# app.include_router(
# cont_edu_cert_person.router,
# tags=['Cont Edu Cert Person'],
# )
app.include_router(
data_store.router,
# prefix='/data_store',
tags=['Data Store'],
)
app.include_router(
event.router,
# prefix='/event',
tags=['Event'],
)
# app.include_router(
# event_abstract.router,
# tags=['Event Abstract'],
# )
app.include_router(
event_badge.router,
tags=['Event Badge'],
)
app.include_router(
event_badge_importing.router,
tags=['Event Badge Importing'],
)
app.include_router(
event_badge_template.router,
# prefix='/event/badge/template',
tags=['Event Badge Template'],
)
app.include_router(
event_device.router,
# prefix='/event/device',
tags=['Event Device'],
)
app.include_router(
event_exhibit.router,
# prefix='/event/exhibit',
tags=['Event Exhibit'],
)
app.include_router(
event_exhibit_tracking.router,
# prefix='/event/exhibit/tracking',
tags=['Event Exhibit Tracking'],
)
app.include_router(
event_file.router,
# prefix='/event/file',
tags=['Event File'],
)
app.include_router(
event_importing.router,
# prefix='/event/importing',
tags=['Event Importing'],
)
app.include_router(
event_location.router,
# prefix='/event/location',
tags=['Event Location'],
)
# app.include_router(
# event_person.router,
# # prefix='/event/person',
# tags=['Event Person'],
# )
# app.include_router(
# event_person.router,
# prefix='/event/person/detail',
# tags=['Event Person Detail'],
# )
# app.include_router(
# event_person_tracking.router,
# tags=['Event Person Tracking'],
# )
app.include_router(
event_presentation.router,
# prefix='/event/presentation',
tags=['Event Presentation'],
)
app.include_router(
event_presenter.router,
prefix='/event/presenter',
tags=['Event Presenter'],
)
# app.include_router(
# event_registration.router,
# prefix='/event/registration',
# tags=['Event Registration'],
# )
app.include_router(
event_session.router,
# prefix='/event/session',
tags=['Event Session'],
)
# app.include_router(
# fundraising.router,
# tags=['Fundraising'],
# )
# app.include_router(
# grant.router,
# tags=['Grant'],
# )
app.include_router(
hosted_file.router,
prefix='/hosted_file',
tags=['Hosted File'],
)
# app.include_router(
# journal.router,
# prefix='/journal',
# tags=['Journal'],
# )
# app.include_router(
# journal_entry.router,
# # prefix='/journal/entry',
# tags=['Journal Entry'],
# )
# app.include_router(
# log_client_viewing.router,
# # prefix='/log/client_viewing',
# tags=['Log Client Viewing'],
# )
app.include_router(
lookup.router,
prefix='/lu',
tags=['Lookup'],
)
# app.include_router(
# membership_cfg.router,
# tags=['Membership Config'],
# )
# app.include_router(
# membership_group.router,
# tags=['Membership Group'],
# )
# app.include_router(
# membership_person_group.router,
# tags=['Membership Group Person'],
# )
# app.include_router(
# membership_person_profile.router,
# tags=['Membership Person Profile'],
# )
# app.include_router(
# membership_person.router,
# tags=['Membership Person'],
# )
# app.include_router(
# membership_type.router,
# tags=['Membership Type'],
# )
# app.include_router(
# membership_person_type.router,
# tags=['Membership Type Person'],
# )
# app.include_router(
# order.router,
# # prefix='/order',
# tags=['Order'],
# )
# app.include_router(
# order_v3.router,
# # prefix='/order',
# tags=['Order v3'],
# )
# app.include_router(
# order_line.router,
# # prefix='/order',
# tags=['Order Line'],
# )
# app.include_router(
# order_cart.router,
# prefix='/order/cart',
# tags=['Order Cart'],
# )
app.include_router(
organization.router,
prefix='/organization',
tags=['Organization'],
)
app.include_router(
page.router,
prefix='/page',
tags=['Page'],
)
app.include_router(
person.router,
tags=['Person'],
)
app.include_router(
person_user.router,
prefix='/person_user',
tags=['Person User'],
)
# app.include_router(
# post.router,
# # prefix='/post',
# tags=['Post'],
# )
# app.include_router(
# post_comment.router,
# prefix='/post/comment',
# tags=['Post Comment'],
# )
# app.include_router(
# product.router,
# # prefix='/product',
# tags=['Product'],
# )
app.include_router(
qr.router,
tags=['QR'],
)
app.include_router(
site.router,
# prefix='/site',
tags=['Site'],
)
app.include_router(
site_domain.router,
# prefix='/site/domain',
tags=['Site Domain'],
)
app.include_router(
user.router,
tags=['User'],
)
app.include_router(
util_email.router,
tags=['Utility: Email'],
)
# app.include_router(
# websockets.router,
# # prefix='/websocket',
# tags=['Websockets'],
# # dependencies=[Depends(get_token_header)],
# # responses={404: {'description': 'Not found'}},
# )
app.include_router(
websockets_redis.router,
tags=['Websockets (Redis)'],
)
app.include_router(
e_confex.router,
prefix='/e/confex',
tags=['External Service: Confex'],
)
app.include_router(
e_cvent.router,
prefix='/e/cvent',
tags=['External Service: Cvent'],
)
app.include_router(
e_impexium.router,
prefix='/e/impexium',
tags=['External Service: Impexium'],
)
app.include_router(
e_stripe.router,
prefix='/e/stripe',
tags=['External Service: Stripe'],
)
# app.include_router(
# c_idaa.router,
# prefix='/c/idaa',
# tags=['Client: IDAA'],
# )
# BEGIN: CORS