Skip to content

Commit eb0bb82

Browse files
authored
Merge pull request #2342 from deepikagandla7456/2317
[FEATURE] Implement Automated Accessibility Compliance Engine (WCAG 2.1 AA + Indian GIGW Guidelines)
2 parents bc84215 + b5cf1a1 commit eb0bb82

2 files changed

Lines changed: 545 additions & 23 deletions

File tree

‎api/main.py‎

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,15 @@
3232
)
3333
from database import init_db
3434

35+
# Import versioning
36+
from api.versioning import (
37+
get_version_registry,
38+
DeprecationMiddleware,
39+
VersionedRouter,
40+
)
41+
3542
# Import routes
36-
from api.routes import documents, cases, reports, analytics, deadlines, auth, health, case_search, speech, document_verification, argument_strength, deadline_engine, efiling, hybrid_search
43+
from api.routes import documents, cases, reports, analytics, deadlines, auth, health, webhooks
3744

3845
logger = structlog.get_logger(__name__)
3946

@@ -107,6 +114,12 @@ def create_app() -> FastAPI:
107114
middleware=middleware
108115
)
109116

117+
# Initialize API versioning
118+
version_registry = get_version_registry()
119+
120+
# Add deprecation middleware for API responses
121+
app.add_middleware(DeprecationMiddleware)
122+
110123
# Initialize validation config from settings
111124
ValidationConfig.from_settings(settings)
112125

@@ -128,31 +141,36 @@ def create_app() -> FastAPI:
128141
# Include Routers
129142
# ========================================================================
130143

144+
# Create versioned router
145+
versioned_router = VersionedRouter(prefix="/api", default_version="v1")
146+
147+
# Health check (no versioning)
131148
app.include_router(health.router)
132-
app.include_router(documents.router)
133-
app.include_router(cases.router)
134-
app.include_router(reports.router)
135-
app.include_router(analytics.router)
136-
app.include_router(deadlines.router)
137-
app.include_router(auth.router)
138-
app.include_router(case_search.router) # Case search and precedent matching
139-
app.include_router(speech.router)
140-
app.include_router(document_verification.router)
141-
app.include_router(argument_strength.router)
142-
app.include_router(deadline_engine.router)
143-
app.include_router(efiling.router)
144-
app.include_router(hybrid_search.router) # Cross-jurisdictional hybrid search (RRF + re-ranking)
149+
150+
# API v1 routes (prefixed with /api/v1)
151+
v1_router = APIRouter(prefix="/api/v1")
152+
v1_router.include_router(documents.router, prefix="/documents")
153+
v1_router.include_router(cases.router, prefix="/cases")
154+
v1_router.include_router(reports.router, prefix="/reports")
155+
v1_router.include_router(analytics.router, prefix="/analytics")
156+
v1_router.include_router(deadlines.router, prefix="/deadlines")
157+
v1_router.include_router(auth.router, prefix="/auth")
158+
v1_router.include_router(webhooks.router, prefix="/webhooks")
159+
app.include_router(v1_router)
160+
161+
# API v2 routes (with backward compatibility)
162+
v2_router = APIRouter(prefix="/api/v2")
163+
v2_router.include_router(documents.router, prefix="/documents")
164+
v2_router.include_router(cases.router, prefix="/cases")
165+
v2_router.include_router(reports.router, prefix="/reports")
166+
v2_router.include_router(analytics.router, prefix="/analytics")
167+
v2_router.include_router(deadlines.router, prefix="/deadlines")
168+
v2_router.include_router(auth.router, prefix="/auth")
169+
v2_router.include_router(webhooks.router, prefix="/webhooks")
170+
app.include_router(v2_router)
145171
# Model feedback & optimization
146172
from api.routes import models as models_router
147173
app.include_router(models_router.router)
148-
149-
# HA WebSocket endpoints (multiplexing, reconnection, Redis bridge)
150-
from api.websockets.router import register_ha_websocket_endpoints
151-
register_ha_websocket_endpoints(app)
152-
153-
# Legacy case-timeline WebSocket endpoint
154-
from api.websockets.case_timeline import register_case_timeline_endpoint
155-
register_case_timeline_endpoint(app)
156174

157175
# ========================================================================
158176
# Global Exception Handlers
@@ -343,4 +361,4 @@ def __getattr__(name):
343361
port=get_settings().API_PORT,
344362
workers=get_settings().API_WORKERS,
345363
reload=True
346-
)
364+
)

0 commit comments

Comments
 (0)