feat: タグ名を別管理に変更(#215) (#219)

Merge branch 'main' into feature/215

#215 ニコニコ同期テスト

#215 テスト・ケース追加

#215 テスト・ケース追加

#215 テスト・ケース追加

#215 テスト・ケース追加

Merge remote-tracking branch 'origin/main' into feature/215

Merge branch 'main' into feature/215

#215

#215

Merge remote-tracking branch 'origin/main' into feature/215

#215

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: #219
This commit was merged in pull request #219.
This commit is contained in:
2026-01-15 12:40:41 +09:00
parent 74141f2a84
commit fa2030f9a5
34 changed files with 1268 additions and 119 deletions
@@ -2,19 +2,25 @@ class WikiPagesController < ApplicationController
rescue_from Wiki::Commit::Conflict, with: :render_wiki_conflict
def index
render json: WikiPage.all
pages = WikiPage.all
render json: pages.as_json(methods: [:title])
end
def show
render_wiki_page_or_404 WikiPage.find(params[:id])
page = WikiPage.find_by(id: params[:id])
render_wiki_page_or_404 page
end
def show_by_title
render_wiki_page_or_404 WikiPage.find_by(title: params[:title])
title = params[:title].to_s.strip
page = WikiPage.joins(:tag_name)
.includes(:tag_name)
.find_by(tag_names: { name: title })
render_wiki_page_or_404 page
end
def exists
if WikiPage.exists?(params[:id])
if WikiPage.exists?(id: params[:id])
head :no_content
else
head :not_found
@@ -22,7 +28,8 @@ class WikiPagesController < ApplicationController
end
def exists_by_title
if WikiPage.exists?(title: params[:title])
title = params[:title].to_s.strip
if WikiPage.joins(:tag_name).exists?(tag_names: { name: title })
head :no_content
else
head :not_found
@@ -81,7 +88,7 @@ class WikiPagesController < ApplicationController
message = params[:message].presence
Wiki::Commit.content!(page:, body:, created_user: current_user, message:)
render json: page, status: :created
render json: page.as_json(methods: [:title]), status: :created
else
render json: { errors: page.errors.full_messages },
status: :unprocessable_entity
@@ -115,14 +122,14 @@ class WikiPagesController < ApplicationController
end
def search
title = params[:title]&.strip
title = params[:title].to_s.strip
q = WikiPage.all
q = WikiPage.joins(:tag_name).includes(:tag_name)
if title.present?
q = q.where('title LIKE ?', "%#{ WikiPage.sanitize_sql_like(title) }%")
q = q.where('tag_names.name LIKE ?', "%#{ WikiPage.sanitize_sql_like(title) }%")
end
render json: q.limit(20)
render json: q.limit(20).as_json(methods: [:title])
end
def changes
@@ -162,12 +169,14 @@ class WikiPagesController < ApplicationController
pred = page.pred_revision_id(revision_id)
succ = page.succ_revision_id(revision_id)
return render json: page.as_json.merge(body:, revision_id:, pred:, succ:)
return render json: page.as_json(methods: [:title])
.merge(body:, revision_id:, pred:, succ:)
end
rev = page.current_revision
unless rev
return render json: page.as_json.merge(body: nil, revision_id: nil, pred: nil, succ: nil)
return render json: page.as_json(methods: [:title])
.merge(body: nil, revision_id: nil, pred: nil, succ: nil)
end
if rev.redirect?
@@ -181,7 +190,7 @@ class WikiPagesController < ApplicationController
pred = page.pred_revision_id(revision_id)
succ = page.succ_revision_id(revision_id)
render json: page.as_json.merge(body:, revision_id:, pred:, succ:)
render json: page.as_json(methods: [:title]).merge(body:, revision_id:, pred:, succ:)
end
def render_wiki_conflict err