From da0db563e2f65c057da32919b5d8003cbf226e05 Mon Sep 17 00:00:00 2001 From: Black Coffee Date: Mon, 24 Oct 2022 15:53:43 +0100 Subject: [PATCH] Settings now save and load and have an insert or delete for new / existing settings --- lnbits/extensions/satspay/crud.py | 13 ++++++++++++ lnbits/extensions/satspay/models.py | 6 +++++- .../satspay/templates/satspay/index.html | 20 ++++++++++++++++++- lnbits/extensions/satspay/views_api.py | 14 ++++++++++++- 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/lnbits/extensions/satspay/crud.py b/lnbits/extensions/satspay/crud.py index a891e3a6f..a21c73f41 100644 --- a/lnbits/extensions/satspay/crud.py +++ b/lnbits/extensions/satspay/crud.py @@ -96,6 +96,19 @@ async def get_charges(user: str) -> List[Charges]: ) return [Charges.from_row(row) for row in rows] +async def get_settings(user: str) -> SatsPaySettings: + row = await db.fetchone( + """SELECT * FROM satspay.settings WHERE "user" = ?""", + (user,), + ) + logger.debug('Settings data') + logger.debug(row) + + if row: + return SatsPaySettings.from_row(row) + else: + return None + async def delete_charge(charge_id: str) -> None: await db.execute("DELETE FROM satspay.charges WHERE id = ?", (charge_id,)) diff --git a/lnbits/extensions/satspay/models.py b/lnbits/extensions/satspay/models.py index f62b64fe1..d5cd48955 100644 --- a/lnbits/extensions/satspay/models.py +++ b/lnbits/extensions/satspay/models.py @@ -56,4 +56,8 @@ class Charges(BaseModel): return False class SatsPaySettings(BaseModel): - custom_css: str = Query(None) \ No newline at end of file + custom_css: str = Query(None) + + @classmethod + def from_row(cls, row: Row) -> "SatsPaySettings": + return cls(**dict(row)) \ No newline at end of file diff --git a/lnbits/extensions/satspay/templates/satspay/index.html b/lnbits/extensions/satspay/templates/satspay/index.html index f93379337..944306979 100644 --- a/lnbits/extensions/satspay/templates/satspay/index.html +++ b/lnbits/extensions/satspay/templates/satspay/index.html @@ -9,7 +9,7 @@ >New charge - SatsPay settings @@ -437,6 +437,7 @@ mixins: [windowMixin], data: function () { return { + settings: {}, filter: '', balance: null, walletLinks: [], @@ -614,6 +615,21 @@ LNbits.utils.notifyApiError(error) } }, + + getSettings: async function () { + try { + const {data} = await LNbits.api.request( + 'GET', + '/satspay/api/v1/settings', + this.g.user.wallets[0].inkey + ) + console.log('Settings data', data) + this.formDialogSettings.data = data + } catch (error) { + LNbits.utils.notifyApiError(error) + } + }, + sendFormDataSettings: function () { const wallet = this.g.user.wallets[0].inkey const data = this.formDialogSettings.data @@ -691,6 +707,7 @@ } }, saveSettings: async function (wallet, data) { + console.log('wallet', wallet) try { const resp = await LNbits.api.request( 'POST', @@ -759,6 +776,7 @@ } }, created: async function () { + await this.getSettings() await this.getCharges() await this.getWalletLinks() await this.getWalletConfig() diff --git a/lnbits/extensions/satspay/views_api.py b/lnbits/extensions/satspay/views_api.py index e8a339be9..986762f70 100644 --- a/lnbits/extensions/satspay/views_api.py +++ b/lnbits/extensions/satspay/views_api.py @@ -21,6 +21,7 @@ from .crud import ( get_charges, update_charge, save_settings, + get_settings, ) from .helpers import compact_charge from .models import CreateCharge, SatsPaySettings @@ -148,4 +149,15 @@ async def api_settings_save( logger.debug("wallet.wallet.user") logger.debug(wallet.wallet.user) await save_settings(user=wallet.wallet.user, data=data) - return True \ No newline at end of file + return True + + +@satspay_ext.get("/api/v1/settings") +async def api_settings_retrieve(wallet: WalletTypeInfo = Depends(get_key_type)): + logger.debug('HERHEHRHEHRHEHR') + try: + return await get_settings(wallet.wallet.user) + except HTTPException: + logger.error('Error loading satspay settings') + logger.error(HTTPException) + return ""