diff --git a/helpers.py b/helpers.py index 5f2b065..169c65c 100644 --- a/helpers.py +++ b/helpers.py @@ -1,6 +1,7 @@ from urllib.parse import urlparse from bech32 import bech32_decode, convertbits +from starlette.responses import JSONResponse def normalize_public_key(pubkey: str) -> str: @@ -23,3 +24,14 @@ def normalize_public_key(pubkey: str) -> str: def extract_domain(url: str) -> str: return urlparse(url).netloc + + +def relay_info_response(relay_public_data: dict) -> JSONResponse: + return JSONResponse( + content=relay_public_data, + headers={ + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Headers": "*", + "Access-Control-Allow-Methods": "GET", + }, + ) \ No newline at end of file diff --git a/views.py b/views.py index 7d11b17..f170afb 100644 --- a/views.py +++ b/views.py @@ -3,13 +3,14 @@ from http import HTTPStatus from fastapi import Depends, Request from fastapi.exceptions import HTTPException from fastapi.templating import Jinja2Templates -from starlette.responses import HTMLResponse, JSONResponse +from starlette.responses import HTMLResponse from lnbits.core.models import User from lnbits.decorators import check_user_exists from . import nostrrelay_ext, nostrrelay_renderer from .crud import get_public_relay +from .helpers import relay_info_response templates = Jinja2Templates(directory="templates") @@ -32,14 +33,7 @@ async def nostrrelay(request: Request, relay_id: str): ) if request.headers.get("accept") == "application/nostr+json": - return JSONResponse( - content=relay_public_data, - headers={ - "Access-Control-Allow-Origin": "*", - "Access-Control-Allow-Headers": "*", - "Access-Control-Allow-Methods": "GET", - }, - ) + return relay_info_response(relay_public_data) return nostrrelay_renderer().TemplateResponse( "nostrrelay/public.html", {"request": request, "relay": relay_public_data}