autobrr/internal/http/webhook.go
soup 0391629862
chore(license): update copyright year in headers (#1929)
* chore: update copyright year in license headers

* Revert "chore: update copyright year in license headers"

This reverts commit 3e58129c431b9a491089ce36b908f9bb6ba38ed3.

* chore: update copyright year in license headers

* fix: sort go imports

* fix: add missing license headers
2025-01-06 22:23:19 +01:00

74 lines
1.7 KiB
Go

// Copyright (c) 2021 - 2025, Ludvig Lundgren and the autobrr contributors.
// SPDX-License-Identifier: GPL-2.0-or-later
package http
import (
"context"
"net/http"
"strconv"
"github.com/go-chi/chi/v5"
)
type webhookHandler struct {
encoder encoder
listSvc listService
}
func newWebhookHandler(encoder encoder, listSvc listService) *webhookHandler {
return &webhookHandler{encoder: encoder, listSvc: listSvc}
}
func (h *webhookHandler) Routes(r chi.Router) {
r.Route("/lists", func(r chi.Router) {
r.Post("/trigger", h.refreshAll)
r.Post("/trigger/arr", h.refreshArr)
r.Post("/trigger/lists", h.refreshLists)
r.Get("/trigger", h.refreshAll)
r.Get("/trigger/arr", h.refreshArr)
r.Get("/trigger/lists", h.refreshLists)
r.Post("/trigger/{listID}", h.refreshByID)
})
}
func (h *webhookHandler) refreshAll(w http.ResponseWriter, r *http.Request) {
go h.listSvc.RefreshAll(context.Background())
h.encoder.NoContent(w)
}
func (h *webhookHandler) refreshByID(w http.ResponseWriter, r *http.Request) {
listID, err := strconv.Atoi(chi.URLParam(r, "listID"))
if err != nil {
h.encoder.Error(w, err)
return
}
if err := h.listSvc.RefreshList(context.Background(), int64(listID)); err != nil {
h.encoder.Error(w, err)
return
}
h.encoder.NoContent(w)
}
func (h *webhookHandler) refreshArr(w http.ResponseWriter, r *http.Request) {
if err := h.listSvc.RefreshArrLists(r.Context()); err != nil {
h.encoder.Error(w, err)
return
}
h.encoder.NoContent(w)
}
func (h *webhookHandler) refreshLists(w http.ResponseWriter, r *http.Request) {
if err := h.listSvc.RefreshOtherLists(r.Context()); err != nil {
h.encoder.Error(w, err)
return
}
h.encoder.NoContent(w)
}