bmc_hub/app/subscriptions/frontend/views.py

44 lines
1.5 KiB
Python
Raw Permalink Normal View History

"""
Subscriptions Frontend Views
"""
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.templating import Jinja2Templates
import logging
logger = logging.getLogger(__name__)
router = APIRouter()
templates = Jinja2Templates(directory="app")
@router.get("/subscriptions", response_class=HTMLResponse)
async def subscriptions_list(request: Request):
"""List all active subscriptions."""
return templates.TemplateResponse("subscriptions/frontend/list.html", {
"request": request
})
@router.get("/subscriptions/simply-imports", response_class=HTMLResponse)
async def subscriptions_simply_imports(request: Request):
"""Dedicated page for Simply subscription import parking/staging overview."""
return templates.TemplateResponse("subscriptions/frontend/simply_imports.html", {
"request": request
})
@router.get("/subscriptions/{subscription_id}")
async def subscription_detail_redirect(subscription_id: int):
"""Compatibility detail URL: subscriptions are edited on their associated case."""
from app.core.database import execute_query_single
subscription = execute_query_single(
"SELECT id, sag_id FROM sag_subscriptions WHERE id = %s",
(subscription_id,),
)
if not subscription:
return RedirectResponse(url="/subscriptions", status_code=303)
if subscription.get("sag_id"):
return RedirectResponse(url=f"/sag/{subscription['sag_id']}/v3", status_code=303)
return RedirectResponse(url="/subscriptions", status_code=303)