zendesk_apps_tools 1.37.5 → 2.0.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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2aa8d1a04c58a6751dd96d0687835f37544ad2ee
|
4
|
+
data.tar.gz: e794bc24aa0504a80a204d1343bef70709fcc6dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9349fb4006085842c5df59f3c773f3ac3a0f4bfdd112d07c1fb36f9351a772ca37ed48a2a52ddaf171f5ab1c9d9c540ca008c4d1acb87cd6627d2b1cd2b85b6a
|
7
|
+
data.tar.gz: 72cf6af1f015140e146d39823d04f85aa831cf9f6c43e072bb1d1f2fed3ecb2815652784983831d6e003a2b3e69fa12f4d6009c1c9de03206749d746f40d3c04
|
@@ -131,16 +131,6 @@ module ZendeskAppsTools
|
|
131
131
|
method_option :bind, required: false
|
132
132
|
def server
|
133
133
|
setup_path(options[:path])
|
134
|
-
manifest = app_package.manifest
|
135
|
-
|
136
|
-
require 'zendesk_apps_tools/settings'
|
137
|
-
settings_helper = ZendeskAppsTools::Settings.new(self)
|
138
|
-
|
139
|
-
settings = settings_helper.get_settings_from_file options[:config], manifest.original_parameters
|
140
|
-
|
141
|
-
unless settings
|
142
|
-
settings = settings_helper.get_settings_from_user_input manifest.original_parameters
|
143
|
-
end
|
144
134
|
|
145
135
|
require 'zendesk_apps_tools/server'
|
146
136
|
ZendeskAppsTools::Server.tap do |server|
|
@@ -155,18 +145,24 @@ module ZendeskAppsTools
|
|
155
145
|
end
|
156
146
|
end
|
157
147
|
|
158
|
-
desc 'create', 'Create app on your account'
|
148
|
+
desc 'create', 'Create and install app on your account'
|
159
149
|
shared_options
|
160
150
|
method_option :zipfile, default: nil, required: false, type: :string
|
151
|
+
method_option :config, default: DEFAULT_CONFIG_PATH, required: false, aliases: '-c'
|
152
|
+
method_option :install, default: true, type: :boolean, desc: 'Also create an installation with some settings immediately after uploading.'
|
161
153
|
def create
|
162
154
|
cache.clear
|
163
155
|
@command = 'Create'
|
164
156
|
|
165
157
|
unless options[:zipfile]
|
166
|
-
app_name =
|
158
|
+
app_name = manifest.name
|
167
159
|
end
|
168
160
|
app_name ||= get_value_from_stdin('Enter app name:')
|
169
161
|
deploy_app(:post, '/api/v2/apps.json', name: app_name)
|
162
|
+
has_requirements = File.exist?(File.join(options[:path], 'requirements.json'))
|
163
|
+
return unless options[:install]
|
164
|
+
say_status 'Install', 'installing'
|
165
|
+
install_app(has_requirements, app_id: cache.fetch('app_id'), settings: settings.merge(name: app_name))
|
170
166
|
end
|
171
167
|
|
172
168
|
desc 'update', 'Update app on the server'
|
@@ -204,5 +200,17 @@ module ZendeskAppsTools
|
|
204
200
|
def setup_path(path)
|
205
201
|
@destination_stack << relative_to_original_destination_root(path) unless @destination_stack.last == path
|
206
202
|
end
|
203
|
+
|
204
|
+
def settings
|
205
|
+
settings_helper.get_settings_from_file(options[:config], manifest.original_parameters) ||
|
206
|
+
settings_helper.get_settings_from_user_input(manifest.original_parameters)
|
207
|
+
end
|
208
|
+
|
209
|
+
def settings_helper
|
210
|
+
@settings_helper ||= begin
|
211
|
+
require 'zendesk_apps_tools/settings'
|
212
|
+
ZendeskAppsTools::Settings.new(self)
|
213
|
+
end
|
214
|
+
end
|
207
215
|
end
|
208
216
|
end
|
@@ -16,6 +16,16 @@ module ZendeskAppsTools
|
|
16
16
|
say_error_and_exit e.message
|
17
17
|
end
|
18
18
|
|
19
|
+
def install_app(poll_job, installation)
|
20
|
+
connection = get_connection
|
21
|
+
response = connection.post do |req|
|
22
|
+
req.url 'api/v2/apps/installations.json'
|
23
|
+
req.headers[:content_type] = 'application/json'
|
24
|
+
req.body = JSON.generate(installation)
|
25
|
+
end
|
26
|
+
check_status(response, poll_job)
|
27
|
+
end
|
28
|
+
|
19
29
|
def upload(path)
|
20
30
|
connection = get_connection :multipart
|
21
31
|
zipfile_path = options[:zipfile]
|
@@ -54,13 +64,15 @@ module ZendeskAppsTools
|
|
54
64
|
say_error_and_exit e.message
|
55
65
|
end
|
56
66
|
|
57
|
-
def check_status(response)
|
67
|
+
def check_status(response, poll_job = true)
|
58
68
|
job = response.body
|
59
69
|
job_response = json_or_die(job)
|
60
70
|
say_error_and_exit job_response['error'] if job_response['error']
|
61
71
|
|
62
|
-
|
63
|
-
|
72
|
+
if poll_job
|
73
|
+
job_id = job_response['job_id'] || job_response['pending_job_id']
|
74
|
+
check_job job_id
|
75
|
+
end
|
64
76
|
end
|
65
77
|
|
66
78
|
def check_job(job_id)
|
@@ -76,7 +88,7 @@ module ZendeskAppsTools
|
|
76
88
|
if %w(completed failed).include? status
|
77
89
|
case status
|
78
90
|
when 'completed'
|
79
|
-
cache.save 'app_id' => app_id
|
91
|
+
cache.save 'app_id' => app_id if app_id
|
80
92
|
say_status @command, 'OK'
|
81
93
|
when 'failed'
|
82
94
|
say_status @command, message, :red
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_apps_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.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: 2017-03-
|
14
|
+
date: 2017-03-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: thor
|