Class: ApiResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/disco_app/react/templates/app/models/api_response.rb

Constant Summary collapse

EMPTY_SERIALIZER =
'Empty'
ERROR_SERIALIZER =
'Error'
SERIALIZER_SUFFIX =
'Serializer'
SENSITIVE_REQUEST_PARAMS =
['timestamp', 'signature'].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(result, custom_serializer = nil) ⇒ ApiResponse

Returns a new instance of ApiResponse.



10
11
12
13
# File 'lib/generators/disco_app/react/templates/app/models/api_response.rb', line 10

def initialize(result, custom_serializer = nil)
  @result = result
  @custom_serializer = custom_serializer
end

Class Method Details

.serialize(result, options = {}) ⇒ Object



23
24
25
26
27
# File 'lib/generators/disco_app/react/templates/app/models/api_response.rb', line 23

def self.serialize(result, options = {})
  serializer = options.delete(:serializer)

  new(result, serializer).serialize(options)
end

Instance Method Details

#serialize(options = {}) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/generators/disco_app/react/templates/app/models/api_response.rb', line 15

def serialize(options = {})
  request = options.delete(:request)

  serializer.new(
    result, options.merge(collection_options(request))
  ).serializable_hash
end