From b307c4db792570e04e2d7abe78465f1eae33bd27 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Wed, 24 Jan 2024 22:02:25 +0100 Subject: [PATCH] Ngutech21-fix-get-quote-api (#397) * fix: v1 mint-quote api in router * fix get mint quote * test new endpoints --------- Co-authored-by: ngutech21 --- cashu/mint/router.py | 12 ++++++------ tests/test_mint_api.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/cashu/mint/router.py b/cashu/mint/router.py index 5cf303b6..6219b19a 100644 --- a/cashu/mint/router.py +++ b/cashu/mint/router.py @@ -190,7 +190,7 @@ async def mint_quote(payload: PostMintQuoteRequest) -> PostMintQuoteResponse: @router.get( - "/v1/mint/quote/{quote}", + "/v1/mint/quote/bolt11/{quote}", summary="Get mint quote", response_model=PostMintQuoteResponse, response_description="Get an existing mint quote to check its status.", @@ -199,7 +199,7 @@ async def get_mint_quote(quote: str) -> PostMintQuoteResponse: """ Get mint quote state. """ - logger.trace(f"> POST /v1/mint/quote/{quote}") + logger.trace(f"> GET /v1/mint/quote/bolt11/{quote}") mint_quote = await ledger.get_mint_quote(quote) resp = PostMintQuoteResponse( quote=mint_quote.quote, @@ -207,7 +207,7 @@ async def get_mint_quote(quote: str) -> PostMintQuoteResponse: paid=mint_quote.paid, expiry=mint_quote.expiry, ) - logger.trace(f"< POST /v1/mint/quote/{quote}") + logger.trace(f"< GET /v1/mint/quote/bolt11/{quote}") return resp @@ -253,7 +253,7 @@ async def get_melt_quote(payload: PostMeltQuoteRequest) -> PostMeltQuoteResponse @router.get( - "/v1/melt/quote/{quote}", + "/v1/melt/quote/bolt11/{quote}", summary="Get melt quote", response_model=PostMeltQuoteResponse, response_description="Get an existing melt quote to check its status.", @@ -262,7 +262,7 @@ async def melt_quote(quote: str) -> PostMeltQuoteResponse: """ Get melt quote state. """ - logger.trace(f"> POST /v1/melt/quote/{quote}") + logger.trace(f"> GET /v1/melt/quote/bolt11/{quote}") melt_quote = await ledger.get_melt_quote(quote) resp = PostMeltQuoteResponse( quote=melt_quote.quote, @@ -270,7 +270,7 @@ async def melt_quote(quote: str) -> PostMeltQuoteResponse: fee_reserve=melt_quote.fee_reserve, paid=melt_quote.paid, ) - logger.trace(f"< POST /v1/melt/quote/{quote}") + logger.trace(f"< GET /v1/melt/quote/bolt11/{quote}") return resp diff --git a/tests/test_mint_api.py b/tests/test_mint_api.py index 14de13b2..d46dd3e7 100644 --- a/tests/test_mint_api.py +++ b/tests/test_mint_api.py @@ -183,6 +183,14 @@ async def test_mint_quote(ledger: Ledger): invoice = bolt11.decode(result["request"]) assert invoice.amount_msat == 100 * 1000 + # get mint quote again from api + response = httpx.get( + f"{BASE_URL}/v1/mint/quote/bolt11/{result['quote']}", + ) + assert response.status_code == 200, f"{response.url} {response.status_code}" + result2 = response.json() + assert result2["quote"] == result["quote"] + @pytest.mark.asyncio @pytest.mark.skipif( @@ -236,6 +244,14 @@ async def test_melt_quote_internal(ledger: Ledger, wallet: Wallet): # TODO: internal invoice, fee should be 0 assert result["fee_reserve"] == 0 + # get melt quote again from api + response = httpx.get( + f"{BASE_URL}/v1/melt/quote/bolt11/{result['quote']}", + ) + assert response.status_code == 200, f"{response.url} {response.status_code}" + result2 = response.json() + assert result2["quote"] == result["quote"] + @pytest.mark.asyncio @pytest.mark.skipif(