This commit is contained in:
@@ -154,31 +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)
|
||||
updated_at = rev.created_at
|
||||
|
||||
return render json: page.as_json(methods: [:title])
|
||||
.merge(body:, revision_id:, pred:, succ:, updated_at:)
|
||||
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 (
|
||||
@@ -196,6 +173,14 @@ class WikiPagesController < ApplicationController
|
||||
.merge(body:, revision_id:, pred:, succ:, updated_at:)
|
||||
end
|
||||
|
||||
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
|
||||
render json: { error: 'conflict', message: err.message }, status: :conflict
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user