Ngutech21-fix-get-quote-api (#397)

* fix: v1 mint-quote api in router

* fix get mint quote

* test new endpoints

---------

Co-authored-by: ngutech21 <ngutech21@pm.me>
This commit is contained in:
callebtc
2024-01-24 22:02:25 +01:00
committed by GitHub
parent 2645eb51bc
commit b307c4db79
2 changed files with 22 additions and 6 deletions

View File

@@ -190,7 +190,7 @@ async def mint_quote(payload: PostMintQuoteRequest) -> PostMintQuoteResponse:
@router.get( @router.get(
"/v1/mint/quote/{quote}", "/v1/mint/quote/bolt11/{quote}",
summary="Get mint quote", summary="Get mint quote",
response_model=PostMintQuoteResponse, response_model=PostMintQuoteResponse,
response_description="Get an existing mint quote to check its status.", 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. 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) mint_quote = await ledger.get_mint_quote(quote)
resp = PostMintQuoteResponse( resp = PostMintQuoteResponse(
quote=mint_quote.quote, quote=mint_quote.quote,
@@ -207,7 +207,7 @@ async def get_mint_quote(quote: str) -> PostMintQuoteResponse:
paid=mint_quote.paid, paid=mint_quote.paid,
expiry=mint_quote.expiry, expiry=mint_quote.expiry,
) )
logger.trace(f"< POST /v1/mint/quote/{quote}") logger.trace(f"< GET /v1/mint/quote/bolt11/{quote}")
return resp return resp
@@ -253,7 +253,7 @@ async def get_melt_quote(payload: PostMeltQuoteRequest) -> PostMeltQuoteResponse
@router.get( @router.get(
"/v1/melt/quote/{quote}", "/v1/melt/quote/bolt11/{quote}",
summary="Get melt quote", summary="Get melt quote",
response_model=PostMeltQuoteResponse, response_model=PostMeltQuoteResponse,
response_description="Get an existing melt quote to check its status.", 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. 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) melt_quote = await ledger.get_melt_quote(quote)
resp = PostMeltQuoteResponse( resp = PostMeltQuoteResponse(
quote=melt_quote.quote, quote=melt_quote.quote,
@@ -270,7 +270,7 @@ async def melt_quote(quote: str) -> PostMeltQuoteResponse:
fee_reserve=melt_quote.fee_reserve, fee_reserve=melt_quote.fee_reserve,
paid=melt_quote.paid, paid=melt_quote.paid,
) )
logger.trace(f"< POST /v1/melt/quote/{quote}") logger.trace(f"< GET /v1/melt/quote/bolt11/{quote}")
return resp return resp

View File

@@ -183,6 +183,14 @@ async def test_mint_quote(ledger: Ledger):
invoice = bolt11.decode(result["request"]) invoice = bolt11.decode(result["request"])
assert invoice.amount_msat == 100 * 1000 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.asyncio
@pytest.mark.skipif( @pytest.mark.skipif(
@@ -236,6 +244,14 @@ async def test_melt_quote_internal(ledger: Ledger, wallet: Wallet):
# TODO: internal invoice, fee should be 0 # TODO: internal invoice, fee should be 0
assert result["fee_reserve"] == 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.asyncio
@pytest.mark.skipif( @pytest.mark.skipif(