docbrown/app/services/edge_cache/bust/fastly.rb

29 lines
868 B
Ruby

module EdgeCache
class Bust
class Fastly
# [@forem/systems] Fastly-enabled Forems don't need "flexible" domains.
def self.call(path)
fastly_purge(path)
end
def self.fastly_purge(path)
headers = { "Fastly-Key" => ApplicationConfig["FASTLY_API_KEY"],
"User-Agent" => "#{Settings::Community.community_name} (#{URL.url})" }
urls(path).map do |url|
HTTParty.post("https://api.fastly.com/purge/#{url}", headers: headers)
end
end
private_class_method :fastly_purge
def self.urls(path)
[URL.url(path)] << if path.include?("?")
URL.url("#{path}&i=i")
else
URL.url("#{path}?i=i")
end
end
private_class_method :urls
end
end
end