From dd838fdf80ece6ef020e46a70b870c793e485677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BF=E3=81=A6=E3=82=8B=E3=81=9E?= Date: Sat, 17 Jan 2026 09:15:54 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Wiki=20=E9=81=8E=E5=8E=BB=E7=89=88?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=81=A7=E6=9B=B4=E6=96=B0=E6=97=A5=E6=99=82?= =?UTF-8?q?=E3=81=8C=E7=95=B0=E3=81=AA=E3=82=8B=E5=95=8F=E9=A1=8C=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=EF=BC=88#111=EF=BC=89=20(#207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #111 Merge remote-tracking branch 'origin/main' into feature/111 Merge branch 'main' into feature/111 #111 Co-authored-by: miteruzo Reviewed-on: https://git.miteruzo.com/miteruzo/btrc-hub/pulls/207 --- .../app/controllers/wiki_pages_controller.rb | 38 +++++++------------ 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/backend/app/controllers/wiki_pages_controller.rb b/backend/app/controllers/wiki_pages_controller.rb index 1177812..135f8d5 100644 --- a/backend/app/controllers/wiki_pages_controller.rb +++ b/backend/app/controllers/wiki_pages_controller.rb @@ -154,30 +154,8 @@ class WikiPagesController < ApplicationController def render_wiki_page_or_404 page return head :not_found unless page - if params[:version].present? - rev = page.wiki_revisions.find_by(id: params[:version]) - return head :not_found unless rev - - if rev.redirect? - return ( - redirect_to wiki_page_by_title_path(title: rev.redirect_page.title), - status: :moved_permanently) - end - - body = rev.body - revision_id = rev.id - pred = page.pred_revision_id(revision_id) - succ = page.succ_revision_id(revision_id) - - 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(methods: [:title]) - .merge(body: nil, revision_id: nil, pred: nil, succ: nil) - end + rev = find_revision(page) + return head :not_found unless rev if rev.redirect? return ( @@ -189,8 +167,18 @@ class WikiPagesController < ApplicationController revision_id = rev.id pred = page.pred_revision_id(revision_id) succ = page.succ_revision_id(revision_id) + updated_at = rev.created_at + + render json: page.as_json(methods: [:title]) + .merge(body:, revision_id:, pred:, succ:, updated_at:) + end - render json: page.as_json(methods: [:title]).merge(body:, revision_id:, pred:, succ:) + def find_revision page + if params[:version].present? + page.wiki_revisions.find_by(id: params[:version]) + else + page.current_revision + end end def render_wiki_conflict err