nostrmarket/static/components/merchant-details.js
2024-11-06 11:50:21 +02:00

102 lines
2.7 KiB
JavaScript

window.app.component('merchant-details', {
name: 'merchant-details',
template: '#merchant-details',
props: ['merchant-id', 'adminkey', 'inkey', 'showKeys'],
delimiters: ['${', '}'],
data: function () {
return {}
},
methods: {
toggleShowKeys: async function () {
this.$emit('toggle-show-keys')
},
republishMerchantData: async function () {
try {
await LNbits.api.request(
'PUT',
`/nostrmarket/api/v1/merchant/${this.merchantId}/nostr`,
this.adminkey
)
this.$q.notify({
type: 'positive',
message: 'Merchant data republished to Nostr',
timeout: 5000
})
} catch (error) {
console.warn(error)
LNbits.utils.notifyApiError(error)
}
},
requeryMerchantData: async function () {
try {
await LNbits.api.request(
'GET',
`/nostrmarket/api/v1/merchant/${this.merchantId}/nostr`,
this.adminkey
)
this.$q.notify({
type: 'positive',
message: 'Merchant data refreshed from Nostr',
timeout: 5000
})
} catch (error) {
console.warn(error)
LNbits.utils.notifyApiError(error)
}
},
deleteMerchantTables: function () {
LNbits.utils
.confirmDialog(
`
Stalls, products and orders will be deleted also!
Are you sure you want to delete this merchant?
`
)
.onOk(async () => {
try {
await LNbits.api.request(
'DELETE',
'/nostrmarket/api/v1/merchant/' + this.merchantId,
this.adminkey
)
this.$emit('merchant-deleted', this.merchantId)
this.$q.notify({
type: 'positive',
message: 'Merchant Deleted',
timeout: 5000
})
} catch (error) {
console.warn(error)
LNbits.utils.notifyApiError(error)
}
})
},
deleteMerchantFromNostr: function () {
LNbits.utils
.confirmDialog(
`
Do you want to remove the merchant from Nostr?
`
)
.onOk(async () => {
try {
await LNbits.api.request(
'DELETE',
`/nostrmarket/api/v1/merchant/${this.merchantId}/nostr`,
this.adminkey
)
this.$q.notify({
type: 'positive',
message: 'Merchant Deleted from Nostr',
timeout: 5000
})
} catch (error) {
console.warn(error)
LNbits.utils.notifyApiError(error)
}
})
}
},
created: async function () {}
})