feat: add webhook_headers
and webhook_body
to withdraws
This commit is contained in:
parent
dd4a9f10cf
commit
8fae90bb9d
|
@ -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,
|
||||
),
|
||||
)
|
||||
|
|
|
@ -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;")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -209,7 +209,13 @@
|
|||
</q-select>
|
||||
</div>
|
||||
</div>
|
||||
<q-toggle
|
||||
label="Webhook"
|
||||
color="secodary"
|
||||
v-model="formDialog.data.has_webhook"
|
||||
></q-toggle>
|
||||
<q-input
|
||||
v-if="formDialog.data.has_webhook"
|
||||
filled
|
||||
dense
|
||||
v-model="formDialog.data.webhook_url"
|
||||
|
@ -217,6 +223,24 @@
|
|||
label="Webhook URL (optional)"
|
||||
hint="A URL to be called whenever this link gets used."
|
||||
></q-input>
|
||||
<q-input
|
||||
v-if="formDialog.data.has_webhook"
|
||||
filled
|
||||
dense
|
||||
v-model="formDialog.data.webhook_headers"
|
||||
type="text"
|
||||
label="Webhook Headers (optional)"
|
||||
hint="Custom data as JSON string, send headers along with the webhook."
|
||||
></q-input>
|
||||
<q-input
|
||||
v-if="formDialog.data.has_webhook"
|
||||
filled
|
||||
dense
|
||||
v-model="formDialog.data.webhook_body"
|
||||
type="text"
|
||||
label="Webhook custom data (optional)"
|
||||
hint="Custom data as JSON string, will get posted along with webhook 'body' field."
|
||||
></q-input>
|
||||
<q-list>
|
||||
<q-item tag="label" class="rounded-borders">
|
||||
<q-item-section avatar>
|
||||
|
|
Loading…
Reference in New Issue
Block a user