|
|
@@ -154,30 +154,8 @@ class WikiPagesController < ApplicationController |
|
|
def render_wiki_page_or_404 page |
|
|
def render_wiki_page_or_404 page |
|
|
return head :not_found unless 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? |
|
|
if rev.redirect? |
|
|
return ( |
|
|
return ( |
|
|
@@ -189,8 +167,18 @@ class WikiPagesController < ApplicationController |
|
|
revision_id = rev.id |
|
|
revision_id = rev.id |
|
|
pred = page.pred_revision_id(revision_id) |
|
|
pred = page.pred_revision_id(revision_id) |
|
|
succ = page.succ_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 |
|
|
end |
|
|
|
|
|
|
|
|
def render_wiki_conflict err |
|
|
def render_wiki_conflict err |
|
|
|