Module: JSONAPI::Param::InstanceMethods
- Defined in:
- lib/jsonapi-params/param.rb
Instance Method Summary collapse
-
#attributes ⇒ Hash
Handles parameters to return sanitized attributes and their relationships.
- #id ⇒ Object
- #initialize(params) ⇒ Object
-
#relationships ⇒ Hash
Handles parameters to return relationships.
- #type ⇒ Object
Instance Method Details
#attributes ⇒ Hash
Handles parameters to return sanitized attributes and their relationships
75 76 77 78 79 80 |
# File 'lib/jsonapi-params/param.rb', line 75 def attributes attributes = @data['attributes'] || {} attributes = attributes.slice(*self.class.whitelist_attributes) attributes = attributes.merge(relationships) attributes end |
#id ⇒ Object
62 63 64 |
# File 'lib/jsonapi-params/param.rb', line 62 def id @data['id'] end |
#initialize(params) ⇒ Object
54 55 56 57 58 |
# File 'lib/jsonapi-params/param.rb', line 54 def initialize(params) raise InvalidParam, 'Data is required' if params.nil? || params['data'].nil? @data = params['data'] end |
#relationships ⇒ Hash
Handles parameters to return relationships
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/jsonapi-params/param.rb', line 86 def relationships relationships = @data['relationships'] || {} relationships = relationships.slice(*self.class.whitelist_relationships) relationships.inject({}) do |relationships, (relationship_key, relationship_object)| data = relationship_object['data'] if data.is_a?(Array) raise 'One-to-many relationship is not supported' elsif data.is_a?(Hash) params = params_klass(relationship_key).new(relationship_object) relationships["#{relationship_key}_id"] = params.id end relationships end end |
#type ⇒ Object
68 69 70 |
# File 'lib/jsonapi-params/param.rb', line 68 def type @data['type'] end |