Browse Source

奪はれた別名の履歴追加 (#329) (#338)

#329

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: https://git.miteruzo.com/miteruzo/btrc-hub/pulls/338
main
みてるぞ 1 week ago
parent
commit
fcd3b87b2a
4 changed files with 25 additions and 4 deletions
  1. +23
    -0
      backend/app/controllers/tags_controller.rb
  2. +0
    -2
      backend/spec/requests/tags_spec.rb
  3. +1
    -1
      backend/spec/requests/wiki_body_search_pending_spec.rb
  4. +1
    -1
      backend/spec/requests/wiki_restore_pending_spec.rb

+ 23
- 0
backend/app/controllers/tags_controller.rb View File

@@ -336,8 +336,27 @@ class TagsController < ApplicationController
end

def update_aliases! tag, alias_names
alias_names = alias_names.uniq

affected_tags = [tag]

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|
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.update!(canonical: tag.tag_name)
end

affected_tags.compact.uniq.each do |affected_tag|
record_tag_version!(affected_tag, event_type: :update, created_by_user: current_user)
end
end

def update_parent_tags! tag, parent_names


+ 0
- 2
backend/spec/requests/tags_spec.rb View File

@@ -964,8 +964,6 @@ RSpec.describe 'Tags API', type: :request do
end

it '別名を他 tag から奪った場合、奪はれた側の tag version も作成する' do
pending '#329 で対応予定'

old_owner = Tag.create!(
tag_name: TagName.create!(name: 'put_alias_old_owner'),
category: :general


+ 1
- 1
backend/spec/requests/wiki_body_search_pending_spec.rb View File

@@ -4,7 +4,7 @@ RSpec.describe 'Wiki body search', type: :request do
let!(:user) { create_member_user! }

it 'searches wiki pages by body text' do
pending 'Wiki 本文検索実装時に有効化する'
pending '#336 で対応予定'

Wiki::Commit.create_content!(
tag_name: TagName.create!(name: 'wiki_body_search_hit'),


+ 1
- 1
backend/spec/requests/wiki_restore_pending_spec.rb View File

@@ -8,7 +8,7 @@ RSpec.describe 'Wiki restore', type: :request do
end

it 'restores wiki page to previous version' do
pending 'Wiki 版巻き戻し API 実装時に有効化する'
pending '#337 で対応予定'

page =
Wiki::Commit.create_content!(


Loading…
Cancel
Save