Class: ArtirixDataModels::BasicModelDAO
Defined Under Namespace
Classes: NoGatewayConfiguredError
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#empty_collection(from, size) ⇒ Object
-
#empty_collection_for(model_class, from, size) ⇒ Object
-
#fake? ⇒ Boolean
-
#fake_get_full_response(model_pk, model_to_reload = nil) ⇒ Object
-
#fake_get_response(model_pk) ⇒ Object
-
#fake_get_some_response(model_pks) ⇒ Object
-
#find(model_pk, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
-
#force_fake_disabled ⇒ Object
-
#force_fake_enabled ⇒ Object
-
#forced_fake_disabled? ⇒ Boolean
-
#forced_fake_enabled? ⇒ Boolean
-
#get(model_pk, cache_adaptor: nil, **extra_options) ⇒ Object
-
#get_full(model_pk, model_to_reload:, response_adaptor: nil, cache_adaptor: nil, **extra_options) ⇒ Object
-
#get_some(model_pks, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
-
#initialize(model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:) ⇒ BasicModelDAO
constructor
A new instance of BasicModelDAO.
-
#partial_mode_fields ⇒ Object
-
#perform_delete(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil) ⇒ Object
(also: #_delete)
-
#perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil) ⇒ Object
(also: #_get)
-
#perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil) ⇒ Object
(also: #_post)
-
#perform_put(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil) ⇒ Object
(also: #_put)
-
#preloaded_gateway ⇒ Object
(also: #gateway)
-
#raise_no_gateway ⇒ Object
-
#remove_force_fake ⇒ Object
#model_adaptor_factory, #response_adaptor_for_block, #response_adaptor_for_callable, #response_adaptor_for_collection, #response_adaptor_for_identity, #response_adaptor_for_reload, #response_adaptor_for_single, #response_adaptor_for_some
Constructor Details
#initialize(model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:) ⇒ BasicModelDAO
Returns a new instance of BasicModelDAO.
6
7
8
9
10
11
12
13
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 6
def initialize(model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:)
@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
end
|
Instance Attribute Details
#fake_mode_factory ⇒ Object
Returns the value of attribute fake_mode_factory.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def fake_mode_factory
@fake_mode_factory
end
|
#gateway_factory ⇒ Object
Returns the value of attribute gateway_factory.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def gateway_factory
@gateway_factory
end
|
#loaded_gateway ⇒ Object
Returns the value of attribute loaded_gateway.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def loaded_gateway
@loaded_gateway
end
|
#model_class ⇒ Object
Returns the value of attribute model_class.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def model_class
@model_class
end
|
#model_name ⇒ Object
Returns the value of attribute model_name.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def model_name
@model_name
end
|
#paths_factory ⇒ Object
Returns the value of attribute paths_factory.
4
5
6
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 4
def paths_factory
@paths_factory
end
|
Instance Method Details
#empty_collection(from, size) ⇒ Object
130
131
132
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 130
def empty_collection(from, size)
empty_collection_for model_class, from, size
end
|
#empty_collection_for(model_class, from, size) ⇒ Object
134
135
136
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 134
def empty_collection_for(model_class, from, size)
ArtirixDataModels::EsCollection.empty model_class, from: from, size: size
end
|
#fake? ⇒ Boolean
87
88
89
90
91
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 87
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) ⇒ Object
125
126
127
128
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 125
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) ⇒ Object
115
116
117
118
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 115
def fake_get_response(model_pk)
return nil unless fake?
-> { fake_mode_factory.get model_pk }
end
|
#fake_get_some_response(model_pks) ⇒ Object
120
121
122
123
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 120
def fake_get_some_response(model_pks)
return nil unless fake?
-> { fake_mode_factory.get_some model_pks }
end
|
#find(model_pk, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 35
def find(model_pk, cache_adaptor: nil, response_adaptor: nil, **)
path = paths_factory.get model_pk
response_adaptor ||= response_adaptor_for_single
perform_get(path, response_adaptor: response_adaptor, fake_response: fake_get_response(model_pk), cache_adaptor: cache_adaptor, **)
end
|
#force_fake_disabled ⇒ Object
97
98
99
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 97
def force_fake_disabled
@_forced_fake_enabled = false
end
|
#force_fake_enabled ⇒ Object
93
94
95
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 93
def force_fake_enabled
@_forced_fake_enabled = true
end
|
#forced_fake_disabled? ⇒ Boolean
110
111
112
113
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 110
def forced_fake_disabled?
return false if @_forced_fake_enabled.nil?
!@_forced_fake_enabled
end
|
#forced_fake_enabled? ⇒ Boolean
105
106
107
108
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 105
def forced_fake_enabled?
return false if @_forced_fake_enabled.nil?
!!@_forced_fake_enabled
end
|
#get(model_pk, cache_adaptor: nil, **extra_options) ⇒ Object
29
30
31
32
33
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 29
def get(model_pk, cache_adaptor: nil, **)
find(model_pk, cache_adaptor: cache_adaptor, **)
rescue ArtirixDataModels::DataGateway::NotFound
nil
end
|
#get_full(model_pk, model_to_reload:, response_adaptor: nil, cache_adaptor: nil, **extra_options) ⇒ Object
19
20
21
22
23
24
25
26
27
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 19
def get_full(model_pk, model_to_reload:, response_adaptor: nil, cache_adaptor: nil, **)
path = paths_factory.get_full model_pk
response_adaptor ||= response_adaptor_for_reload(model_to_reload)
perform_get path, response_adaptor: response_adaptor, fake_response: fake_get_full_response(model_pk, model_to_reload), cache_adaptor: cache_adaptor, **
model_to_reload.mark_full_mode
model_to_reload
end
|
#get_some(model_pks, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
42
43
44
45
46
47
48
49
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 42
def get_some(model_pks, cache_adaptor: nil, response_adaptor: nil, **)
path = paths_factory.get_some(model_pks)
response_adaptor ||= response_adaptor_for_some
perform_get(path, response_adaptor: response_adaptor, fake_response: fake_get_some_response(model_pks), cache_adaptor: cache_adaptor, **)
rescue ArtirixDataModels::DataGateway::NotFound
[]
end
|
#partial_mode_fields ⇒ Object
61
62
63
64
65
66
67
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 61
def partial_mode_fields
if fake?
fake_mode_factory.partial_mode_fields
else
ArtirixDataModels::DAORegistry.model_fields.partial_mode_fields_for model_name
end
end
|
182
183
184
185
186
187
188
189
190
191
192
193
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 182
def perform_delete(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
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
end
|
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 142
def perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
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
end
|
#perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil) ⇒ Object
Also known as:
_post
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 156
def perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
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
end
|
169
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 169
def perform_put(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
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
end
|
#preloaded_gateway ⇒ Object
Also known as:
gateway
55
56
57
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 55
def preloaded_gateway
loaded_gateway.presence || gateway_factory.call
end
|
#raise_no_gateway ⇒ Object
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 69
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 ⇒ Object
101
102
103
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 101
def remove_force_fake
@_forced_fake_enabled = nil
end
|