mirror of
https://github.com/miniflux/v2.git
synced 2025-09-15 18:57:04 +00:00
Add generic webhook integration
This commit is contained in:
parent
32d33104a4
commit
48f6885f44
39 changed files with 527 additions and 324 deletions
|
@ -69,6 +69,9 @@ type IntegrationForm struct {
|
|||
ShaarliEnabled bool
|
||||
ShaarliURL string
|
||||
ShaarliAPISecret string
|
||||
WebhookEnabled bool
|
||||
WebhookURL string
|
||||
WebhookSecret string
|
||||
}
|
||||
|
||||
// Merge copy form values to the model.
|
||||
|
@ -129,6 +132,8 @@ func (i IntegrationForm) Merge(integration *model.Integration) {
|
|||
integration.ShaarliEnabled = i.ShaarliEnabled
|
||||
integration.ShaarliURL = i.ShaarliURL
|
||||
integration.ShaarliAPISecret = i.ShaarliAPISecret
|
||||
integration.WebhookEnabled = i.WebhookEnabled
|
||||
integration.WebhookURL = i.WebhookURL
|
||||
}
|
||||
|
||||
// NewIntegrationForm returns a new IntegrationForm.
|
||||
|
@ -192,5 +197,7 @@ func NewIntegrationForm(r *http.Request) *IntegrationForm {
|
|||
ShaarliEnabled: r.FormValue("shaarli_enabled") == "1",
|
||||
ShaarliURL: r.FormValue("shaarli_url"),
|
||||
ShaarliAPISecret: r.FormValue("shaarli_api_secret"),
|
||||
WebhookEnabled: r.FormValue("webhook_enabled") == "1",
|
||||
WebhookURL: r.FormValue("webhook_url"),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,6 +84,9 @@ func (h *handler) showIntegrationPage(w http.ResponseWriter, r *http.Request) {
|
|||
ShaarliEnabled: integration.ShaarliEnabled,
|
||||
ShaarliURL: integration.ShaarliURL,
|
||||
ShaarliAPISecret: integration.ShaarliAPISecret,
|
||||
WebhookEnabled: integration.WebhookEnabled,
|
||||
WebhookURL: integration.WebhookURL,
|
||||
WebhookSecret: integration.WebhookSecret,
|
||||
}
|
||||
|
||||
sess := session.New(h.store, request.SessionID(r))
|
||||
|
|
|
@ -67,6 +67,18 @@ func (h *handler) updateIntegration(w http.ResponseWriter, r *http.Request) {
|
|||
integration.GoogleReaderPassword = ""
|
||||
}
|
||||
|
||||
if integrationForm.WebhookEnabled {
|
||||
if integrationForm.WebhookURL == "" {
|
||||
integration.WebhookEnabled = false
|
||||
integration.WebhookSecret = ""
|
||||
} else if integration.WebhookSecret == "" {
|
||||
integration.WebhookSecret = crypto.GenerateRandomStringHex(32)
|
||||
}
|
||||
} else {
|
||||
integration.WebhookURL = ""
|
||||
integration.WebhookSecret = ""
|
||||
}
|
||||
|
||||
err = h.store.UpdateIntegration(integration)
|
||||
if err != nil {
|
||||
html.ServerError(w, r, err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue