class JoyfulJsonapi::Parameters
Public Class Methods
new(original_params)
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 7 def initialize(original_params) @jsonapi_params = original_params.to_unsafe_h.with_indifferent_access @rails_params = {_jsonapi_document: @jsonapi_params}.with_indifferent_access end
Public Instance Methods
to_action_controller_params()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 12 def to_action_controller_params populate_root_key extract_attributes extract_relationships finalize end
Private Instance Methods
extract_attributes()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 25 def extract_attributes @jsonapi_params[:data][:attributes].each do |k,v| rails_attribute_hash[k.underscore] = v end end
extract_relationships()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 31 def extract_relationships relationship_params = @jsonapi_params[:data][:relationships].dup rails_relationship_hash = {} (relationship_params || {}).each do |name, jsonapi_relationship_object| rails_relationship_hash["#{name.underscore}_id"] = jsonapi_relationship_object[:data][:id] end rails_attribute_hash.merge!(rails_relationship_hash) end
finalize()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 48 def finalize ActionController::Parameters.new(@rails_params) end
populate_root_key()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 21 def populate_root_key rails_attribute_hash end
rails_attribute_hash()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 40 def rails_attribute_hash @rails_params[type_key] ||= {} end
type_key()
click to toggle source
# File lib/joyful_jsonapi/parameters.rb, line 44 def type_key @type_key ||= @jsonapi_params[:data][:type].singularize.underscore end