Class: JSONApi::ParamsDeserializer

Inherits:
Object
  • Object
show all
Defined in:
lib/json_api/params_deserializer.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.deserialize(data, **options) ⇒ Object



3
4
5
# File 'lib/json_api/params_deserializer.rb', line 3

def self.deserialize(data, **options)
  self.new.deserialize(data, **options)
end

Instance Method Details

#deserialize(data, **options) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/json_api/params_deserializer.rb', line 7

def deserialize(data, **options)
  type = sanitize_type_name(data.fetch('type'))

  attributes    = sanitize_hash(data.fetch('attributes', {}))
  relationships = data.fetch('relationships', {})

  attributes['id'] = data['id'] unless data['id'].nil?

  deserialize_relationships(relationships, attributes)

  if options[:root] == false
    attributes
  else
    { type => attributes }
  end
end