external_services 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDU3NjA4NTljMWEwODUxMDRiNzM4YjYzZGU1YzQ4NTRhZDkzOGMwOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTVhY2JhMjUzM2NhZjJiMDkyODM3MWRkZDZhN2UxM2ViMTc2YTZiNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTQxOTVkYzNiZDZhZGRiNmY1MzE1NmE4YTBlYTlhZGUxMzhjYTc5NTNlNDE4
|
10
|
+
Mjg3YzhlNTQyMjgxZjY2ZDU1ZTk5M2RlYTAyNWUyNDg4YzUxOTQ2Yjc3MTJk
|
11
|
+
Njc2ZTExYTJmMmE1ZThiMGVlZGFkYWRlM2JiZjlhNGY5NjlmY2U=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGEyNzQ2ZmEyMmU4NWMxZmZhY2M2ODVlMmJmZGJkZWQ4MDU3NGY3NDdiOGY1
|
14
|
+
YzNiNDE3OGE4YTE1MDRiNTIzZThkMjk3OGMzMTZmNDVkMmY5ZmMyN2IwYTdl
|
15
|
+
NzQyYTQ2ZjI0NzgwYTZkM2QwNTMwNmVjOGIxNmEyNTBiNzlhNDc=
|
data/config/locales/en.yml
CHANGED
@@ -102,8 +102,8 @@ module ExternalServices
|
|
102
102
|
public_send(:"build_#{service_assoc}") if public_send(service_assoc).blank?
|
103
103
|
end
|
104
104
|
|
105
|
-
before_update :
|
106
|
-
before_destroy :
|
105
|
+
before_update :halt_on_external_services_syncing
|
106
|
+
before_destroy :halt_on_external_services_syncing
|
107
107
|
end
|
108
108
|
|
109
109
|
after_save :"#{name}_on_create", if: :id_changed?
|
@@ -134,9 +134,9 @@ module ExternalServices
|
|
134
134
|
end
|
135
135
|
protected :"#{name}_on_revive"
|
136
136
|
|
137
|
-
protected def
|
138
|
-
|
139
|
-
errors.add :base, :
|
137
|
+
protected def halt_on_external_services_syncing
|
138
|
+
if external_services_syncing?
|
139
|
+
errors.add :base, :external_services_sync_in_process
|
140
140
|
if ::ActiveRecord::VERSION::MAJOR < 5
|
141
141
|
return false
|
142
142
|
else
|
@@ -153,6 +153,7 @@ module ExternalServices
|
|
153
153
|
def define_external_service_sync_methods(name, _options = {})
|
154
154
|
service_assoc = :"#{name}_service"
|
155
155
|
synced_method = :"#{name}_service_synced?"
|
156
|
+
syncing_method = :"#{name}_service_syncing?"
|
156
157
|
disabled_method = :"#{name}_api_disabled"
|
157
158
|
|
158
159
|
syncs_module = Module.new do
|
@@ -162,11 +163,22 @@ module ExternalServices
|
|
162
163
|
public_send(service_assoc).external_id?
|
163
164
|
end
|
164
165
|
|
166
|
+
define_method syncing_method do
|
167
|
+
action_class = "ExternalServices::ApiActions::#{name.to_s.camelize}".constantize
|
168
|
+
action_class.to_create(self).unprocessed.exists?
|
169
|
+
end
|
170
|
+
|
165
171
|
define_method :external_services_synced? do
|
166
172
|
result = (!defined?(super) || super())
|
167
173
|
result &&= public_send(synced_method) unless public_send(disabled_method)
|
168
174
|
result
|
169
175
|
end
|
176
|
+
|
177
|
+
define_method :external_services_syncing? do
|
178
|
+
result = (!defined?(super) || super())
|
179
|
+
result &&= public_send(syncing_method) unless public_send(disabled_method)
|
180
|
+
result
|
181
|
+
end
|
170
182
|
end
|
171
183
|
|
172
184
|
include syncs_module
|