Module: JSONAPI::Serialization::RelationshipsDeserialization
- Included in:
- Deserializer
- Defined in:
- lib/json_api/serialization/concerns/relationships_deserialization.rb
Instance Method Summary collapse
- #extract_id_from_identifier(identifier) ⇒ Object
- #extract_ids_from_data(data) ⇒ Object
- #extract_relationship_data(relationship) ⇒ Object
- #find_relationship(relationship_name) ⇒ Object
- #relationship_id(relationship_name) ⇒ Object
- #relationship_ids(relationship_name) ⇒ Object
- #relationships ⇒ Object
Instance Method Details
#extract_id_from_identifier(identifier) ⇒ Object
38 39 40 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 38 def extract_id_from_identifier(identifier) RelationshipHelpers.extract_id_from_identifier(identifier) end |
#extract_ids_from_data(data) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 30 def extract_ids_from_data(data) if data.is_a?(Array) data.map { |r| extract_id_from_identifier(r) } else [extract_id_from_identifier(data)] end end |
#extract_relationship_data(relationship) ⇒ Object
26 27 28 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 26 def extract_relationship_data(relationship) relationship[:data] end |
#find_relationship(relationship_name) ⇒ Object
22 23 24 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 22 def find_relationship(relationship_name) relationships[relationship_name.to_sym] end |
#relationship_id(relationship_name) ⇒ Object
42 43 44 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 42 def relationship_id(relationship_name) relationship_ids(relationship_name).first end |
#relationship_ids(relationship_name) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 12 def relationship_ids(relationship_name) relationship = find_relationship(relationship_name) return [] unless relationship data = extract_relationship_data(relationship) return [] unless data extract_ids_from_data(data) end |
#relationships ⇒ Object
6 7 8 9 10 |
# File 'lib/json_api/serialization/concerns/relationships_deserialization.rb', line 6 def relationships rels = @params.dig(:data, :relationships) || @params[:relationships] || {} rels = rels.to_h if rels.respond_to?(:to_h) rels.is_a?(Hash) ? rels : {} end |