rswag/test-app/app/controllers/blogs_controller.rb
Jay Danielian 4c2097e017 Fixes response_validator to handle 3.0 responses and validate against the schema.
JSON::Validator already handles anyOf oneOf schema definitions, so those can be passed in and validation errors are returned properly
2019-07-20 14:33:51 -04:00

56 lines
1.2 KiB
Ruby

require 'fileutils'
class BlogsController < ApplicationController
# POST /blogs
def create
@blog = Blog.create(params.require(:blog).permit(:title, :content))
respond_with @blog
end
# POST /blogs/flexible
def flexible_create
# contrived example to play around with new anyOf and oneOf
# request body definition for 3.0
blog_params = params.require(:blog).permit(:title, :content, :headline, :text)
@blog = Blog.create(blog_params)
respond_with @blog
end
# Put /blogs/1
def upload
@blog = Blog.find_by_id(params[:id])
return head :not_found if @blog.nil?
@blog.thumbnail = save_uploaded_file params[:file]
head @blog.save ? :ok : :unprocsessible_entity
end
# GET /blogs
def index
@blogs = Blog.all
respond_with @blogs
end
# GET /blogs/1
def show
@blog = Blog.find_by_id(params[:id])
fresh_when(@blog)
return unless stale?(@blog)
respond_with @blog, status: :not_found and return unless @blog
respond_with @blog
end
private
def save_uploaded_file(field)
return if field.nil?
file = File.join('public/uploads', field.original_filename)
FileUtils.cp field.tempfile.path, file
field.original_filename
end
end