Generic webhook notification
zdwolfe opened this issue ยท 6 comments
Is your feature request related to a problem? Please describe.
As the administrator of an application in the local travel space, I want camply
to send a webhook (HTTP/POST
) to a configuration-specified URL with configuration-specified headers and a JSON representation of the campsite so my application can programmatically handle the notification.
Describe the solution you'd like
When WEBHOOK_URL
, WEBHOOK_HEADERS
, and --notifications webhook
are specified, the notification should be POST'ed to the WEBHOOK_URL
with the WEBHOOK_HEADERS
. The request body should be JSON with machine-readable fields (example, dates should be epoch timestamps or other common time format).
Something like:
{
"campsite": {
"campsite_id": "1234",
"booking_date": 1694499820,
"booking_url": "http://blahblah",
"...": "etc"
}
}
and
WEBHOOK_URL="http://foobar" \
WEBHOOK_HEADERS=$(echo '{"Content-Type": "application/json", "x-api-key": "super-secret"}' | base64) \
camply campsites --rec-area 12345
Describe alternatives you've considered
The open Discord PR is close, as is Slack, but the fields are human friendly or formatted, not generically machine-readable.
Additional context
If this sounds reasonable to you, I am willing to contribute a PR.
Oh this is a great idea. I took a whack at this, let me know your thoughts @zdwolfe : https://github.com/juftin/camply/blob/5c747a1cacfe44ae04f8c6108d81853bcec173ce/docs/command_line_usage.md#send-a-webhook-notification
Pydantic made this super easy to dump the camply.containers.AvailableCampsite objects into JSON:
camply/camply/notifications/webhook.py
Lines 43 to 59 in 5c747a1
Thanks! I left minor feedback in #296 (review)
Love this idea!
๐ This issue has been resolved in version 0.30.0 ๐
The release is available on GitHub release
Your semantic-release bot ๐ฆ๐
Here's the relevant documenation: https://juftin.com/camply/command_line_usage/#send-a-webhook-notification