Class: ManyfoldApi::V0::BaseDeserializer

Inherits:
Object
  • Object
show all
Defined in:
app/deserializers/manyfold_api/v0/base_deserializer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object:, user:, record: nil) ⇒ BaseDeserializer

Returns a new instance of BaseDeserializer.



4
5
6
7
8
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 4

def initialize(object:, user:, record: nil)
  @object = object
  @user = user
  @record = record
end

Class Method Details

.schema ⇒ Object

Raises:

  • (NotImplementedError)


22
23
24
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 22

def self.schema
  raise NotImplementedError
end

.schema_ref ⇒ Object



18
19
20
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 18

def self.schema_ref
  {"$ref" => "#/components/schemas/#{schema_ref_name}"}
end

.schema_ref_name ⇒ Object



14
15
16
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 14

def self.schema_ref_name
  name.underscore.split("/").last.gsub("_deserializer", "_request")
end

Instance Method Details

#dereference(id, type) ⇒ Object



26
27
28
29
30
31
32
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 26

def dereference(id, type)
  route_options = Rails.application.routes.recognize_path(id)
  if route_options[:controller] == type.name.underscore.pluralize
    type.find_param(route_options[:id])
  end
rescue ActionController::RoutingError, ActiveRecord::RecordNotFound
end

#deserialize ⇒ Object

Raises:

  • (NotImplementedError)


10
11
12
# File 'app/deserializers/manyfold_api/v0/base_deserializer.rb', line 10

def deserialize
  raise NotImplementedError
end