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