Module: JSONAPI::Serialization::RelationshipProcessing

Included in:
Deserializer
Defined in:
lib/json_api/serialization/concerns/relationship_processing.rb

Instance Method Summary collapse

Instance Method Details

#process_relationship(attrs, association_name, value) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/json_api/serialization/concerns/relationship_processing.rb', line 6

def process_relationship(attrs, association_name, value)
  value_hash = normalize_relationship_value(value)
  data = extract_data_from_value(value_hash)
  param_name = association_param_name(association_name)

  ensure_relationship_writable!(association_name)

  return handle_null_relationship(attrs, param_name, association_name) if data.nil?
  return handle_empty_array_relationship(attrs, param_name, association_name) if empty_array?(data)

  validate_relationship_data_format!(data, association_name)
  process_relationship_data(attrs, association_name, param_name, data)
end