diff --git a/lnbits/extensions/scrub/crud.py b/lnbits/extensions/scrub/crud.py
index b6d1bf72..bacac4f0 100644
--- a/lnbits/extensions/scrub/crud.py
+++ b/lnbits/extensions/scrub/crud.py
@@ -1,30 +1,31 @@
from typing import List, Optional, Union
-from lnbits.db import SQLITE
+from lnbits.helpers import urlsafe_short_hash
+
from . import db
-from .models import ScrubLink
+from .models import CreateScrubLink, ScrubLink
-async def create_scrub_link(wallet_id: str, data: ScrubLink) -> ScrubLink:
- satsdice_id = urlsafe_short_hash()
+async def create_scrub_link(wallet_id: str, data: CreateScrubLink) -> ScrubLink:
+ scrub_id = urlsafe_short_hash()
await db.execute(
"""
INSERT INTO scrub.scrub_links (
id,
wallet,
description,
- payoraddress,
+ payoraddress
)
- VALUES (?, ?, ?)
+ VALUES (?, ?, ?, ?)
""",
(
- satsdice_id,
- wallet,
- description,
- payoraddress,
+ scrub_id,
+ data.wallet,
+ data.description,
+ data.payoraddress,
),
)
- link = await get_satsdice_pay(satsdice_id)
+ link = await get_scrub_link(scrub_id)
assert link, "Newly created link couldn't be retrieved"
return link
diff --git a/lnbits/extensions/scrub/models.py b/lnbits/extensions/scrub/models.py
index 41fa5f37..2168240d 100644
--- a/lnbits/extensions/scrub/models.py
+++ b/lnbits/extensions/scrub/models.py
@@ -1,11 +1,13 @@
import json
-from urllib.parse import urlparse, urlunparse, parse_qs, urlencode, ParseResult
-from starlette.requests import Request
-from fastapi.param_functions import Query
-from typing import Optional, Dict
-from lnbits.lnurl import encode as lnurl_encode # type: ignore
from sqlite3 import Row
+from typing import Dict, Optional
+from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse
+
+from fastapi.param_functions import Query
from pydantic import BaseModel
+from starlette.requests import Request
+
+from lnbits.lnurl import encode as lnurl_encode # type: ignore
class CreateScrubLink(BaseModel):
@@ -15,7 +17,7 @@ class CreateScrubLink(BaseModel):
class ScrubLink(BaseModel):
- id: int
+ id: str
wallet: str
description: str
payoraddress: str
@@ -27,4 +29,4 @@ class ScrubLink(BaseModel):
def lnurl(self, req: Request) -> str:
url = req.url_for("scrub.api_lnurl_response", link_id=self.id)
- return lnurl_encode(url)
\ No newline at end of file
+ return lnurl_encode(url)
diff --git a/lnbits/extensions/scrub/static/js/index.js b/lnbits/extensions/scrub/static/js/index.js
index ab41381c..2716237c 100644
--- a/lnbits/extensions/scrub/static/js/index.js
+++ b/lnbits/extensions/scrub/static/js/index.js
@@ -106,7 +106,8 @@ new Vue({
const wallet = _.findWhere(this.g.user.wallets, {
id: this.formDialog.data.wallet
})
- console.log(wallet)
+ let data = Object.freeze(this.formDialog.data)
+ console.log(wallet, data)
if (data.id) {
this.updateScrubLink(wallet, data)
@@ -162,6 +163,7 @@ new Vue({
LNbits.api
.request('POST', '/scrub/api/v1/links', wallet.adminkey, data)
.then(response => {
+ console.log('RES', response)
this.getScrubLinks()
this.formDialog.show = false
this.resetFormData()
@@ -207,9 +209,9 @@ new Vue({
if (this.g.user.wallets.length) {
var getScrubLinks = this.getScrubLinks
getScrubLinks()
- this.checker = setInterval(() => {
- getScrubLinks()
- }, 20000)
+ // this.checker = setInterval(() => {
+ // getScrubLinks()
+ // }, 20000)
}
LNbits.api
.request('GET', '/scrub/api/v1/currencies')
diff --git a/lnbits/extensions/scrub/templates/scrub/index.html b/lnbits/extensions/scrub/templates/scrub/index.html
index 95354da4..c526dd46 100644
--- a/lnbits/extensions/scrub/templates/scrub/index.html
+++ b/lnbits/extensions/scrub/templates/scrub/index.html
@@ -26,71 +26,18 @@
>
{% raw %}
-
-
- Wallet
- Description
- LNURLPay/Address
-
+
+ Wallet
+ Description
+ LNURLPay/Address
-
-
-
-
- {{ props.row.description }}
-
-
- {{ props.row.min }}
-
- {{ props.row.min }} - {{ props.row.max }}
-
- {{ props.row.currency || 'sat' }}
-
-
- Webhook to {{ props.row.webhook_url}}
-
-
-
- On success, show message '{{ props.row.success_text }}'
- and URL '{{ props.row.success_url }}'
-
-
-
-
- {{ props.row.comment_chars }}-char comment allowed
-
-
-
+ {{ props.row.wallet }}
+ {{ props.row.description }}
+ {{ props.row.payoraddress }}
data.max:
- raise HTTPException(
- detail="Min is greater than max.", status_code=HTTPStatus.BAD_REQUEST
- )
-
- if data.currency == None and (
- round(data.min) != data.min or round(data.max) != data.max
- ):
- raise HTTPException(
- detail="Must use full satoshis.", status_code=HTTPStatus.BAD_REQUEST
- )
-
- if "success_url" in data and data.success_url[:8] != "https://":
- raise HTTPException(
- detail="Success URL must be secure https://...",
- status_code=HTTPStatus.BAD_REQUEST,
- )
-
if link_id:
- link = await get_pay_link(link_id)
+ link = await get_scrub_link(link_id)
if not link:
raise HTTPException(
@@ -113,16 +90,16 @@ async def api_link_create_or_update(
detail="Not your pay link.", status_code=HTTPStatus.FORBIDDEN
)
- link = await update_pay_link(**data.dict(), link_id=link_id)
+ link = await update_scrub_link(**data.dict(), link_id=link_id)
else:
- link = await create_pay_link(data, wallet_id=wallet.wallet.id)
-
- return {**link.dict(), "lnurl": link.lnurl}
+ link = await create_scrub_link(wallet_id=wallet.wallet.id, data=data)
+
+ return link
@scrub_ext.delete("/api/v1/links/{link_id}")
async def api_link_delete(link_id, wallet: WalletTypeInfo = Depends(get_key_type)):
- link = await get_pay_link(link_id)
+ link = await get_scrub_link(link_id)
if not link:
raise HTTPException(
@@ -134,7 +111,7 @@ async def api_link_delete(link_id, wallet: WalletTypeInfo = Depends(get_key_type
detail="Not your pay link.", status_code=HTTPStatus.FORBIDDEN
)
- await delete_pay_link(link_id)
+ await delete_scrub_link(link_id)
raise HTTPException(status_code=HTTPStatus.NO_CONTENT)