このコミットが含まれているのは:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする