feat(feeds): clear feed cache (#1071)

This commit is contained in:
ze0s 2023-09-01 21:39:39 +02:00 committed by GitHub
parent 3755881c40
commit b6de7144e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 84 additions and 1 deletions

View file

@ -19,6 +19,7 @@ type feedService interface {
Store(ctx context.Context, feed *domain.Feed) error
Update(ctx context.Context, feed *domain.Feed) error
Delete(ctx context.Context, id int) error
DeleteFeedCache(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)
@ -44,6 +45,7 @@ func (h feedHandler) Routes(r chi.Router) {
r.Route("/{feedID}", func(r chi.Router) {
r.Put("/", h.update)
r.Delete("/", h.delete)
r.Delete("/cache", h.deleteCache)
r.Patch("/enabled", h.toggleEnabled)
r.Get("/latest", h.latestRun)
})
@ -168,6 +170,26 @@ func (h feedHandler) delete(w http.ResponseWriter, r *http.Request) {
h.encoder.StatusResponse(w, http.StatusNoContent, nil)
}
func (h feedHandler) deleteCache(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.Error(w, err)
return
}
if err := h.service.DeleteFeedCache(ctx, id); err != nil {
h.encoder.Error(w, err)
return
}
h.encoder.StatusResponse(w, http.StatusNoContent, nil)
}
func (h feedHandler) latestRun(w http.ResponseWriter, r *http.Request) {
var (
ctx = r.Context()