zendesk_apps_support 4.11.2 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.