* admin controllers i18n * remove ja.yml * fix for spec * fix for spec 2 * Apply suggestions from code review Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> * Update config/locales/controllers/admin/fr.yml Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
58 lines
1.4 KiB
Ruby
58 lines
1.4 KiB
Ruby
module Admin
|
|
class ToolsController < Admin::ApplicationController
|
|
layout "admin"
|
|
|
|
def index; end
|
|
|
|
def bust_cache
|
|
flash[:success] =
|
|
if params[:dead_link]
|
|
handle_dead_path
|
|
I18n.t("admin.tools_controller.link_busted", link: params[:dead_link])
|
|
elsif params[:bust_user]
|
|
handle_user_cache
|
|
I18n.t("admin.tools_controller.user_busted", user: params[:bust_user])
|
|
elsif params[:bust_article]
|
|
handle_article_cache
|
|
I18n.t("admin.tools_controller.article_busted", article: params[:bust_article])
|
|
end
|
|
redirect_to admin_tools_path
|
|
rescue StandardError => e
|
|
flash[:danger] = e.message
|
|
redirect_to admin_tools_path
|
|
end
|
|
|
|
private
|
|
|
|
def handle_dead_path
|
|
bust_link(params[:dead_link])
|
|
end
|
|
|
|
def handle_user_cache
|
|
user = User.find(params[:bust_user].to_i)
|
|
user.touch(:profile_updated_at, :last_followed_at, :last_comment_at)
|
|
bust_link(user.path)
|
|
end
|
|
|
|
def handle_article_cache
|
|
article = Article.find(params[:bust_article].to_i)
|
|
article.touch(:last_commented_at)
|
|
EdgeCache::BustArticle.call(article)
|
|
end
|
|
|
|
def bust_link(link)
|
|
if link.starts_with?(URL.url)
|
|
link.sub!(URL.url, "")
|
|
end
|
|
|
|
paths = [
|
|
link,
|
|
"#{link}/",
|
|
"#{link}?i=i",
|
|
"#{link}/?i=i",
|
|
]
|
|
|
|
EdgeCache::Bust.call(paths)
|
|
end
|
|
end
|
|
end
|