Class: RapidApi::SerializerAdapters::AmsAdapter

Inherits:
Abstract
  • Object
show all
Defined in:
lib/rapid_api/serializer_adapters/ams_adapter.rb

Instance Attribute Summary

Attributes inherited from Abstract

#klass, #root_key

Instance Method Summary collapse

Methods inherited from Abstract

#initialize

Constructor Details

This class inherits a constructor from RapidApi::SerializerAdapters::Abstract

Instance Method Details

#deserialize_attributes(params, root_key) ⇒ Object

NOTE: Need to add support for :attributes serialization



23
24
25
# File 'lib/rapid_api/serializer_adapters/ams_adapter.rb', line 23

def deserialize_attributes(params, root_key)
  params.require(:data).require(:attributes)
end

#deserialize_id(params, root_key) ⇒ Object



27
28
29
# File 'lib/rapid_api/serializer_adapters/ams_adapter.rb', line 27

def deserialize_id(params, root_key)
  params.require(:id)
end

#serialize(member) ⇒ Object



5
6
7
8
# File 'lib/rapid_api/serializer_adapters/ams_adapter.rb', line 5

def serialize(member)
  serializer = klass.new(member)
  ActiveModelSerializers::Adapter.create(serializer).to_json
end

#serialize_collection(collection) ⇒ Object



10
11
12
13
14
15
# File 'lib/rapid_api/serializer_adapters/ams_adapter.rb', line 10

def serialize_collection(collection)
  collection_serializer = ActiveModel::Serializer::CollectionSerializer.new collection, {
                       each_serializer: klass
                     }
  ActiveModelSerializers::Adapter.create(collection_serializer).to_json
end

#serialize_errors(query_result) ⇒ Object



17
18
19
20
# File 'lib/rapid_api/serializer_adapters/ams_adapter.rb', line 17

def serialize_errors(query_result)
  serializer = ActiveModel::Serializer::ErrorSerializer.new(query_result)
  ActiveModelSerializers::Adapter.create(serializer).to_json
end