mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
feat(feeds): clear feed cache (#1071)
This commit is contained in:
parent
3755881c40
commit
b6de7144e0
5 changed files with 84 additions and 1 deletions
|
@ -216,7 +216,7 @@ func (r *FeedCacheRepo) DeleteBucket(ctx context.Context, bucket string) error {
|
|||
}
|
||||
|
||||
if rows == 0 {
|
||||
return errors.Wrap(err, "error no rows affected")
|
||||
r.log.Warn().Msgf("no rows affected for delete of bucket: %s", bucket)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -33,6 +33,7 @@ type Service interface {
|
|||
Test(ctx context.Context, feed *domain.Feed) error
|
||||
ToggleEnabled(ctx context.Context, id int, enabled bool) error
|
||||
Delete(ctx context.Context, id int) error
|
||||
DeleteFeedCache(ctx context.Context, id int) error
|
||||
GetLastRunData(ctx context.Context, id int) (string, error)
|
||||
|
||||
Start() error
|
||||
|
@ -122,6 +123,21 @@ func (s *service) Delete(ctx context.Context, id int) error {
|
|||
return s.delete(ctx, id)
|
||||
}
|
||||
|
||||
func (s *service) DeleteFeedCache(ctx context.Context, id int) error {
|
||||
feed, err := s.repo.FindByID(ctx, id)
|
||||
if err != nil {
|
||||
s.log.Error().Err(err).Msgf("could not find feed by id: %d", id)
|
||||
return err
|
||||
}
|
||||
|
||||
if err := s.cacheRepo.DeleteBucket(ctx, feed.Name); err != nil {
|
||||
s.log.Error().Err(err).Msgf("could not clear feed cache: %d", id)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *service) ToggleEnabled(ctx context.Context, id int, enabled bool) error {
|
||||
return s.toggleEnabled(ctx, id, enabled)
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue