This commit is contained in:
2026-04-26 20:17:05 +09:00
parent 6ac044278f
commit 5f0c1953ce
6 changed files with 319 additions and 99 deletions
@@ -91,7 +91,7 @@ class WikiPagesController < ApplicationController
return head :unprocessable_entity if name.blank? || body.blank?
tag_name = TagName.find_undiscard_or_create_by!(name:)
page = WikiPage.new(tag_name:, created_user: current_user, updated_user: current_user)
page = WikiPage.new(tag_name:, body:, created_user: current_user, updated_user: current_user)
if page.save
message = params[:message].presence
Wiki::Commit.content!(page:, body:, created_user: current_user, message:)
@@ -115,10 +115,16 @@ class WikiPagesController < ApplicationController
page = WikiPage.find(params[:id])
base_revision_id = page.current_revision.id
if params[:title].present? && params[:title].strip != page.title
return head :unprocessable_entity
old_title = page.title
tag = Tag.find_by(tag_name_id: page.tag_name_id)
if tag && title != old_title
TagVersioning.ensure_snapshot!(tag, created_by_user: current_user)
end
page.tag_name.update!(name: title) if title != old_title
message = params[:message].presence
Wiki::Commit.content!(page:,
body:,
@@ -126,6 +132,11 @@ class WikiPagesController < ApplicationController
message:,
base_revision_id:)
if tag && title != old_title
tag.reload
TagVersionRecorder.record!(tag:, event_type: :update, created_by_user: current_user)
end
head :ok
end