#45 完了
This commit is contained in:
@@ -1,25 +1,10 @@
|
||||
class WikiPagesController < ApplicationController
|
||||
def show
|
||||
wiki_page = WikiPage.find(params[:id])
|
||||
return head :not_found unless wiki_page
|
||||
|
||||
render json: wiki_page.as_json.merge(body: wiki_page.body)
|
||||
render_wiki_page_or_404 WikiPage.find(params[:id])
|
||||
end
|
||||
|
||||
def show_by_title
|
||||
title = params[:title]
|
||||
version = params[:version].presence
|
||||
|
||||
wiki_page = WikiPage.find_by(title:)
|
||||
return head :not_found unless wiki_page
|
||||
|
||||
wiki_page.sha = version
|
||||
|
||||
body = wiki_page.body
|
||||
sha = wiki_page.sha
|
||||
pred = wiki_page.pred
|
||||
succ = wiki_page.succ
|
||||
render json: wiki_page.as_json.merge(body:, sha:, pred:, succ:)
|
||||
render_wiki_page_or_404 WikiPage.find_by(title: params[:title])
|
||||
end
|
||||
|
||||
def diff
|
||||
@@ -117,4 +102,16 @@ class WikiPagesController < ApplicationController
|
||||
def wiki
|
||||
@wiki ||= Gollum::Wiki.new(WIKI_PATH)
|
||||
end
|
||||
|
||||
def render_wiki_page_or_404 wiki_page
|
||||
return head :not_found unless wiki_page
|
||||
|
||||
wiki_page.sha = params[:version].presence
|
||||
|
||||
body = wiki_page.body
|
||||
sha = wiki_page.sha
|
||||
pred = wiki_page.pred
|
||||
succ = wiki_page.succ
|
||||
render json: wiki_page.as_json.merge(body:, sha:, pred:, succ:)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,6 +20,7 @@ class WikiPage < ApplicationRecord
|
||||
idx = vers.find_index { |ver| ver.id == @sha }
|
||||
@pred = vers[idx + 1]&.id
|
||||
@succ = idx.positive? ? vers[idx - 1].id : nil
|
||||
@updated_at = vers[idx].authored_date
|
||||
@sha
|
||||
end
|
||||
|
||||
@@ -35,6 +36,10 @@ class WikiPage < ApplicationRecord
|
||||
@succ
|
||||
end
|
||||
|
||||
def updated_at
|
||||
@updated_at
|
||||
end
|
||||
|
||||
def body
|
||||
sha = nil unless @page
|
||||
@page&.raw_data&.force_encoding('UTF-8')
|
||||
|
||||
Reference in New Issue
Block a user