zendesk_apps_support 4.11.2 → 4.12.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: c9188517f4a57a804b4648f6d4efbe06ec79ed6510b2acc95366aea3419691cb
4
- data.tar.gz: e7c7235e7ba466161d93d0ceb5e3f43c1a4c28ee30eeecbddcd698d948ea900b
3
+ metadata.gz: b15fb4519e8970b7d758ba52fb983894d0453f763d10949c24881298997aaf80
4
+ data.tar.gz: 67bc5ddfa7ecbd027a953c89272bdce33d2265cf956a793212f946519bd2c956
5
5
  SHA512:
6
- metadata.gz: 5072150921ee6e3eb4f8d070079aedea3854a20a3ab7c55d6e7a2b6715422109e9b7fbf60f82fb2ae9aa6ad73e55f5adbfbdb62ee2ad09d24b095571311eb0ee
7
- data.tar.gz: 046b5813b2fc8e18d8b3514834eadd4d886036fde06750013ffa1b9c2aa1bbdb58edc01dbce9bbdb803f614e555f8c77b2e185e960cb9a6f8221d450d72493a7
6
+ metadata.gz: 1b3b5456c6c059dc6b196115746930319066327074eadbad36f38e92173acae0ef76650cdc827f99e67d9de1059f093e5a166ac147cf02958a06ee2639d80494
7
+ data.tar.gz: 8d789571704c1164d949cd4eb9395b42301f5919b9547f58f45226b235abf771f9b4576ec4094b8a2d5e4e394d7fe34a2b6cd4d7bb234f3ce711bc985f5c5cdb
@@ -54,6 +54,9 @@ en:
54
54
  other: 'requirements.json contains invalid types: %{invalid_types}'
55
55
  multiple_channel_integrations: Specifying multiple channel integrations
56
56
  in requirements.json is not supported.
57
+ invalid_cr_schema_keys:
58
+ one: 'Custom resources schema contains an invalid key: %{invalid_keys}'
59
+ other: 'Custom resources schema contains invalid keys: %{invalid_keys}'
57
60
  banner:
58
61
  invalid_format: Banner image must be a PNG file.
59
62
  invalid_size: Invalid banner image dimensions. Must be %{required_banner_width}x%{required_banner_height}px.
@@ -8,7 +8,7 @@ packages:
8
8
 
9
9
  parts:
10
10
  - translation:
11
- key: "txt.apps.admin.error.app_build.jshint.one"
11
+ key: "txt.apps.admin.error.app_build.jshint.one"
12
12
  title: "App builder job: JSHint error message"
13
13
  value: "JSHint error in %{file}: %{errors}"
14
14
  - translation:
@@ -119,6 +119,16 @@ parts:
119
119
  key: "txt.apps.admin.error.app_build.multiple_channel_integrations"
120
120
  title: "App builder job: requirements file contains multiple channel integrations, leave requirements.json as is (file name)"
121
121
  value: "Specifying multiple channel integrations in requirements.json is not supported."
122
+ - translation:
123
+ key: "txt.apps.admin.error.app_build.invalid_cr_schema_keys.one"
124
+ title: "App builder job: custom resources schema contains invalid key error"
125
+ value: "Custom resources schema contains an invalid key: %{invalid_keys}"
126
+ screenshot: "https://drive.google.com/open?id=1-CHVDcmr5mf1DKKeWqiOuGWrW25gDY4y"
127
+ - translation:
128
+ key: "txt.apps.admin.error.app_build.invalid_cr_schema_keys.other"
129
+ title: "App builder job: custom resources schema contains invalid keys error"
130
+ value: "Custom resources schema contains invalid keys: %{invalid_keys}"
131
+ screenshot: "https://drive.google.com/open?id=1iEx7f7PYnum_qDQESD3Gz2PwLDza3zI0"
122
132
  - translation:
123
133
  key: "txt.apps.admin.error.app_build.banner.invalid_format"
124
134
  title: "App builder job: Banner image invalid format error"
@@ -2,8 +2,7 @@
2
2
 
3
3
  module ZendeskAppsSupport
4
4
  class AppRequirement
5
- TYPES = %w[automations channel_integrations
6
- macros targets views ticket_fields triggers
7
- user_fields organization_fields].freeze
5
+ TYPES = %w[automations channel_integrations custom_resources_schema macros targets views ticket_fields
6
+ triggers user_fields organization_fields].freeze
8
7
  end
9
8
  end
@@ -5,7 +5,7 @@ module ZendeskAppsSupport
5
5
  module Requirements
6
6
  MAX_REQUIREMENTS = 5000
7
7
 
8
- class <<self
8
+ class << self
9
9
  def call(package)
10
10
  if package.manifest.requirements_only? && !package.has_requirements?
11
11
  return [ValidationError.new(:missing_requirements)]
@@ -26,6 +26,7 @@ module ZendeskAppsSupport
26
26
  errors << excessive_requirements(requirements)
27
27
  errors << invalid_channel_integrations(requirements)
28
28
  errors << invalid_custom_fields(requirements)
29
+ errors << invalid_custom_resources_schema(requirements)
29
30
  errors << missing_required_fields(requirements)
30
31
  errors.flatten!
31
32
  errors.compact!
@@ -43,10 +44,12 @@ module ZendeskAppsSupport
43
44
  def missing_required_fields(requirements)
44
45
  [].tap do |errors|
45
46
  requirements.each do |requirement_type, requirement|
46
- next if requirement_type == 'channel_integrations'
47
+ next if %w[channel_integrations custom_resources_schema].include? requirement_type
47
48
  requirement.each do |identifier, fields|
48
49
  next if fields.include? 'title'
49
- errors << ValidationError.new(:missing_required_fields, field: 'title', identifier: identifier)
50
+ errors << ValidationError.new(:missing_required_fields,
51
+ field: 'title',
52
+ identifier: identifier)
50
53
  end
51
54
  end
52
55
  end
@@ -65,7 +68,9 @@ module ZendeskAppsSupport
65
68
  [user_fields, organization_fields].compact.each do |field_group|
66
69
  field_group.each do |identifier, fields|
67
70
  next if fields.include? 'key'
68
- errors << ValidationError.new(:missing_required_fields, field: 'key', identifier: identifier)
71
+ errors << ValidationError.new(:missing_required_fields,
72
+ field: 'key',
73
+ identifier: identifier)
69
74
  end
70
75
  end
71
76
  end
@@ -76,19 +81,40 @@ module ZendeskAppsSupport
76
81
  return unless channel_integrations
77
82
  [].tap do |errors|
78
83
  if channel_integrations.size > 1
79
- errors << ValidationError.new(:multiple_channel_integrations, count: channel_integrations.size)
84
+ errors << ValidationError.new(:multiple_channel_integrations)
80
85
  end
81
86
  channel_integrations.each do |identifier, fields|
82
- unless fields.include? 'manifest_url'
83
- errors << ValidationError.new(:missing_required_fields, field: 'manifest_url', identifier: identifier)
84
- end
87
+ next if fields.include? 'manifest_url'
88
+ errors << ValidationError.new(:missing_required_fields,
89
+ field: 'manifest_url',
90
+ identifier: identifier)
91
+ end
92
+ end
93
+ end
94
+
95
+ def invalid_custom_resources_schema(requirements)
96
+ custom_resources_schema = requirements['custom_resources_schema']
97
+ return unless custom_resources_schema
98
+ valid_schema_keys = %w[resource_types relationship_types]
99
+ [].tap do |errors|
100
+ invalid_keys = custom_resources_schema.keys - valid_schema_keys
101
+ unless invalid_keys.empty?
102
+ errors << ValidationError.new(:invalid_cr_schema_keys,
103
+ invalid_keys: invalid_keys.join(', '),
104
+ count: invalid_keys.length)
105
+ end
106
+
107
+ valid_schema_keys.each do |required_key|
108
+ next if custom_resources_schema.keys.include? required_key
109
+ errors << ValidationError.new(:missing_required_fields,
110
+ field: required_key,
111
+ identifier: 'custom_resources_schema')
85
112
  end
86
113
  end
87
114
  end
88
115
 
89
116
  def invalid_requirements_types(requirements)
90
117
  invalid_types = requirements.keys - ZendeskAppsSupport::AppRequirement::TYPES
91
-
92
118
  unless invalid_types.empty?
93
119
  ValidationError.new(:invalid_requirements_types,
94
120
  invalid_types: invalid_types.join(', '),
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.11.2
4
+ version: 4.12.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: 2018-06-22 00:00:00.000000000 Z
14
+ date: 2018-07-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n
@@ -274,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
274
  version: 1.3.6
275
275
  requirements: []
276
276
  rubyforge_project:
277
- rubygems_version: 2.7.3
277
+ rubygems_version: 2.7.6
278
278
  signing_key:
279
279
  specification_version: 4
280
280
  summary: Support to help you develop Zendesk Apps.