mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 00:39:13 +00:00
feat(feeds): view latest RSS and Torznab feed (#609)
feat(feeds): view latest run
This commit is contained in:
parent
5972d421d8
commit
fd67a7b24e
11 changed files with 205 additions and 47 deletions
|
@ -18,6 +18,7 @@ type feedService interface {
|
|||
Delete(ctx context.Context, id int) error
|
||||
ToggleEnabled(ctx context.Context, id int, enabled bool) error
|
||||
Test(ctx context.Context, feed *domain.Feed) error
|
||||
GetLastRunData(ctx context.Context, id int) (string, error)
|
||||
}
|
||||
|
||||
type feedHandler struct {
|
||||
|
@ -34,6 +35,7 @@ func newFeedHandler(encoder encoder, service feedService) *feedHandler {
|
|||
|
||||
func (h feedHandler) Routes(r chi.Router) {
|
||||
r.Get("/", h.find)
|
||||
r.Get("/{feedID}/latest", h.latestRun)
|
||||
r.Post("/", h.store)
|
||||
r.Post("/test", h.test)
|
||||
r.Put("/{feedID}", h.update)
|
||||
|
@ -160,3 +162,31 @@ func (h feedHandler) delete(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
h.encoder.StatusResponse(ctx, w, nil, http.StatusNoContent)
|
||||
}
|
||||
|
||||
func (h feedHandler) latestRun(w http.ResponseWriter, r *http.Request) {
|
||||
var (
|
||||
ctx = r.Context()
|
||||
filterID = chi.URLParam(r, "feedID")
|
||||
)
|
||||
|
||||
id, err := strconv.Atoi(filterID)
|
||||
if err != nil {
|
||||
h.encoder.StatusInternalError(w)
|
||||
return
|
||||
}
|
||||
|
||||
feed, err := h.service.GetLastRunData(ctx, id)
|
||||
if err != nil {
|
||||
h.encoder.StatusInternalError(w)
|
||||
return
|
||||
}
|
||||
|
||||
if feed == "" {
|
||||
h.encoder.StatusNotFound(ctx, w)
|
||||
w.Write([]byte("No data found"))
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
w.Write([]byte(feed))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue