bmc_hub/app/subscriptions/frontend/views.py

44 lines
1.5 KiB
Python
Raw 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)