zendesk_apps_support 3.1.1 → 3.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/locales/en.yml +4 -0
- data/config/locales/translations/zendesk_apps_support.yml +8 -0
- data/lib/zendesk_apps_support/manifest.rb +3 -0
- data/lib/zendesk_apps_support/package.rb +11 -14
- data/lib/zendesk_apps_support/validations/manifest.rb +16 -7
- data/lib/zendesk_apps_support/validations/requirements.rb +7 -1
- data/lib/zendesk_apps_support/validations/source.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17e0397eb9e955f39c20172e468c5c802c16e6b9
|
4
|
+
data.tar.gz: 729794611cb19c2ad235ef74edcdb57b8d10cea3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31db6f1d415c359436fda55684f6040bc5187b6700814f63398bcfa6f6f912dc329f63cb2b5628eb186b7a1abea085d11b4e7e28cc68d55381608c6b1be2e55e
|
7
|
+
data.tar.gz: 855a7bd5ae36894856819ebed680ce64d5628b54da9ec6fae5873eae20a7537fdea6851e5e22ca254e470604e75fb06e74c29d4a34a9326661198d2b1c59cb86
|
data/config/locales/en.yml
CHANGED
@@ -9,6 +9,8 @@ en:
|
|
9
9
|
jshint:
|
10
10
|
one: 'JSHint error in %{file}: %{errors}'
|
11
11
|
other: 'JSHint errors in %{file}: %{errors}'
|
12
|
+
no_parameters_required: Parameters can't be defined for marketing-only
|
13
|
+
apps
|
12
14
|
no_location_required: Locations can't be defined when you specify requirements
|
13
15
|
only
|
14
16
|
no_framework_version_required: Framework versions can't be set when you
|
@@ -19,6 +21,8 @@ en:
|
|
19
21
|
missing_manifest: Could not find manifest.json
|
20
22
|
symlink_in_zip: Symlinks are not allowed in the zip file
|
21
23
|
missing_requirements: Could not find requirements.json
|
24
|
+
requirements_not_supported: App requirements are not supported for marketing-only
|
25
|
+
apps
|
22
26
|
manifest_keys:
|
23
27
|
missing:
|
24
28
|
one: 'Missing required field in manifest: %{missing_keys}'
|
@@ -15,6 +15,10 @@ parts:
|
|
15
15
|
key: "txt.apps.admin.error.app_build.jshint.other"
|
16
16
|
title: "App builder job: JSHint error messages"
|
17
17
|
value: "JSHint errors in %{file}: %{errors}"
|
18
|
+
- translation:
|
19
|
+
key: "txt.apps.admin.error.app_build.no_parameters_required"
|
20
|
+
title: "App builder job: prevent adding parameters while marketing only"
|
21
|
+
value: "Parameters can't be defined for marketing-only apps"
|
18
22
|
- translation:
|
19
23
|
key: "txt.apps.admin.error.app_build.no_location_required"
|
20
24
|
title: "App builder job: ban location while requirements only"
|
@@ -44,6 +48,10 @@ parts:
|
|
44
48
|
key: "txt.apps.admin.error.app_build.missing_requirements"
|
45
49
|
title: "App builder job: missing requirements error"
|
46
50
|
value: "Could not find requirements.json"
|
51
|
+
- translation:
|
52
|
+
key: "txt.apps.admin.error.app_build.requirements_not_supported"
|
53
|
+
title: "App builder job: requirements not supported error"
|
54
|
+
value: "App requirements are not supported for marketing-only apps"
|
47
55
|
- translation:
|
48
56
|
key: "txt.apps.admin.error.app_build.manifest_keys.missing.one"
|
49
57
|
title: "App builder job: missing manifest fields error"
|
@@ -5,6 +5,7 @@ module ZendeskAppsSupport
|
|
5
5
|
|
6
6
|
RUBY_TO_JSON = {
|
7
7
|
requirements_only: 'requirementsOnly',
|
8
|
+
marketing_only: 'marketingOnly',
|
8
9
|
version: 'version',
|
9
10
|
author: 'author',
|
10
11
|
framework_version: 'frameworkVersion',
|
@@ -26,6 +27,7 @@ module ZendeskAppsSupport
|
|
26
27
|
attr_reader :locations
|
27
28
|
|
28
29
|
alias_method :requirements_only?, :requirements_only
|
30
|
+
alias_method :marketing_only?, :marketing_only
|
29
31
|
alias_method :signed_urls?, :signed_urls
|
30
32
|
alias_method :single_install?, :single_install
|
31
33
|
alias_method :private?, :private
|
@@ -70,6 +72,7 @@ module ZendeskAppsSupport
|
|
70
72
|
instance_variable_set(:"@#{ruby}", m[json])
|
71
73
|
end
|
72
74
|
@requirements_only ||= false
|
75
|
+
@marketing_only ||= false
|
73
76
|
@single_install ||= false
|
74
77
|
@private = m.fetch('private', true)
|
75
78
|
@signed_urls ||= false
|
@@ -8,6 +8,7 @@ module ZendeskAppsSupport
|
|
8
8
|
extend Gem::Deprecate
|
9
9
|
include ZendeskAppsSupport::BuildTranslation
|
10
10
|
|
11
|
+
MANIFEST_FILENAME = 'manifest.json'
|
11
12
|
REQUIREMENTS_FILENAME = 'requirements.json'
|
12
13
|
|
13
14
|
DEFAULT_LAYOUT = Erubis::Eruby.new(File.read(File.expand_path('../assets/default_template.html.erb', __FILE__)))
|
@@ -29,19 +30,15 @@ module ZendeskAppsSupport
|
|
29
30
|
errors << Validations::Marketplace.call(self) if marketplace
|
30
31
|
|
31
32
|
errors << Validations::Manifest.call(self)
|
32
|
-
|
33
33
|
if has_manifest?
|
34
34
|
errors << Validations::Source.call(self)
|
35
35
|
errors << Validations::Translations.call(self)
|
36
|
+
errors << Validations::Requirements.call(self)
|
36
37
|
|
37
|
-
|
38
|
+
if !manifest.requirements_only? && !manifest.marketing_only? && !manifest.iframe_only?
|
38
39
|
errors << Validations::Templates.call(self)
|
39
40
|
errors << Validations::Stylesheets.call(self)
|
40
41
|
end
|
41
|
-
|
42
|
-
if has_requirements?
|
43
|
-
errors << Validations::Requirements.call(self)
|
44
|
-
end
|
45
42
|
end
|
46
43
|
|
47
44
|
if has_banner?
|
@@ -145,17 +142,17 @@ module ZendeskAppsSupport
|
|
145
142
|
end
|
146
143
|
|
147
144
|
def manifest_json
|
148
|
-
@manifest_json ||= read_json(
|
145
|
+
@manifest_json ||= read_json(MANIFEST_FILENAME)
|
149
146
|
end
|
150
147
|
deprecate :manifest_json, :manifest, 2016, 9
|
151
148
|
|
152
149
|
def manifest
|
153
|
-
@manifest ||= Manifest.new(read_file(
|
150
|
+
@manifest ||= Manifest.new(read_file(MANIFEST_FILENAME))
|
154
151
|
end
|
155
152
|
|
156
153
|
def requirements_json
|
157
154
|
return nil unless has_requirements?
|
158
|
-
@requirements ||= read_json(
|
155
|
+
@requirements ||= read_json(REQUIREMENTS_FILENAME, object_class: Manifest::NoOverrideHash)
|
159
156
|
end
|
160
157
|
|
161
158
|
def is_no_template
|
@@ -193,6 +190,10 @@ module ZendeskAppsSupport
|
|
193
190
|
File.exist?(path_to(path))
|
194
191
|
end
|
195
192
|
|
193
|
+
def has_requirements?
|
194
|
+
has_file?(REQUIREMENTS_FILENAME)
|
195
|
+
end
|
196
|
+
|
196
197
|
def app_css
|
197
198
|
css_file = path_to('app.css')
|
198
199
|
scss_file = path_to('app.scss')
|
@@ -266,11 +267,7 @@ module ZendeskAppsSupport
|
|
266
267
|
end
|
267
268
|
|
268
269
|
def has_manifest?
|
269
|
-
has_file?(
|
270
|
-
end
|
271
|
-
|
272
|
-
def has_requirements?
|
273
|
-
has_file?('requirements.json')
|
270
|
+
has_file?(MANIFEST_FILENAME)
|
274
271
|
end
|
275
272
|
|
276
273
|
def has_banner?
|
@@ -15,15 +15,20 @@ module ZendeskAppsSupport
|
|
15
15
|
errors = []
|
16
16
|
errors << missing_keys_error(manifest)
|
17
17
|
errors << oauth_error(manifest)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
|
19
|
+
if manifest.marketing_only?
|
20
|
+
errors << ban_parameters(manifest)
|
21
|
+
else
|
22
|
+
errors << parameters_error(manifest)
|
23
|
+
errors << invalid_hidden_parameter_error(manifest)
|
24
|
+
errors << invalid_type_error(manifest)
|
25
|
+
errors << name_as_parameter_name_error(manifest)
|
26
|
+
errors << no_template_format_error(manifest)
|
27
|
+
end
|
23
28
|
errors << boolean_error(manifest)
|
24
29
|
errors << default_locale_error(manifest, package)
|
25
30
|
|
26
|
-
if manifest.requirements_only?
|
31
|
+
if manifest.requirements_only? || manifest.marketing_only?
|
27
32
|
errors << ban_location(manifest)
|
28
33
|
errors << ban_framework_version(manifest)
|
29
34
|
else
|
@@ -43,7 +48,7 @@ module ZendeskAppsSupport
|
|
43
48
|
private
|
44
49
|
|
45
50
|
def boolean_error(manifest)
|
46
|
-
booleans = %i(requirements_only single_install signed_urls private)
|
51
|
+
booleans = %i(requirements_only marketing_only single_install signed_urls private)
|
47
52
|
errors = []
|
48
53
|
RUBY_TO_JSON.each do |ruby, json|
|
49
54
|
if booleans.include? ruby
|
@@ -65,6 +70,10 @@ module ZendeskAppsSupport
|
|
65
70
|
end
|
66
71
|
end
|
67
72
|
|
73
|
+
def ban_parameters(manifest)
|
74
|
+
ValidationError.new(:no_parameters_required) unless manifest.parameters.empty?
|
75
|
+
end
|
76
|
+
|
68
77
|
def ban_location(manifest)
|
69
78
|
ValidationError.new(:no_location_required) if manifest.location?
|
70
79
|
end
|
@@ -5,7 +5,13 @@ module ZendeskAppsSupport
|
|
5
5
|
|
6
6
|
class <<self
|
7
7
|
def call(package)
|
8
|
-
|
8
|
+
if package.manifest.requirements_only? && !package.has_requirements?
|
9
|
+
return [ValidationError.new(:missing_requirements)]
|
10
|
+
elsif package.manifest.marketing_only? && package.has_requirements?
|
11
|
+
return [ValidationError.new(:requirements_not_supported)]
|
12
|
+
elsif !package.has_requirements?
|
13
|
+
return []
|
14
|
+
end
|
9
15
|
|
10
16
|
begin
|
11
17
|
requirements = package.requirements_json
|
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: 3.1.
|
4
|
+
version: 3.1.2
|
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: 2016-09-
|
14
|
+
date: 2016-09-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: i18n
|
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
201
201
|
version: 1.3.6
|
202
202
|
requirements: []
|
203
203
|
rubyforge_project:
|
204
|
-
rubygems_version: 2.
|
204
|
+
rubygems_version: 2.5.1
|
205
205
|
signing_key:
|
206
206
|
specification_version: 4
|
207
207
|
summary: Support to help you develop Zendesk Apps.
|