Compare commits

..

2 Commits

Author SHA1 Message Date
みてるぞ 257731168f #329 2026-04-27 12:40:06 +09:00
みてるぞ 0ff7fdf78a Wiki のバージョン管理 (#317) (#333)
#317

#317

#317

#317

#317

#317

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: #333
2026-04-26 22:17:25 +09:00
4 changed files with 25 additions and 4 deletions
@@ -336,8 +336,27 @@ class TagsController < ApplicationController
end end
def update_aliases! tag, alias_names def update_aliases! tag, alias_names
alias_names = alias_names.uniq
affected_tags = [tag]
current_aliases = tag.tag_name.aliases.to_a current_aliases = tag.tag_name.aliases.to_a
current_aliases.each do |alias_tag_name|
next if alias_names.include?(alias_tag_name.name)
affected_tags << alias_tag_name.canonical&.tag
end
alias_names.each do |alias_name|
alias_tag_name = TagName.find_undiscard_or_create_by!(name: alias_name)
affected_tags << alias_tag_name.canonical&.tag
end
affected_tags.compact.uniq.each do |affected_tag|
TagVersioning.ensure_snapshot!(affected_tag, created_by_user: current_user)
end
current_aliases.each do |alias_tag_name| current_aliases.each do |alias_tag_name|
next if alias_names.include?(alias_tag_name.name) next if alias_names.include?(alias_tag_name.name)
@@ -348,6 +367,10 @@ class TagsController < ApplicationController
alias_tag_name = TagName.find_undiscard_or_create_by!(name: alias_name) alias_tag_name = TagName.find_undiscard_or_create_by!(name: alias_name)
alias_tag_name.update!(canonical: tag.tag_name) alias_tag_name.update!(canonical: tag.tag_name)
end end
affected_tags.compact.uniq.each do |affected_tag|
record_tag_version!(affected_tag, event_type: :update, created_by_user: current_user)
end
end end
def update_parent_tags! tag, parent_names def update_parent_tags! tag, parent_names
-2
View File
@@ -964,8 +964,6 @@ RSpec.describe 'Tags API', type: :request do
end end
it '別名を他 tag から奪った場合、奪はれた側の tag version も作成する' do it '別名を他 tag から奪った場合、奪はれた側の tag version も作成する' do
pending '#329 で対応予定'
old_owner = Tag.create!( old_owner = Tag.create!(
tag_name: TagName.create!(name: 'put_alias_old_owner'), tag_name: TagName.create!(name: 'put_alias_old_owner'),
category: :general category: :general
@@ -4,7 +4,7 @@ RSpec.describe 'Wiki body search', type: :request do
let!(:user) { create_member_user! } let!(:user) { create_member_user! }
it 'searches wiki pages by body text' do it 'searches wiki pages by body text' do
pending 'Wiki 本文検索実装時に有効化する' pending '#336 で対応予定'
Wiki::Commit.create_content!( Wiki::Commit.create_content!(
tag_name: TagName.create!(name: 'wiki_body_search_hit'), tag_name: TagName.create!(name: 'wiki_body_search_hit'),
@@ -8,7 +8,7 @@ RSpec.describe 'Wiki restore', type: :request do
end end
it 'restores wiki page to previous version' do it 'restores wiki page to previous version' do
pending 'Wiki 版巻き戻し API 実装時に有効化する' pending '#337 で対応予定'
page = page =
Wiki::Commit.create_content!( Wiki::Commit.create_content!(