[FEAT] cleanup GET /wallet endpoint, add wallet api routes (#1932)

* [FEAT] cleanup GET /wallet endpoint, add wallet api route
this removes the functionalitiy to create accounts and wallets via
the GET /wallet endpoint in generic.py

it add endpoints inside the api.py for it and the frontend is modified to use the api endpoints

this also simplifies for the `feat/login` for the route.

* remove stale generic tests and add api tests

* bug wrong endpoint create account

* vlad nitpick

* added checkif deleted is 404

* reload after renaming wallet

* another iteration with vlad

* create new wallet if it none exist

* fix delete refresh

* formatting
This commit is contained in:
dni ⚡
2023-09-25 14:06:00 +01:00
committed by GitHub
parent eb73daffe9
commit 5b16f54857
11 changed files with 158 additions and 164 deletions
+28
View File
@@ -36,6 +36,7 @@ from lnbits.core.models import (
CreateInvoice,
CreateLnurl,
CreateLnurlAuth,
CreateWallet,
CreateWebPushSubscription,
DecodePayment,
Payment,
@@ -75,11 +76,14 @@ from lnbits.utils.exchange_rates import (
from ..crud import (
DateTrunc,
add_installed_extension,
create_account,
create_tinyurl,
create_wallet,
create_webpush_subscription,
delete_dbversion,
delete_installed_extension,
delete_tinyurl,
delete_wallet,
delete_webpush_subscription,
drop_extension_db,
get_dbversions,
@@ -148,6 +152,30 @@ async def api_update_wallet(
return await update_wallet(wallet.wallet.id, name, currency)
@api_router.delete("/api/v1/wallet")
async def api_delete_wallet(
wallet: WalletTypeInfo = Depends(require_admin_key),
) -> None:
await delete_wallet(
user_id=wallet.wallet.user,
wallet_id=wallet.wallet.id,
)
@api_router.post("/api/v1/wallet", response_model=Wallet)
async def api_create_wallet(
data: CreateWallet,
wallet: WalletTypeInfo = Depends(require_admin_key),
) -> Wallet:
return await create_wallet(user_id=wallet.wallet.user, wallet_name=data.name)
@api_router.post("/api/v1/account", response_model=Wallet)
async def api_create_account(data: CreateWallet) -> Wallet:
account = await create_account()
return await create_wallet(user_id=account.id, wallet_name=data.name)
@api_router.get(
"/api/v1/payments",
name="Payment List",