docbrown/app/workers/comments/bust_cache_worker.rb
rhymes 1bc0469b2d Add article's record key to Fastly Surrogate-Key to separate caches (#5543)
* Add article's record key to Fastly Surrogate-Key to separate caches

After #4744 we successfully setup an auto purging system based on Fastly's surrogate key based cache and purging API.
Unfortunately this worked only in the `:show` action as comments are their own tree-based resource.
The `:index` though, is related to a single article, so without the article's record key in the `Surrogate-Key` header the first time we hit the API the result would become the value stored in Fastly's API, for all articles.

* Fix commentable mock for job spec

* Add comment.commentable.purge to the worker as well

* Add more thorough tests for commentable
2020-01-17 08:45:47 -05:00

17 lines
362 B
Ruby

module Comments
class BustCacheWorker
include Sidekiq::Worker
sidekiq_options queue: :high_priority
def perform(comment_id)
comment = Comment.find_by(id: comment_id)
return unless comment&.commentable
comment.purge
comment.commentable.purge
EdgeCache::Commentable::Bust.call(comment.commentable)
end
end
end