@@ -8,33 +8,23 @@ module Requirements
8
8
9
9
class << self
10
10
def call ( package )
11
- if package . manifest . requirements_only? && !package . has_requirements?
12
- return [ ValidationError . new ( :missing_requirements ) ]
13
- elsif !supports_requirements ( package ) && package . has_requirements?
14
- return [ ValidationError . new ( :requirements_not_supported ) ]
15
- elsif !package . has_requirements?
11
+ unless package . has_requirements?
12
+ return [ ValidationError . new ( :missing_requirements ) ] \
13
+ if package . manifest . requirements_only?
14
+
16
15
return [ ]
17
16
end
18
17
18
+ return [ ValidationError . new ( :requirements_not_supported ) ] \
19
+ unless supports_requirements ( package )
20
+
19
21
begin
20
22
requirements = package . requirements_json
21
23
rescue ZendeskAppsSupport ::Manifest ::OverrideError => e
22
24
return [ ValidationError . new ( :duplicate_requirements , duplicate_keys : e . key , count : 1 ) ]
23
25
end
24
26
25
- [ ] . tap do |errors |
26
- errors << invalid_requirements_types ( requirements )
27
- errors << excessive_requirements ( requirements )
28
- errors << excessive_custom_objects_requirements ( requirements )
29
- errors << invalid_channel_integrations ( requirements )
30
- errors << invalid_custom_fields ( requirements )
31
- errors << invalid_custom_objects ( requirements )
32
- errors << invalid_webhooks ( requirements )
33
- errors << invalid_target_types ( requirements )
34
- errors << missing_required_fields ( requirements )
35
- errors . flatten!
36
- errors . compact!
37
- end
27
+ erros ( requirements )
38
28
rescue JSON ::ParserError => e
39
29
return [ ValidationError . new ( :requirements_not_json , errors : e ) ]
40
30
end
@@ -184,6 +174,22 @@ def invalid_target_types(requirements)
184
174
end
185
175
end
186
176
end
177
+
178
+ def erros ( requirements )
179
+ [ ] . tap do |errors |
180
+ errors << invalid_requirements_types ( requirements )
181
+ errors << excessive_requirements ( requirements )
182
+ errors << excessive_custom_objects_requirements ( requirements )
183
+ errors << invalid_channel_integrations ( requirements )
184
+ errors << invalid_custom_fields ( requirements )
185
+ errors << invalid_custom_objects ( requirements )
186
+ errors << invalid_webhooks ( requirements )
187
+ errors << invalid_target_types ( requirements )
188
+ errors << missing_required_fields ( requirements )
189
+ errors . flatten!
190
+ errors . compact!
191
+ end
192
+ end
187
193
end
188
194
end
189
195
end
0 commit comments