class ArtirixDataModels::BasicModelDAO

Attributes

fake_mode_factory[R]
gateway_factory[R]
model_class[R]
model_name[R]
paths_factory[R]

Public Class Methods

new(dao_registry: nil, dao_registry_loader: nil, model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:, ignore_default_gateway: false) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 7
def initialize(dao_registry: nil,
               dao_registry_loader: nil,
               model_name:,
               model_class:,
               paths_factory:,
               gateway:,
               fake_mode_factory:,
               gateway_factory:,
               ignore_default_gateway: false)

  set_dao_registry_and_loader dao_registry_loader, dao_registry

  @model_name = model_name
  @model_class = model_class
  @paths_factory = paths_factory
  @loaded_gateway = gateway
  @gateway_factory = gateway_factory
  @fake_mode_factory = fake_mode_factory
  @ignore_default_gateway = ignore_default_gateway
end

Public Instance Methods

_delete(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
Alias for: perform_delete
_get(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)

old names

Alias for: perform_get
_post(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
Alias for: perform_post
_put(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
Alias for: perform_put
default_gateway_available?() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 28
def default_gateway_available?
  !@ignore_default_gateway
end
empty_collection(from, size) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 163
def empty_collection(from, size)
  empty_collection_for model_class, from, size
end
empty_collection_for(model_class, from, size) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 167
def empty_collection_for(model_class, from, size)
  ArtirixDataModels::EsCollection.empty model_class, from: from, size: size
end
fake?() click to toggle source

FAKE MODE #

# File lib/artirix_data_models/daos/basic_model_dao.rb, line 120
def fake?
  return true if forced_fake_enabled?
  return false if forced_fake_disabled?
  fake_mode_factory.enabled?
end
fake_get_full_response(model_pk, model_to_reload = nil) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 158
def fake_get_full_response(model_pk, model_to_reload = nil)
  return nil unless fake?
  -> { fake_mode_factory.get_full model_pk, model_to_reload }
end
fake_get_response(model_pk) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 148
def fake_get_response(model_pk)
  return nil unless fake?
  -> { fake_mode_factory.get model_pk }
end
fake_get_some_response(model_pks) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 153
def fake_get_some_response(model_pks)
  return nil unless fake?
  -> { fake_mode_factory.get_some model_pks }
end
find(model_pk, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 59
def find(model_pk, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options)
  path ||= paths_factory.get model_pk
  response_adaptor ||= response_adaptor_for_single
  fake_response ||= fake_get_response(model_pk)

  perform_get path,
              response_adaptor: response_adaptor,
              fake_response: fake_response,
              cache_adaptor: cache_adaptor,
              **extra_options
end
force_fake_disabled() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 130
def force_fake_disabled
  @_forced_fake_enabled = false
end
force_fake_enabled() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 126
def force_fake_enabled
  @_forced_fake_enabled = true
end
forced_fake_disabled?() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 143
def forced_fake_disabled?
  return false if @_forced_fake_enabled.nil?
  !@_forced_fake_enabled
end
forced_fake_enabled?() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 138
def forced_fake_enabled?
  return false if @_forced_fake_enabled.nil?
  !!@_forced_fake_enabled
end
gateway()
Alias for: preloaded_gateway
get(*args) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 53
def get(*args)
  find *args
rescue ArtirixDataModels::DataGateway::NotFound
  nil
end
get_full(model_pk, model_to_reload:, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) click to toggle source

ACTIONS #

# File lib/artirix_data_models/daos/basic_model_dao.rb, line 42
def get_full(model_pk, model_to_reload:, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options)
  path ||= paths_factory.get_full model_pk
  response_adaptor ||= response_adaptor_for_reload(model_to_reload)
  fake_response ||= fake_get_full_response(model_pk, model_to_reload)

  perform_get path, response_adaptor: response_adaptor, fake_response: fake_response, cache_adaptor: cache_adaptor, **extra_options

  model_to_reload.mark_full_mode
  model_to_reload
end
get_some(model_pks, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 71
def get_some(model_pks, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options)
  path ||= paths_factory.get_some(model_pks)
  response_adaptor ||= response_adaptor_for_some
  fake_response ||= fake_get_some_response(model_pks)
  perform_get path,
              response_adaptor: response_adaptor,
              fake_response: fake_response,
              cache_adaptor: cache_adaptor,
              **extra_options
rescue ArtirixDataModels::DataGateway::NotFound
  []
end
loaded_gateway() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 32
def loaded_gateway
  @loaded_gateway ||= if gateway_factory.blank? && default_gateway_available?
                        dao_registry.get(:gateway)
                      end
end
partial_mode_fields() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 94
def partial_mode_fields
  if fake?
    fake_mode_factory.partial_mode_fields
  else
    dao_registry.get(:model_fields).partial_mode_fields_for model_name
  end
end
perform_delete(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 248
def perform_delete(path,
                   fake: nil,
                   response_adaptor: nil,
                   body: nil,
                   fake_response: nil,
                   cache_adaptor: nil,
                   timeout: nil,
                   gateway: nil,
                   headers: nil)

  fake = fake.nil? ? fake? : fake
  g = gateway.presence || preloaded_gateway
  raise_no_gateway unless g.present?

  g.delete path,
           response_adaptor: response_adaptor,
           body: body,
           timeout: timeout,
           fake: fake,
           fake_response: fake_response,
           cache_adaptor: cache_adaptor,
           headers: headers
end
Also aliased as: _delete
perform_get(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) click to toggle source

PERFORM CALLS #

# File lib/artirix_data_models/daos/basic_model_dao.rb, line 175
def perform_get(path,
                fake: nil,
                response_adaptor: nil,
                body: nil,
                fake_response: nil,
                cache_adaptor: nil,
                timeout: nil,
                gateway: nil,
                headers: nil)

  fake = fake.nil? ? fake? : fake
  g = gateway.presence || preloaded_gateway
  raise_no_gateway unless g.present?

  g.get path,
        response_adaptor: response_adaptor,
        body: body,
        timeout: timeout,
        fake: fake,
        fake_response: fake_response,
        cache_adaptor: cache_adaptor,
        headers: headers
end
Also aliased as: _get
perform_post(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 200
def perform_post(path,
                 fake: nil,
                 response_adaptor: nil,
                 body: nil,
                 fake_response: nil,
                 cache_adaptor: nil,
                 timeout: nil,
                 gateway: nil,
                 headers: nil)

  fake = fake.nil? ? fake? : fake
  g = gateway.presence || preloaded_gateway
  raise_no_gateway unless g.present?

  g.post path,
         response_adaptor: response_adaptor,
         body: body,
         timeout: timeout,
         fake: fake,
         fake_response: fake_response,
         cache_adaptor: cache_adaptor,
         headers: headers
end
Also aliased as: _post
perform_put(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 224
def perform_put(path,
                fake: nil,
                response_adaptor: nil,
                body: nil,
                fake_response: nil,
                cache_adaptor: nil,
                timeout: nil,
                gateway: nil,
                headers: nil)

  fake = fake.nil? ? fake? : fake
  g = gateway.presence || preloaded_gateway
  raise_no_gateway unless g.present?

  g.put path,
        response_adaptor: response_adaptor,
        body: body,
        timeout: timeout,
        fake: fake,
        fake_response: fake_response,
        cache_adaptor: cache_adaptor,
        headers: headers
end
Also aliased as: _put
preloaded_gateway() click to toggle source

GATEWAY #

# File lib/artirix_data_models/daos/basic_model_dao.rb, line 88
def preloaded_gateway
  loaded_gateway.presence || gateway_factory.call
end
Also aliased as: gateway
raise_no_gateway() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 102
def raise_no_gateway
  msg = 'no gateway passed to request, no gateway configured on creation'
  if gateway_factory.present?
    msg = "#{msg}, and no gateway returned by the factory"
  else
    msg = "#{msg}, and no gateway factory configured on creation"
  end

  raise NoGatewayConfiguredError, msg
end
remove_force_fake() click to toggle source
# File lib/artirix_data_models/daos/basic_model_dao.rb, line 134
def remove_force_fake
  @_forced_fake_enabled = nil
end