This commit is contained in:
2026-04-26 21:24:50 +09:00
parent d2eb69d3b0
commit 90c1842224
9 changed files with 815 additions and 9 deletions
+19 -9
View File
@@ -238,21 +238,26 @@ class TagsController < ApplicationController
TagVersioning.ensure_snapshot!(tag, created_by_user: current_user)
old_name = tag.name
name_changed = name != old_name
wiki_page = tag.tag_name.wiki_page if name_changed
tag.update!(category:)
tag.tag_name.update!(name:)
alias_names << old_name if name != old_name
alias_names << old_name if name_changed
alias_names.delete(name)
update_aliases!(tag, alias_names)
update_parent_tags!(tag, parent_names)
tag.reload
record_tag_version!(tag,
event_type: :update,
created_by_user: current_user,
name_changed: name.present? && name != old_name)
record_tag_version!(
tag,
event_type: :update,
created_by_user: current_user,
name_changed:,
wiki_page:)
end
render json: TagRepr.base(tag.reload)
@@ -277,6 +282,7 @@ class TagsController < ApplicationController
old_name = tag.name
name_changed = name.present? && name != old_name
wiki_page = tag.tag_name.wiki_page if name_changed
tag.tag_name.update!(name:) if name.present?
tag.update!(category:) if category.present?
@@ -287,7 +293,8 @@ class TagsController < ApplicationController
tag,
event_type: :update,
created_by_user: current_user,
name_changed:)
name_changed:,
wiki_page:)
end
render json: TagRepr.base(tag.reload)
@@ -309,7 +316,7 @@ class TagsController < ApplicationController
material: material.as_json&.merge(file:, content_type:))
end
def record_tag_version! tag, event_type:, created_by_user:, name_changed: false
def record_tag_version! tag, event_type:, created_by_user:, name_changed: false, wiki_page: nil
if tag.nico?
NicoTagVersionRecorder.record!(tag:, event_type:, created_by_user:)
return
@@ -319,10 +326,13 @@ class TagsController < ApplicationController
return unless name_changed
wiki_page = tag.tag_name.wiki_page
wiki_page ||= tag.tag_name.wiki_page
return unless wiki_page&.wiki_versions&.exists?
WikiVersionRecorder.record!(page: wiki_page, event_type: :update, created_by_user:)
WikiVersionRecorder.record!(
page: wiki_page,
event_type: :update,
created_by_user:)
end
def update_aliases! tag, alias_names