Class: ArtirixDataModels::BasicModelDAO
Defined Under Namespace
Classes: NoGatewayConfiguredError
Constant Summary
WithDAORegistry::DEFAULT_DAO_REGISTRY_LOADER
Instance Attribute Summary collapse
#dao_registry_loader
Instance Method Summary
collapse
-
#default_gateway_available? ⇒ Boolean
-
#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, path: nil, fake_response: nil, 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(*args) ⇒ Object
-
#get_full(model_pk, model_to_reload:, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
-
#get_some(model_pks, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
-
#initialize(dao_registry: nil, dao_registry_loader: nil, model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:, ignore_default_gateway: false) ⇒ BasicModelDAO
constructor
A new instance of BasicModelDAO.
-
#loaded_gateway ⇒ Object
-
#partial_mode_fields ⇒ Object
-
#perform_delete(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_delete)
-
#perform_get(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_get)
-
#perform_post(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_post)
-
#perform_put(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_put)
-
#preloaded_gateway ⇒ Object
(also: #gateway)
-
#raise_no_gateway ⇒ Object
-
#remove_force_fake ⇒ Object
#dao_registry, #dao_registry=, #default_dao_registry, loader_or_registry_or_default, #set_dao_registry, #set_dao_registry_and_loader, #set_dao_registry_loader, #set_default_dao_registry_loader
#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(dao_registry: nil, dao_registry_loader: nil, model_name:, model_class:, paths_factory:, gateway:, fake_mode_factory:, gateway_factory:, ignore_default_gateway: false) ⇒ BasicModelDAO
Returns a new instance of BasicModelDAO.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# 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
|
Instance Attribute Details
#fake_mode_factory ⇒ Object
Returns the value of attribute fake_mode_factory.
5
6
7
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 5
def fake_mode_factory
@fake_mode_factory
end
|
#gateway_factory ⇒ Object
Returns the value of attribute gateway_factory.
5
6
7
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 5
def gateway_factory
@gateway_factory
end
|
#model_class ⇒ Object
Returns the value of attribute model_class.
5
6
7
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 5
def model_class
@model_class
end
|
#model_name ⇒ Object
Returns the value of attribute model_name.
5
6
7
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 5
def model_name
@model_name
end
|
#paths_factory ⇒ Object
Returns the value of attribute paths_factory.
5
6
7
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 5
def paths_factory
@paths_factory
end
|
Instance Method Details
#default_gateway_available? ⇒ Boolean
28
29
30
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 28
def default_gateway_available?
!@ignore_default_gateway
end
|
#empty_collection(from, size) ⇒ Object
163
164
165
|
# 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) ⇒ Object
167
168
169
|
# 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? ⇒ Boolean
120
121
122
123
124
|
# 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) ⇒ Object
158
159
160
161
|
# 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) ⇒ Object
148
149
150
151
|
# 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) ⇒ Object
153
154
155
156
|
# 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) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
|
# 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, **)
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,
**
end
|
#force_fake_disabled ⇒ Object
130
131
132
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 130
def force_fake_disabled
@_forced_fake_enabled = false
end
|
#force_fake_enabled ⇒ Object
126
127
128
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 126
def force_fake_enabled
@_forced_fake_enabled = true
end
|
#forced_fake_disabled? ⇒ Boolean
143
144
145
146
|
# 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? ⇒ Boolean
138
139
140
141
|
# 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
|
#get_full(model_pk, model_to_reload:, path: nil, fake_response: nil, cache_adaptor: nil, response_adaptor: nil, **extra_options) ⇒ Object
42
43
44
45
46
47
48
49
50
51
|
# 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, **)
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, **
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) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
|
# 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, **)
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,
**
rescue ArtirixDataModels::DataGateway::NotFound
[]
end
|
#loaded_gateway ⇒ Object
32
33
34
35
36
|
# 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 ⇒ Object
94
95
96
97
98
99
100
|
# 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
|
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
# 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:
end
|
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# 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:
end
|
#perform_post(path, fake: nil, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
Also known as:
_post
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
# 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:
end
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
# 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:
end
|
#preloaded_gateway ⇒ Object
Also known as:
gateway
88
89
90
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 88
def preloaded_gateway
loaded_gateway.presence || gateway_factory.call
end
|
#raise_no_gateway ⇒ Object
102
103
104
105
106
107
108
109
110
111
|
# 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 ⇒ Object
134
135
136
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 134
def remove_force_fake
@_forced_fake_enabled = nil
end
|