zendesk_apps_support 4.30.1 → 4.32.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fad713366a2381c50f93cf66ffb934e6d083bebf32059680ab2a6757241d525
4
- data.tar.gz: 2ef5c222825b5a2c5662450fd804898841369bcce87ba66de55d01d44893f98f
3
+ metadata.gz: 10d6271886136ebf1422ffac35331cf0a6f0ee416fc45c122126cfab170c6d1a
4
+ data.tar.gz: ee79d3867a3e6f959d6a692a6eb9bd39c8b15663cf89cb35887ef5aa92ad2106
5
5
  SHA512:
6
- metadata.gz: fdb6c1b4fec3c809864c49604f698e7df87140817063352c4d32e4b8c1934abfdfa2bd77a4d5e9081e06694ec7f357fe49c8b45d7d6c29a992ff92d16f45f8fd
7
- data.tar.gz: 2ec4415af7e2feea5f3057924726b23d213b9d306b6416d7037521a23c161099acb2ed9ef029d94eeac9f5f2393fa02fabaf680b14216a5bc4e1107446b7dd32
6
+ metadata.gz: 24b854a106b6d9d29bac321e7b76fe685db0b800fc1da73f95da40ad12c45f5d6a548c10418b048f89d45af1dfdc31ca6f40199088217453873dc2450d7cf3ee
7
+ data.tar.gz: 020f26d213b85c16ea3a9154320a7c11c176f17fe6c33e7eeb4c182eea1441e09e633169cb072c768e22d5ba133ca1f1d232d194f7fd336dbf38775e31366310
@@ -2,6 +2,7 @@
2
2
 
3
3
  module ZendeskAppsSupport
4
4
  class AppRequirement
5
+ WEBHOOKS_KEY = 'webhooks'
5
6
  CUSTOM_OBJECTS_KEY = 'custom_objects'
6
7
  CUSTOM_OBJECTS_TYPE_KEY = 'custom_object_types'
7
8
  CUSTOM_OBJECTS_RELATIONSHIP_TYPE_KEY = 'custom_object_relationship_types'
@@ -29,6 +29,8 @@ module ZendeskAppsSupport
29
29
  errors << invalid_channel_integrations(requirements)
30
30
  errors << invalid_custom_fields(requirements)
31
31
  errors << invalid_custom_objects(requirements)
32
+ errors << invalid_webhooks(requirements)
33
+ errors << invalid_target_types(requirements)
32
34
  errors << missing_required_fields(requirements)
33
35
  errors.flatten!
34
36
  errors.compact!
@@ -107,6 +109,28 @@ module ZendeskAppsSupport
107
109
  end
108
110
  end
109
111
 
112
+ def invalid_webhooks(requirements)
113
+ webhook_requirements = requirements[AppRequirement::WEBHOOKS_KEY]
114
+
115
+ return if webhook_requirements.nil?
116
+
117
+ webhook_requirements.map do |identifier, requirement|
118
+ validate_webhook_keys(identifier, requirement)
119
+ end.flatten
120
+ end
121
+
122
+ def validate_webhook_keys(identifier, requirement)
123
+ required_keys = %w[name status endpoint http_method request_format]
124
+
125
+ missing_keys = required_keys - requirement.keys
126
+
127
+ missing_keys.map do |key|
128
+ ValidationError.new(:missing_required_fields,
129
+ field: key,
130
+ identifier: identifier)
131
+ end
132
+ end
133
+
110
134
  def invalid_custom_objects(requirements)
111
135
  custom_objects = requirements[AppRequirement::CUSTOM_OBJECTS_KEY]
112
136
  return if custom_objects.nil?
@@ -148,6 +172,18 @@ module ZendeskAppsSupport
148
172
  identifier: identifier)
149
173
  end
150
174
  end
175
+
176
+ def invalid_target_types(requirements)
177
+ invalid_target_types = %w[http_target]
178
+
179
+ requirements['targets']&.map do |_identifier, requirement|
180
+ if invalid_target_types.include?(requirement['type'])
181
+ ValidationError.new(:invalid_requirements_types,
182
+ invalid_types: "targets -> #{requirement['type']}",
183
+ count: 1)
184
+ end
185
+ end
186
+ end
151
187
  end
152
188
  end
153
189
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.30.1
4
+ version: 4.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-02-01 00:00:00.000000000 Z
14
+ date: 2022-05-16 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n
@@ -347,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
347
  - !ruby/object:Gem::Version
348
348
  version: 1.3.6
349
349
  requirements: []
350
- rubygems_version: 3.0.1
350
+ rubygems_version: 3.0.3.1
351
351
  signing_key:
352
352
  specification_version: 4
353
353
  summary: Support to help you develop Zendesk Apps.