module Cuba::Tools::Api::Helpers
Public Class Methods
setup(app)
click to toggle source
# File lib/cuba/tools/api.rb, line 32 def self.setup app require 'yaml' end
Public Instance Methods
add_attributes_for(params)
click to toggle source
# File lib/cuba/tools/api.rb, line 72 def add_attributes_for params params.dup.each do |key, value| if !key[/_attributes$/] && value.is_a?(Hash) params["#{key}_attributes"] = add_attributes_for value params.delete key end end params end
api_params(key, klass)
click to toggle source
# File lib/cuba/tools/api.rb, line 36 def api_params key, klass params = add_attributes_for req.params[key.to_s] @api_params ||= YAML.load_file "#{Api.config.path}/#{key}.yml" form = klass.restrict!(current_user).new if form.validates params, as: current_user lambda { captures << form; captures << params } else raise ValidationError.new(form.errors), 'Api Validation Failed' end end
api_signature()
click to toggle source
# File lib/cuba/tools/api.rb, line 50 def api_signature api_request = Signature::Request.new( req.request_method, req.path, req.params, req.env ) user = false api_request.authenticate do |key| user = user_class.where(api_key: key).first Signature::Token.new key, user.try(:api_secret) end if defined? Rails @request = req end sign_in user end
Private Instance Methods
user_class()
click to toggle source
# File lib/cuba/tools/api.rb, line 85 def user_class Cuba::Tools::Auth.config.user_class.constantize end