diff --git a/models.py b/models.py index 4ed1e30..899359f 100644 --- a/models.py +++ b/models.py @@ -50,6 +50,16 @@ class Filters(BaseModel): __root__: List[Filter] +class TestMessage(BaseModel): + sender_private_key: Optional[str] + reciever_public_key: str + message: str + +class TestMessageResponse(BaseModel): + private_key: str + public_key: str + event: Event + # class nostrKeys(BaseModel): # pubkey: str # privkey: str diff --git a/views_api.py b/views_api.py index c0be01e..3287351 100644 --- a/views_api.py +++ b/views_api.py @@ -11,7 +11,7 @@ from lnbits.helpers import urlsafe_short_hash from . import nostrclient_ext, scheduled_tasks from .crud import add_relay, delete_relay, get_relays -from .models import Relay, RelayList +from .models import Relay, RelayList, TestMessage, TestMessageResponse from .services import NostrRouter, nostr from .tasks import init_relays @@ -75,6 +75,26 @@ async def api_delete_relay(relay: Relay) -> None: await delete_relay(relay) +@nostrclient_ext.put( + "/api/v1/relay/test", status_code=HTTPStatus.OK, dependencies=[Depends(check_admin)] +) +async def api_test_endpoint(test_message: TestMessage) -> TestMessageResponse: + try: + print("### api_test_endpoint", test_message) + except (ValueError, AssertionError) as ex: + raise HTTPException( + status_code=HTTPStatus.BAD_REQUEST, + detail=str(ex), + ) + except Exception as ex: + logger.warning(ex) + raise HTTPException( + status_code=HTTPStatus.INTERNAL_SERVER_ERROR, + detail="Cannot generate test event", + ) + + + @nostrclient_ext.delete( "/api/v1", status_code=HTTPStatus.OK, dependencies=[Depends(check_admin)] )