module Grape::Resources
Constants
- VERSION
Public Class Methods
apply_attributes(instance, params)
click to toggle source
# File lib/grape/resources.rb, line 89 def apply_attributes(instance, params) instance.attributes.each do |attribute| attribute_name = attribute[0] instance.send("#{attribute_name}=",params[attribute_name.to_sym]) if params[attribute_name.to_sym] end end
create_endpoint_for(clazz, api_instance)
click to toggle source
# File lib/grape/resources.rb, line 62 def create_endpoint_for(clazz, api_instance) singular_name = singular_name_for clazz api_instance.post do result = clazz.new Grape::Resources.apply_attributes(result, params) error!( {error: "#{singular_name} is not valid", errors: result.errors.full_messages}, 405) unless result.valid? result.save end end
delete_endpoint_for(clazz, api_instance)
click to toggle source
# File lib/grape/resources.rb, line 52 def delete_endpoint_for(clazz, api_instance) singular_name = singular_name_for clazz api_instance.delete ":id" do result = Grape::Resources.find(clazz, params) error!( "#{singular_name} not found", 404) if result.nil? result.destroy end end
find(clazz, params)
click to toggle source
# File lib/grape/resources.rb, line 100 def find(clazz, params) result = clazz.find_by_id( params[:id]) end
get_endpoint_for(clazz, api_instance)
click to toggle source
# File lib/grape/resources.rb, line 43 def get_endpoint_for(clazz, api_instance) singular_name = singular_name_for clazz api_instance.get ":id" do result = Grape::Resources.find(clazz, params) error!( "#{singular_name} not found", 404) if result.nil? result end end
list(clazz, params)
click to toggle source
# File lib/grape/resources.rb, line 96 def list(clazz, params) result = clazz.all end
list_endpoint_for(clazz, api_instance)
click to toggle source
# File lib/grape/resources.rb, line 36 def list_endpoint_for(clazz, api_instance) api_instance.get do result = Grape::Resources.list(clazz, params) result end end
load_singular_endpoints( clazz, api_instance, methods)
click to toggle source
# File lib/grape/resources.rb, line 25 def load_singular_endpoints( clazz, api_instance, methods) singular_name = singular_name_for clazz api_instance.resource singular_name.to_sym do Grape::Resources.get_endpoint_for( clazz, api_instance ) if methods.include?(:get) Grape::Resources.create_endpoint_for( clazz, api_instance ) if methods.include?(:post) Grape::Resources.update_endpoint_for( clazz, api_instance ) if methods.include?(:put) Grape::Resources.delete_endpoint_for( clazz, api_instance) if methods.include?(:delete) end end
singular_name_for( clazz )
click to toggle source
# File lib/grape/resources.rb, line 104 def singular_name_for( clazz ) clazz.name.underscore end
update_endpoint_for(clazz, api_instance)
click to toggle source
# File lib/grape/resources.rb, line 74 def update_endpoint_for(clazz, api_instance) singular_name = singular_name_for clazz api_instance.put ":id" do result = clazz.find_by_id(params[:id]) error!( {error: "#{singular_name} with id '#{params[:id]}' was not found"}, 404) unless result.present? Grape::Resources.apply_attributes(result, params) error!( {error: "#{singular_name} is not valid", errors: result.errors.full_messages}, 405) unless result.valid? result.save result end end