mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-20 18:44:20 +01:00
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:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user