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