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, 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(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, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_delete)
-
#perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_get)
-
#perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
(also: #_post)
-
#perform_put(path, 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
153
154
155
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 153
def empty_collection(from, size)
empty_collection_for model_class, from, size
end
|
#empty_collection_for(model_class, from, size) ⇒ Object
157
158
159
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 157
def empty_collection_for(model_class, from, size)
ArtirixDataModels::EsCollection.empty model_class, from: from, size: size
end
|
#fake? ⇒ Boolean
110
111
112
113
114
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 110
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
148
149
150
151
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 148
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
138
139
140
141
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 138
def fake_get_response(model_pk)
return nil unless fake?
-> { fake_mode_factory.get model_pk }
end
|
#fake_get_some_response(model_pks) ⇒ Object
143
144
145
146
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 143
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
58
59
60
61
62
63
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 58
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
120
121
122
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 120
def force_fake_disabled
@_forced_fake_enabled = false
end
|
#force_fake_enabled ⇒ Object
116
117
118
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 116
def force_fake_enabled
@_forced_fake_enabled = true
end
|
#forced_fake_disabled? ⇒ Boolean
133
134
135
136
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 133
def forced_fake_disabled?
return false if @_forced_fake_enabled.nil?
!@_forced_fake_enabled
end
|
#forced_fake_enabled? ⇒ Boolean
128
129
130
131
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 128
def forced_fake_enabled?
return false if @_forced_fake_enabled.nil?
!!@_forced_fake_enabled
end
|
#get(model_pk, cache_adaptor: nil, **extra_options) ⇒ Object
52
53
54
55
56
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 52
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
42
43
44
45
46
47
48
49
50
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 42
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
65
66
67
68
69
70
71
72
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 65
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
|
#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
84
85
86
87
88
89
90
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 84
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
|
208
209
210
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 208
def perform_delete(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: 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,
headers:
end
|
165
166
167
168
169
170
171
172
173
174
175
176
177
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 165
def perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: 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,
headers:
end
|
#perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil) ⇒ Object
Also known as:
_post
180
181
182
183
184
185
186
187
188
189
190
191
192
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 180
def perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: 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,
headers:
end
|
194
195
196
197
198
199
200
201
202
203
204
205
206
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 194
def perform_put(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: 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,
headers:
end
|
#preloaded_gateway ⇒ Object
Also known as:
gateway
78
79
80
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 78
def preloaded_gateway
loaded_gateway.presence || gateway_factory.call
end
|
#raise_no_gateway ⇒ Object
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 92
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
124
125
126
|
# File 'lib/artirix_data_models/daos/basic_model_dao.rb', line 124
def remove_force_fake
@_forced_fake_enabled = nil
end
|