このコミットが含まれているのは:
2026-10-04 23:06:14 +09:00
コミット d63e0b95fa
13個のファイルの変更、165行の追加、115行の削除
+1 -1
ファイルの表示
@@ -46,7 +46,7 @@ class TagDescriptionsController < ApplicationController
return render_unprocessable_entity('本文は必須です.', field: :body) if body.blank?
description = TagDescription.find_by(tag_id: params[:id], language_code: 'ja')
return head :not_found unless description
return create unless description
TagDescriptionOperation.update!(
tag: description.tag, body:, updated_by_user: current_user)
+3 -20
ファイルの表示
@@ -464,7 +464,6 @@ class TagsController < ApplicationController
old_name = tag.name(locale.language_code)
name_changed = name != old_name
wiki_page = tag.tag_name(locale.language_code)&.wiki_page if name_changed
if tag.deprecated? == deprecated
tag.update!(category:)
@@ -485,9 +484,7 @@ class TagsController < ApplicationController
tag,
event_type: :update,
created_by_user: current_user,
language_code: locale.language_code,
name_changed:,
wiki_page:)
language_code: locale.language_code)
end
render json: TagRepr.base(tag.reload, language_code: locale.language_code)
@@ -518,7 +515,6 @@ class TagsController < ApplicationController
old_name = tag.name(locale.language_code)
name_changed = name.present? && name != old_name
wiki_page = tag.tag_name(locale.language_code)&.wiki_page if name_changed
rename_tag_name!(locale, tag, name) if name_changed
tag.update!(category:) if category.present?
@@ -532,9 +528,7 @@ class TagsController < ApplicationController
tag,
event_type: :update,
created_by_user: current_user,
language_code: locale.language_code,
name_changed:,
wiki_page:)
language_code: locale.language_code)
end
render json: TagRepr.base(tag.reload, language_code: locale.language_code)
@@ -722,19 +716,8 @@ class TagsController < ApplicationController
language_code:))
end
def record_tag_version! tag, event_type:, created_by_user:, language_code: 'ja',
name_changed: false, wiki_page: nil
def record_tag_version! tag, event_type:, created_by_user:, language_code: 'ja'
TagVersionRecorder.record!(tag:, event_type:, created_by_user:, language_code:)
return unless name_changed
wiki_page ||= tag.tag_name('ja')&.wiki_page
return unless wiki_page&.wiki_versions&.exists?
WikiVersionRecorder.record!(
page: wiki_page,
event_type: :update,
created_by_user:)
end
def validate_tag_rename locale, tag, name
+16 -8
ファイルの表示
@@ -118,15 +118,23 @@ class WikiPagesController < ApplicationController
return render_unprocessable_entity('タイトルは必須です.', field: :title) if title.blank?
return render_unprocessable_entity('本文は必須です.', field: :body) if body.blank?
page = ApplicationRecord.transaction do
tag_name = TagName.find_or_create_by!(language_code: 'ja', name: title) do |name|
name.script_code = 'Jpan'
name.primary_flg = true
name.auto_generated = false
end
page = if title.include?(':')
ApplicationRecord.transaction do
tag_name = TagName.find_or_create_by!(language_code: 'ja', name: title) do |name|
name.script_code = 'Jpan'
name.primary_flg = true
name.auto_generated = false
end
Wiki::Commit.create_content!(
tag_name:, body:, created_by_user: current_user, message:)
Wiki::Commit.create_legacy_content!(
tag_name:, body:, created_by_user: current_user, message:)
end
else
tag_name = TagName.find_by(language_code: 'ja', name: title)
return render_unprocessable_entity field: :title unless tag_name&.tag
TagDescriptionOperation.create!(
tag: tag_name.tag, body:, created_by_user: current_user, message:)
end
render json: WikiPageRepr.base(page), status: :created
+2 -4
ファイルの表示
@@ -20,11 +20,9 @@ class TagDescriptionOperation
base_revision_id: nil)
ApplicationRecord.transaction do
tag.lock!
description = TagDescription.lock.find_by(
description = TagDescription.lock.find_by!(
tag_id: tag.id, language_code: LANGUAGE_CODE)
description&.lock!
tag_name = tag.tag_name(LANGUAGE_CODE)
page = WikiPage.lock.find_by!(tag_name:)
page = WikiPage.lock.find(description.id)
revision = Wiki::CompatibilityWriter.update!(
page:, body:, updated_by_user:, message:,
base_revision_id:)
+3 -3
ファイルの表示
@@ -42,10 +42,10 @@ module Wiki
end
def self.content! page:, body:, created_user:, message: nil, base_revision_id: nil
tag = page.tag_name.tag
if tag && page.tag_name.language_code == 'ja'
description = TagDescription.find_by(id: page.id)
if description
return TagDescriptionOperation.update!(
tag:, body:, updated_by_user: created_user,
tag: description.tag, body:, updated_by_user: created_user,
message:, base_revision_id:)
end