diff --git a/lnbits/extensions/withdraw/crud.py b/lnbits/extensions/withdraw/crud.py
index 9868b057..83404c62 100644
--- a/lnbits/extensions/withdraw/crud.py
+++ b/lnbits/extensions/withdraw/crud.py
@@ -27,9 +27,11 @@ async def create_withdraw_link(
open_time,
usescsv,
webhook_url,
+ webhook_headers,
+ webhook_body,
custom_url
)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
(
link_id,
@@ -45,6 +47,8 @@ async def create_withdraw_link(
int(datetime.now().timestamp()) + data.wait_time,
usescsv,
data.webhook_url,
+ data.webhook_headers,
+ data.webhook_body,
data.custom_url,
),
)
diff --git a/lnbits/extensions/withdraw/migrations.py b/lnbits/extensions/withdraw/migrations.py
index 0c6ed4fc..95805ae7 100644
--- a/lnbits/extensions/withdraw/migrations.py
+++ b/lnbits/extensions/withdraw/migrations.py
@@ -122,3 +122,13 @@ async def m005_add_custom_print_design(db):
Adds custom print design
"""
await db.execute("ALTER TABLE withdraw.withdraw_link ADD COLUMN custom_url TEXT;")
+
+
+async def m006_webhook_headers_and_body(db):
+ """
+ Add headers and body to webhooks
+ """
+ await db.execute(
+ "ALTER TABLE withdraw.withdraw_link ADD COLUMN webhook_headers TEXT;"
+ )
+ await db.execute("ALTER TABLE withdraw.withdraw_link ADD COLUMN webhook_body TEXT;")
diff --git a/lnbits/extensions/withdraw/models.py b/lnbits/extensions/withdraw/models.py
index 2672537f..51c6a1cf 100644
--- a/lnbits/extensions/withdraw/models.py
+++ b/lnbits/extensions/withdraw/models.py
@@ -16,6 +16,8 @@ class CreateWithdrawData(BaseModel):
wait_time: int = Query(..., ge=1)
is_unique: bool
webhook_url: str = Query(None)
+ webhook_headers: str = Query(None)
+ webhook_body: str = Query(None)
custom_url: str = Query(None)
@@ -35,6 +37,8 @@ class WithdrawLink(BaseModel):
usescsv: str = Query(None)
number: int = Query(0)
webhook_url: str = Query(None)
+ webhook_headers: str = Query(None)
+ webhook_body: str = Query(None)
custom_url: str = Query(None)
@property
diff --git a/lnbits/extensions/withdraw/static/js/index.js b/lnbits/extensions/withdraw/static/js/index.js
index a3eaa593..ced78439 100644
--- a/lnbits/extensions/withdraw/static/js/index.js
+++ b/lnbits/extensions/withdraw/static/js/index.js
@@ -63,7 +63,8 @@ new Vue({
secondMultiplierOptions: ['seconds', 'minutes', 'hours'],
data: {
is_unique: false,
- use_custom: false
+ use_custom: false,
+ has_webhook: false
}
},
simpleformDialog: {
@@ -188,23 +189,35 @@ new Vue({
},
updateWithdrawLink: function (wallet, data) {
var self = this
+ const body = _.pick(
+ data,
+ 'title',
+ 'min_withdrawable',
+ 'max_withdrawable',
+ 'uses',
+ 'wait_time',
+ 'is_unique',
+ 'webhook_url',
+ 'webhook_headers',
+ 'webhook_body',
+ 'custom_url'
+ )
+
+ if (data.has_webhook) {
+ body = {
+ ...body,
+ webhook_url: data.webhook_url,
+ webhook_headers: data.webhook_headers,
+ webhook_body: data.webhook_body
+ }
+ }
LNbits.api
.request(
'PUT',
'/withdraw/api/v1/links/' + data.id,
wallet.adminkey,
- _.pick(
- data,
- 'title',
- 'min_withdrawable',
- 'max_withdrawable',
- 'uses',
- 'wait_time',
- 'is_unique',
- 'webhook_url',
- 'custom_url'
- )
+ body
)
.then(function (response) {
self.withdrawLinks = _.reject(self.withdrawLinks, function (obj) {
diff --git a/lnbits/extensions/withdraw/templates/withdraw/index.html b/lnbits/extensions/withdraw/templates/withdraw/index.html
index 27684f6b..3ae244e6 100644
--- a/lnbits/extensions/withdraw/templates/withdraw/index.html
+++ b/lnbits/extensions/withdraw/templates/withdraw/index.html
@@ -209,7 +209,13 @@
+
+
+