|
- class WikiPagesController < ApplicationController
- def show
- wiki_page = WikiPage.find(params[:id])
- render json: wiki_page.as_json
- end
-
- def show_by_title
- wiki_page = WikiPage.find_by(title: params[:title])
- body = wiki_page&.body
- return head :not_found unless body
-
- render plain: body
- end
-
- def create
- return head :unauthorized unless current_user
- return head :forbidden unless ['admin', 'member'].include?(current_user.role)
-
- wiki_page = WikiPage.new(title: params[:title], created_user: current_user, updated_user: current_user)
- if wiki_page.save
- wiki_page.set_body params[:body], user: current_user
- render json: wiki_page, status: :created
- else
- render json: { errors: wiki_page.errors.full_messages }, status: :unprocessable_entity
- end
- end
-
- def update
- return head :unauthorized unless current_user
-
- wiki_page = WikiPage.find(params[:id])
- return head :not_found unless wiki_pages
-
- wiki_page.updated_user = current_user
- wiki_page.set_body params[:body], user: current_user
- wiki_page.save!
- head :ok
- end
- end
|