gitlab_support_readiness 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/support_readiness/client.rb +41 -2
- data/lib/support_readiness/gitlab/issues.rb +2 -37
- data/lib/support_readiness/gitlab/projects.rb +4 -4
- data/lib/support_readiness/gitlab/repositories.rb +9 -9
- data/lib/support_readiness/gitlab/users.rb +2 -2
- data/lib/support_readiness/redis.rb +8 -2
- data/lib/support_readiness/zendesk/articles.rb +6 -4
- data/lib/support_readiness/zendesk/automations.rb +10 -14
- data/lib/support_readiness/zendesk/group_memberships.rb +1 -1
- data/lib/support_readiness/zendesk/groups.rb +0 -1
- data/lib/support_readiness/zendesk/macros.rb +2 -2
- data/lib/support_readiness/zendesk/organization_fields.rb +2 -2
- data/lib/support_readiness/zendesk/organization_memberships.rb +2 -2
- data/lib/support_readiness/zendesk/organizations.rb +0 -1
- data/lib/support_readiness/zendesk/roles.rb +5 -5
- data/lib/support_readiness/zendesk/sla_policies.rb +1 -1
- data/lib/support_readiness/zendesk/ticket_forms.rb +1 -1
- data/lib/support_readiness/zendesk/tickets.rb +2 -5
- data/lib/support_readiness/zendesk/triggers.rb +4 -4
- data/lib/support_readiness/zendesk/users.rb +18 -16
- data/lib/support_readiness/zendesk/views.rb +30 -33
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b6172a8a41b139003edf771fe377bd8910f12d41c27d54456290c114cae08cb
|
4
|
+
data.tar.gz: 568efc6d2b6cd4bd7c014787a70cce19927415b14944ed4e4bb7dac4f682b03a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50e8b47c5a5eb3cc7b3e537c4d64c30ebc5f1461c1586b7890ca97b20783d285a8c060cf4c35dac4ad9a76e75b6645f8b1498e42c3162ca71f2d96197b4b3acb
|
7
|
+
data.tar.gz: 502bee0ca7781bd1469a7551f0a40239f940e7619b083e8c148b6e81f2ba58c277d6adf8ce18f35465864df2ce16e465e93f14ede1d6b367c882c38f14a18e90
|
@@ -36,6 +36,22 @@ module Readiness
|
|
36
36
|
hash.to_json
|
37
37
|
end
|
38
38
|
|
39
|
+
##
|
40
|
+
# Converts an Object to a JSON String, removing nil values except for ones defined in an Array
|
41
|
+
#
|
42
|
+
# @author Jason Colyer
|
43
|
+
# @since 1.0.9
|
44
|
+
# @param object [Object]
|
45
|
+
# @param keep_nil [Array] An array of keys to keep as nil in the final return
|
46
|
+
# @return [String]
|
47
|
+
def self.to_nearly_clean_json(object, keep_nil)
|
48
|
+
hash = to_hash(object).compact
|
49
|
+
keep_nil.each do |k|
|
50
|
+
hash[key.to_sym][k] = nil unless hash[key.to_sym].keys.include? k
|
51
|
+
end
|
52
|
+
hash.to_json
|
53
|
+
end
|
54
|
+
|
39
55
|
##
|
40
56
|
# Converts an Object to a JSON String with a leading key, removing nil values
|
41
57
|
#
|
@@ -49,6 +65,23 @@ module Readiness
|
|
49
65
|
hash.to_json
|
50
66
|
end
|
51
67
|
|
68
|
+
##
|
69
|
+
# Converts an Object to a JSON String with a leading key, removing nil values except for ones defined in an Array
|
70
|
+
#
|
71
|
+
# @author Jason Colyer
|
72
|
+
# @since 1.0.9
|
73
|
+
# @param object [Object]
|
74
|
+
# @param key [String]
|
75
|
+
# @param keep_nil [Array] An array of keys to keep as nil in the final return
|
76
|
+
# @return [String]
|
77
|
+
def self.to_nearly_clean_json_with_key(object, key, keep_nil)
|
78
|
+
hash = { "#{key}": to_hash(object).compact }
|
79
|
+
keep_nil.each do |k|
|
80
|
+
hash[key.to_sym][k] = nil unless hash[key.to_sym].keys.include? k
|
81
|
+
end
|
82
|
+
hash.to_json
|
83
|
+
end
|
84
|
+
|
52
85
|
##
|
53
86
|
# Handles error occurred from making Faraday requests
|
54
87
|
#
|
@@ -86,9 +119,15 @@ module Readiness
|
|
86
119
|
exit 1
|
87
120
|
end
|
88
121
|
|
122
|
+
##
|
123
|
+
# Handles 400 bad request errors from making Faraday requests.
|
124
|
+
#
|
125
|
+
# @author Jason Colyer
|
126
|
+
# @since 1.0.0
|
127
|
+
# @param system [String] The system the error occurred on
|
128
|
+
# @param params [Hash] A Hash of information about the request
|
89
129
|
def self.bad_request_error(system, params)
|
90
|
-
|
91
|
-
pp params
|
130
|
+
puts "Action '#{params[:action]}' to ID #{params[:id]} on #{system} returned a 404 error"
|
92
131
|
exit 1
|
93
132
|
end
|
94
133
|
|
@@ -68,41 +68,6 @@ module Readiness
|
|
68
68
|
@weight = object['weight']
|
69
69
|
end
|
70
70
|
|
71
|
-
##
|
72
|
-
# Lists all issues. Does not stop until it ends or the page limit is hit.
|
73
|
-
# This method can take a long time to run depending on the parameters used.
|
74
|
-
#
|
75
|
-
# @author Jason Colyer
|
76
|
-
# @since 1.0.0
|
77
|
-
# @param client [Object] An instance of {Readiness::GitLab::Client}
|
78
|
-
# @param limit [Integer] The number of pages to stop at. Using 0 means to list all.
|
79
|
-
# @param filters [Array] An array of filter Strings to use. Should be in the format of key=value
|
80
|
-
# @return [Array]
|
81
|
-
# @see https://docs.gitlab.com/ee/api/issues.html#list-issues GitLab API > Issues > List issues
|
82
|
-
# @example
|
83
|
-
# require 'support_readiness'
|
84
|
-
# config = Readiness::GitLab::Configuration.new
|
85
|
-
# config.token = 'test123abc'
|
86
|
-
# client = Readiness::GitLab::Client.new(config)
|
87
|
-
# issues = Readiness::GitLab::Issues.list_all(client, 2, ["assignee_id=5", "state=opened"])
|
88
|
-
# puts issues.first.web_url
|
89
|
-
# # => "https://gitlab.com/gitlab-com/support/support-team-meta/-/issues/1"
|
90
|
-
def self.list_all(client, limit = 0, filters = [])
|
91
|
-
array = []
|
92
|
-
page = 1
|
93
|
-
loop do
|
94
|
-
response = client.connection.get "issues?per_page=100&page=#{page}&#{to_param_string(filters)}"
|
95
|
-
handle_request_error(0, 'GitLab', response.status) unless response.status == 200
|
96
|
-
body = Oj.load(response.body)
|
97
|
-
array += body.map { |p| Issues.new(p) }
|
98
|
-
break if body.count < 100
|
99
|
-
break if limit != 0 && array.count >= (limit * 100)
|
100
|
-
|
101
|
-
page += 1
|
102
|
-
end
|
103
|
-
array
|
104
|
-
end
|
105
|
-
|
106
71
|
##
|
107
72
|
# Lists all issues for an object. Does not stop until it ends or the page limit is hit.
|
108
73
|
# This method can take a long time to run depending on the parameters used.
|
@@ -306,7 +271,7 @@ module Readiness
|
|
306
271
|
array = []
|
307
272
|
page = 0
|
308
273
|
loop do
|
309
|
-
response = client.connection.get "projects/#{project.id}/issues/#{issues.
|
274
|
+
response = client.connection.get "projects/#{project.id}/issues/#{issues.iid}/notes?per_page=100&page=#{page}"
|
310
275
|
handle_request_error(0, 'GitLab', response.status) unless response.status == 200
|
311
276
|
body = Oj.load(response.body)
|
312
277
|
array += body
|
@@ -374,7 +339,7 @@ module Readiness
|
|
374
339
|
# pp comment['updated_at']
|
375
340
|
# # => "2024-09-23T16:47:36Z"
|
376
341
|
def self.update_comment!(client, project, issue, cid, params)
|
377
|
-
response = client.connection.put "projects/#{project.id}/issues/#{issue.iid}/notes/#{cid}",
|
342
|
+
response = client.connection.put "projects/#{project.id}/issues/#{issue.iid}/notes/#{cid}", params.to_json
|
378
343
|
handle_request_error(1, 'GitLab', response.status, { action: 'Update issue comment', id: issue.id }) unless response.status == 200
|
379
344
|
Oj.load(response.body)
|
380
345
|
end
|
@@ -447,7 +447,7 @@ module Readiness
|
|
447
447
|
# pp badge['id']
|
448
448
|
# # => 7
|
449
449
|
def self.create_badge!(client, project, params)
|
450
|
-
response = client.connection.post "projects/#{project.id}/badges",
|
450
|
+
response = client.connection.post "projects/#{project.id}/badges", params.to_json
|
451
451
|
handle_request_error(1, 'GitLab', response.status, { action: 'Create badge', id: project.id }) unless response.status == 200
|
452
452
|
Oj.load(response.body)
|
453
453
|
end
|
@@ -472,11 +472,11 @@ module Readiness
|
|
472
472
|
# bdge_params = {
|
473
473
|
# image_url: 'https://shields.io/my/badge'
|
474
474
|
# }
|
475
|
-
# badge = Readiness::GitLab::Projects.
|
475
|
+
# badge = Readiness::GitLab::Projects.update_badge!(client, project, 7, bdge_params)
|
476
476
|
# pp badge['name']
|
477
477
|
# # => "mybadge"
|
478
478
|
def self.update_badge!(client, project, bid, params)
|
479
|
-
response = client.connection.put "projects/#{project.id}/badges/#{bid}",
|
479
|
+
response = client.connection.put "projects/#{project.id}/badges/#{bid}", params.to_json
|
480
480
|
handle_request_error(1, 'GitLab', response.status, { action: 'Update badge', id: project.id }) unless response.status == 200
|
481
481
|
Oj.load(response.body)
|
482
482
|
end
|
@@ -497,7 +497,7 @@ module Readiness
|
|
497
497
|
# config.token = 'test123abc'
|
498
498
|
# client = Readiness::GitLab::Client.new(config)
|
499
499
|
# project = Readiness::GitLab::Projects.find!(client, 1083469)
|
500
|
-
# badge = Readiness::GitLab::Projects.
|
500
|
+
# badge = Readiness::GitLab::Projects.delete_badge!(client, project, 7)
|
501
501
|
# pp badge
|
502
502
|
# # => true
|
503
503
|
def self.delete_badge!(client, project, bid)
|
@@ -81,7 +81,7 @@ module Readiness
|
|
81
81
|
# @param project [Object] An instance of {Readiness::GitLab::Projects}
|
82
82
|
# @param path [String] The full file path. Ex: lib/support_readiness/gitlab/repositories.rb
|
83
83
|
# @param ref [String] The name of branch, tag or commit
|
84
|
-
# @return [
|
84
|
+
# @return [String]
|
85
85
|
# @see https://docs.gitlab.com/ee/api/repository_files.html#get-raw-file-from-repository GitLab API > Repository files > Get raw file from repository
|
86
86
|
# @example
|
87
87
|
# require 'support_readiness'
|
@@ -90,12 +90,12 @@ module Readiness
|
|
90
90
|
# client = Readiness::GitLab::Client.new(config)
|
91
91
|
# project = Readiness::GitLab::Projects.find!(client, 1083469)
|
92
92
|
# file = Readiness::GitLab::Repositories.raw_file(client, project, ".gitlab/CODEOWNERS", "main")
|
93
|
-
# pp file
|
94
|
-
# # =>
|
93
|
+
# pp file
|
94
|
+
# # => "Hello World!"
|
95
95
|
def self.raw_file(client, project, path, ref)
|
96
96
|
response = client.connection.get "projects/#{project.id}/repository/files/#{CGI.escape(path)}/raw?ref=#{ref}"
|
97
97
|
handle_request_error(0, 'GitLab', response.status) unless response.status == 200
|
98
|
-
|
98
|
+
response.body
|
99
99
|
end
|
100
100
|
|
101
101
|
##
|
@@ -126,7 +126,7 @@ module Readiness
|
|
126
126
|
# pp file['path']
|
127
127
|
# # => "spec/test.file"
|
128
128
|
def self.create_file!(client, project, path, params)
|
129
|
-
response = client.connection.post "projects/#{project.id}/repository/files/#{CGI.escape(path)}",
|
129
|
+
response = client.connection.post "projects/#{project.id}/repository/files/#{CGI.escape(path)}", params.to_json
|
130
130
|
handle_request_error(1, 'GitLab', response.status, { action: 'Create file in repo', id: "#{project.id}" }) unless response.status == 200
|
131
131
|
Oj.load(response.body)
|
132
132
|
end
|
@@ -159,7 +159,7 @@ module Readiness
|
|
159
159
|
# pp file['path']
|
160
160
|
# # => "spec/test.file"
|
161
161
|
def self.update_file!(client, project, path, params)
|
162
|
-
response = client.connection.put "projects/#{project.id}/repository/files/#{CGI.escape(path)}",
|
162
|
+
response = client.connection.put "projects/#{project.id}/repository/files/#{CGI.escape(path)}", params.to_json
|
163
163
|
handle_request_error(1, 'GitLab', response.status, { action: 'Update file in repo', id: "#{project.id}" }) unless response.status == 200
|
164
164
|
Oj.load(response.body)
|
165
165
|
end
|
@@ -190,7 +190,7 @@ module Readiness
|
|
190
190
|
# pp file
|
191
191
|
# # => true
|
192
192
|
def self.delete_file!(client, project, path, params)
|
193
|
-
response = client.connection.delete "projects/#{project.id}/repository/files/#{CGI.escape(path)}",
|
193
|
+
response = client.connection.delete "projects/#{project.id}/repository/files/#{CGI.escape(path)}", params.to_json
|
194
194
|
handle_request_error(1, 'GitLab', response.status, { action: 'Delete file in repo', id: "#{project.id}" }) unless response.status == 204
|
195
195
|
true
|
196
196
|
end
|
@@ -227,7 +227,7 @@ module Readiness
|
|
227
227
|
# pp commit['title']
|
228
228
|
# # => "Notify via slack for failed pipelines"
|
229
229
|
def self.create_commit!(client, project, params)
|
230
|
-
response = client.connection.post "projects/#{project.id}/repository/commits",
|
230
|
+
response = client.connection.post "projects/#{project.id}/repository/commits", params.to_json
|
231
231
|
handle_request_error(1, 'GitLab', response.status, { action: 'Create commit', id: "#{project.id}" }) unless response.status == 200
|
232
232
|
Oj.load(response.body)
|
233
233
|
end
|
@@ -258,7 +258,7 @@ module Readiness
|
|
258
258
|
# pp update['parent_ids']
|
259
259
|
# # => ["ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"]
|
260
260
|
def self.update_submodule!(client, project, path, params)
|
261
|
-
response = clinet.connection.put "projects/#{project.id}/repository/submodules/#{CGI.escape(path)}",
|
261
|
+
response = clinet.connection.put "projects/#{project.id}/repository/submodules/#{CGI.escape(path)}", params.to_json
|
262
262
|
handle_request_error(1, 'GitLab', response.status, { action: 'Update submodule in repo', id: "#{project.id}" }) unless response.status == 200
|
263
263
|
Oj.load(response.body)
|
264
264
|
end
|
@@ -248,7 +248,7 @@ module Readiness
|
|
248
248
|
# @param user [Object] An instance of {Readiness::GitLab::Users}
|
249
249
|
# @param filters [Array] An array of filter Strings to use. Should be in the format of key=value
|
250
250
|
# @return [Array]
|
251
|
-
# @see https://docs.gitlab.com/ee/api/projects.html#list-
|
251
|
+
# @see https://docs.gitlab.com/ee/api/projects.html#list-a-users-projects GitLab API > Projects > List user projects
|
252
252
|
# @example
|
253
253
|
# require 'support_readiness'
|
254
254
|
# config = Readiness::GitLab::Configuration.new
|
@@ -383,7 +383,7 @@ module Readiness
|
|
383
383
|
# pp token['token']
|
384
384
|
# # => "s3cr3t1"
|
385
385
|
def self.create_token!(client, user, params)
|
386
|
-
response = client.connection.post "users/#{user.id}/personal_access_tokens",
|
386
|
+
response = client.connection.post "users/#{user.id}/personal_access_tokens", params.to_json
|
387
387
|
handle_request_error(1, 'GitLab', response.status, { action: 'Create PAT for a user', id: "#{user.id}" }) unless response.status == 200
|
388
388
|
Oj.load(response.body)
|
389
389
|
end
|
@@ -54,6 +54,8 @@ module Readiness
|
|
54
54
|
# # => bar
|
55
55
|
def self.get(client, key)
|
56
56
|
Marshal.load client.connection.get(key)
|
57
|
+
rescue TypeError
|
58
|
+
nil
|
57
59
|
end
|
58
60
|
|
59
61
|
##
|
@@ -69,7 +71,7 @@ module Readiness
|
|
69
71
|
# redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')
|
70
72
|
# Readiness::Redis.set(redis, 'foo', 'bar2')
|
71
73
|
def self.set(client, key, value)
|
72
|
-
client.connection.set(key,
|
74
|
+
client.connection.set(key, Marshal.dump(value))
|
73
75
|
end
|
74
76
|
|
75
77
|
##
|
@@ -79,12 +81,16 @@ module Readiness
|
|
79
81
|
# @since 1.0.0
|
80
82
|
# @param client [Object] A {Readiness::Redis} instance
|
81
83
|
# @param key [String] The Redis key to delete
|
84
|
+
# @return [Boolean]
|
82
85
|
# @example
|
83
86
|
# require 'support_readiness'
|
84
87
|
# redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')
|
85
88
|
# Readiness::Redis.del(redis, 'foo')
|
86
89
|
def self.del(client, key)
|
87
|
-
client.connection.del(key)
|
90
|
+
response = client.connection.del(key)
|
91
|
+
return true if response == 1
|
92
|
+
|
93
|
+
false
|
88
94
|
end
|
89
95
|
end
|
90
96
|
end
|
@@ -141,14 +141,16 @@ module Readiness
|
|
141
141
|
# client = Readiness::Zendesk::Client.new(config)
|
142
142
|
# article = Readiness::Zendesk::Articles.new
|
143
143
|
# article.title = 'Taking photos in low light'
|
144
|
-
#
|
144
|
+
# article.body = 'Use a tripod'
|
145
145
|
# article.section_id = 123
|
146
146
|
# article.locale = 'en-us'
|
147
|
+
# article.user_segment_id = nil
|
148
|
+
# article.permission_group_id = 12528735509276
|
147
149
|
# create = Readiness::Zendesk::Articles.create!(client, article)
|
148
150
|
# pp create.id
|
149
151
|
# # => 35468
|
150
152
|
def self.create!(client, article)
|
151
|
-
response = client.connection.post "help_center/sections/#{article.section_id}/articles",
|
153
|
+
response = client.connection.post "help_center/sections/#{article.section_id}/articles", to_nearly_clean_json_with_key(article, 'article', ['user_segment_id'])
|
152
154
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Create article', message: Oj.load(response.body)}) unless response.status == 201
|
153
155
|
Articles.new(Oj.load(response.body)['article'])
|
154
156
|
end
|
@@ -175,7 +177,7 @@ module Readiness
|
|
175
177
|
# pp update.body
|
176
178
|
# # => "Use a tripod and low light approved camera"
|
177
179
|
def self.update!(client, article)
|
178
|
-
response = client.connection.put "help_center/
|
180
|
+
response = client.connection.put "help_center/articles/#{article.id}", to_nearly_clean_json_with_key(article, 'article', ['user_segment_id'])
|
179
181
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Update article', id: article.id, message: Oj.load(response.body)}) unless response.status == 200
|
180
182
|
Articles.new(Oj.load(response.body)['article'])
|
181
183
|
end
|
@@ -201,7 +203,7 @@ module Readiness
|
|
201
203
|
# pp archive
|
202
204
|
# # => true
|
203
205
|
def self.archive!(client, article)
|
204
|
-
response = client.connection.delete "help_center/articles/#{
|
206
|
+
response = client.connection.delete "help_center/articles/#{article.id}"
|
205
207
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Archive article', id: article.id, message: Oj.load(response.body)}) unless response.status == 204
|
206
208
|
true
|
207
209
|
end
|
@@ -137,21 +137,21 @@ module Readiness
|
|
137
137
|
# automation.conditions = {
|
138
138
|
# all: [
|
139
139
|
# {
|
140
|
-
# field: 'status'
|
141
|
-
# operator: 'is'
|
140
|
+
# field: 'status',
|
141
|
+
# operator: 'is',
|
142
142
|
# value: 'solved'
|
143
143
|
# },
|
144
144
|
# {
|
145
|
-
# field: 'priority'
|
146
|
-
# operator: 'is_not'
|
145
|
+
# field: 'priority',
|
146
|
+
# operator: 'is_not',
|
147
147
|
# value: 'low'
|
148
148
|
# }
|
149
|
-
# ]
|
149
|
+
# ],
|
150
150
|
# any: []
|
151
151
|
# }
|
152
152
|
# automation.actions = [
|
153
153
|
# {
|
154
|
-
# field: 'priority'
|
154
|
+
# field: 'priority',
|
155
155
|
# value: 'low'
|
156
156
|
# }
|
157
157
|
# ]
|
@@ -213,7 +213,7 @@ module Readiness
|
|
213
213
|
end
|
214
214
|
|
215
215
|
##
|
216
|
-
# Updates multiple automations
|
216
|
+
# Updates multiple automations. Can only update position and active values.
|
217
217
|
#
|
218
218
|
# @author Jason Colyer
|
219
219
|
# @since 1.0.0
|
@@ -238,11 +238,11 @@ module Readiness
|
|
238
238
|
# updated = Readiness::Zendesk::Automations.update_many!(client, automation)
|
239
239
|
# pp updated.first.position
|
240
240
|
# # => 2
|
241
|
-
def self.update_many(client, automations)
|
241
|
+
def self.update_many!(client, automations)
|
242
242
|
data = { automations: automations.map { |t| to_hash(t).compact } }.to_json
|
243
243
|
response = client.connection.put('automations/update_many', data)
|
244
244
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Update many automations', message: Oj.load(response.body)}) unless response.status == 200
|
245
|
-
Oj.load(response.body).map { |a| Automations.new(a) }
|
245
|
+
Oj.load(response.body)['automations'].map { |a| Automations.new(a) }
|
246
246
|
end
|
247
247
|
|
248
248
|
##
|
@@ -287,11 +287,7 @@ module Readiness
|
|
287
287
|
# config.token = 'test123abc'
|
288
288
|
# config.url = 'https://example.zendesk.com/api/v2'
|
289
289
|
# client = Readiness::Zendesk::Client.new(config)
|
290
|
-
#
|
291
|
-
# automation2 = Readiness::Zendesk::Automations.find!(client, 2)
|
292
|
-
# automation3 = Readiness::Zendesk::Automations.find!(client, 3)
|
293
|
-
# automations = [automation1, automation2, automation3]
|
294
|
-
# deleted = Readiness::Zendesk::Automations.delete_many!(client, automation)
|
290
|
+
# deleted = Readiness::Zendesk::Automations.delete_many!(client, [1, 7, 19])
|
295
291
|
# pp deleted
|
296
292
|
# # => true
|
297
293
|
def self.delete_many!(client, aids)
|
@@ -194,7 +194,7 @@ module Readiness
|
|
194
194
|
# create = Readiness::Zendesk::GroupMemberships.create_many!(client, memberships)
|
195
195
|
# pp create.id
|
196
196
|
# # => "82de0b044094f0c67893ac9fe64f1a99"
|
197
|
-
def self.create_many(client, memberships)
|
197
|
+
def self.create_many!(client, memberships)
|
198
198
|
data = { group_memberships: memberships.map { |t| to_hash(t).compact } }.to_json
|
199
199
|
response = client.connection.post('group_memberships/create_many', data)
|
200
200
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Create many group memberships', message: Oj.load(response.body)}) unless response.status == 200
|
@@ -237,7 +237,6 @@ module Readiness
|
|
237
237
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
238
238
|
body = Oj.load(response.body)
|
239
239
|
array += body['group_memberships']
|
240
|
-
break if limit != 0 && array.count >= (limit * 100)
|
241
240
|
break unless body['meta']['has_more']
|
242
241
|
|
243
242
|
opts = body['links'] ['next'].split('?').last
|
@@ -173,7 +173,7 @@ module Readiness
|
|
173
173
|
end
|
174
174
|
|
175
175
|
##
|
176
|
-
# Updates multiple macros
|
176
|
+
# Updates multiple macros. Can only update position and active values.
|
177
177
|
#
|
178
178
|
# @author Jason Colyer
|
179
179
|
# @since 1.0.0
|
@@ -230,7 +230,7 @@ module Readiness
|
|
230
230
|
end
|
231
231
|
|
232
232
|
##
|
233
|
-
# Deletes multiple macros
|
233
|
+
# Deletes multiple macros
|
234
234
|
#
|
235
235
|
# @author Jason Colyer
|
236
236
|
# @since 1.0.0
|
@@ -139,7 +139,7 @@ module Readiness
|
|
139
139
|
# field.type = 'text'
|
140
140
|
# field.title = 'Support desc'
|
141
141
|
# field.description = 'This field describes the support plan this organization has'
|
142
|
-
# field.position
|
142
|
+
# field.position = 0
|
143
143
|
# field.active = true
|
144
144
|
# field.key = 'support_description'
|
145
145
|
# create = Readiness::Zendesk::OrganizationFields.create!(client, field)
|
@@ -173,7 +173,7 @@ module Readiness
|
|
173
173
|
# pp create.title
|
174
174
|
# # => "Support description"
|
175
175
|
def self.update!(client, field)
|
176
|
-
response = client.connection.put "organization_fields/#{field.id}", to_clean_json_with_key(field, '
|
176
|
+
response = client.connection.put "organization_fields/#{field.id}", to_clean_json_with_key(field, 'organization_field')
|
177
177
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Update organization field', message: Oj.load(response.body)}) unless response.status == 200
|
178
178
|
OrganizationFields.new(Oj.load(response.body)['organization_field'])
|
179
179
|
end
|
@@ -244,10 +244,10 @@ module Readiness
|
|
244
244
|
# config.token = 'test123abc'
|
245
245
|
# config.url = 'https://example.zendesk.com/api/v2'
|
246
246
|
# client = Readiness::Zendesk::Client.new(config)
|
247
|
-
# deletes = Readiness::Zendesk::OrganizationMemberships.
|
247
|
+
# deletes = Readiness::Zendesk::OrganizationMemberships.delete_many!(client, [461, 462])
|
248
248
|
# pp deletes.id
|
249
249
|
# # => "82de0b044094f0c67893ac9fe64f1a99"
|
250
|
-
def self.delete_many(client, mids)
|
250
|
+
def self.delete_many!(client, mids)
|
251
251
|
response = client.connection.delete("organization_memberships/destroy_many?ids=#{mids.join(',')}")
|
252
252
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many organization memberships', message: Oj.load(response.body)}) unless response.status == 200
|
253
253
|
JobStatuses.new(Oj.load(response.body)['job_status'])
|
@@ -503,7 +503,6 @@ module Readiness
|
|
503
503
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
504
504
|
body = Oj.load(response.body)
|
505
505
|
array += body['organization_memberships'].map { |o| OrganizationMemberships.new(o) }
|
506
|
-
break if limit != 0 && array.count >= (limit * 100)
|
507
506
|
break unless body['meta']['has_more']
|
508
507
|
|
509
508
|
opts = body['links'] ['next'].split('?').last
|
@@ -62,7 +62,7 @@ module Readiness
|
|
62
62
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
63
63
|
# @param rid [Integer] The Custom Role ID to find
|
64
64
|
# @return [Hash]
|
65
|
-
# @see https
|
65
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/#show-custom-role Zendesk API > Custom Roles > Show Custom Role
|
66
66
|
# @example
|
67
67
|
# require 'support_readiness'
|
68
68
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -89,7 +89,7 @@ module Readiness
|
|
89
89
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
90
90
|
# @param rid [Integer] The Custom Role ID to find
|
91
91
|
# @return [Object] An instance of {Readiness::Zendesk::Roles}
|
92
|
-
# @see https
|
92
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/#show-custom-role Zendesk API > Custom Roles > Show Custom Role
|
93
93
|
# @example
|
94
94
|
# require 'support_readiness'
|
95
95
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -114,7 +114,7 @@ module Readiness
|
|
114
114
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
115
115
|
# @param role [Object] An instance of {Readiness::Zendesk::Roles}
|
116
116
|
# @return [Object] An instance of {Readiness::Zendesk::Roles}
|
117
|
-
# @see https
|
117
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/#create-custom-role Zendesk API > Custom Roles > Create Custom Role
|
118
118
|
# @example
|
119
119
|
# require 'support_readiness'
|
120
120
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -145,7 +145,7 @@ module Readiness
|
|
145
145
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
146
146
|
# @param role [Object] An instance of {Readiness::Zendesk::Roles}
|
147
147
|
# @return [Object] An instance of {Readiness::Zendesk::Roles}
|
148
|
-
# @see https
|
148
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/#update-custom-role Zendesk API > Custom Roles > Update Custom Role
|
149
149
|
# @example
|
150
150
|
# require 'support_readiness'
|
151
151
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -172,7 +172,7 @@ module Readiness
|
|
172
172
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
173
173
|
# @param role [Object] An instance of {Readiness::Zendesk::Roles}
|
174
174
|
# @return [Boolean]
|
175
|
-
# @see https
|
175
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/custom_roles/#delete-custom-role Zendesk API > Custom Roles > Delete Custom Role
|
176
176
|
# @example
|
177
177
|
# require 'support_readiness'
|
178
178
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -145,7 +145,7 @@ module Readiness
|
|
145
145
|
# pp create.id
|
146
146
|
# # => 36
|
147
147
|
def self.create!(client, policy)
|
148
|
-
response = client.connection.post 'slas/policies', to_clean_json_with_key(
|
148
|
+
response = client.connection.post 'slas/policies', to_clean_json_with_key(policy, 'sla_policy')
|
149
149
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Create SLA Policy', message: Oj.load(response.body)}) unless response.status == 201
|
150
150
|
SLAs.new(Oj.load(response.body)['sla_policy'])
|
151
151
|
end
|
@@ -280,7 +280,7 @@ module Readiness
|
|
280
280
|
# reorder = Readiness::Zendesk::TicketForms.reorder!(client, [2, 23, 46, 50])
|
281
281
|
# pp reorder.count
|
282
282
|
# # => 4
|
283
|
-
def self.reorder(client, fids)
|
283
|
+
def self.reorder!(client, fids)
|
284
284
|
response = client.connection.put 'ticket_forms/reorder', { ticket_form_ids: fids }.to_json
|
285
285
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Clone a ticket form', id: form.id, message: Oj.load(response.body)}) unless response.status == 200
|
286
286
|
Oj.load(response.body)['ticket_form'].map { |f| TicketForms.new(f) }
|
@@ -108,7 +108,7 @@ module Readiness
|
|
108
108
|
end
|
109
109
|
|
110
110
|
##
|
111
|
-
# Lists the CCs on a ticket
|
111
|
+
# Lists the CCs on a ticket. If your system is not using followers, you need to use {collaborators}
|
112
112
|
#
|
113
113
|
# @author Jason Colyer
|
114
114
|
# @since 1.0.0
|
@@ -492,7 +492,7 @@ module Readiness
|
|
492
492
|
def self.delete_permanently!(client, tid)
|
493
493
|
response = client.connection.delete "deleted_tickets/#{tid}"
|
494
494
|
handle_request_error(1, 'Zendesk', response.status) unless response.status == 200
|
495
|
-
JobStatuses.new(Oj.load(response.body['job_status'])
|
495
|
+
JobStatuses.new(Oj.load(response.body)['job_status'])
|
496
496
|
end
|
497
497
|
|
498
498
|
##
|
@@ -523,7 +523,6 @@ module Readiness
|
|
523
523
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
524
524
|
body = Oj.load(response.body)
|
525
525
|
array += body['tickets'].map { |t| Tickets.new(t) }
|
526
|
-
break if limit != 0 && array.count >= (limit * 100)
|
527
526
|
break unless body['meta']['has_more']
|
528
527
|
|
529
528
|
opts = body['links'] ['next'].split('?').last
|
@@ -557,7 +556,6 @@ module Readiness
|
|
557
556
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
558
557
|
body = Oj.load(response.body)
|
559
558
|
array += body['tickets'].map { |t| Tickets.new(t) }
|
560
|
-
break if limit != 0 && array.count >= (limit * 100)
|
561
559
|
break unless body['meta']['has_more']
|
562
560
|
|
563
561
|
opts = body['links'] ['next'].split('?').last
|
@@ -742,7 +740,6 @@ module Readiness
|
|
742
740
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
743
741
|
body = Oj.load(response.body)
|
744
742
|
array += body['suspended_tickets']
|
745
|
-
break if limit != 0 && array.count >= (limit * 100)
|
746
743
|
break unless body['meta']['has_more']
|
747
744
|
|
748
745
|
opts = body['links'] ['next'].split('?').last
|
@@ -184,7 +184,7 @@ module Readiness
|
|
184
184
|
end
|
185
185
|
|
186
186
|
##
|
187
|
-
# Updates multiple triggers
|
187
|
+
# Updates multiple triggers
|
188
188
|
#
|
189
189
|
# @author Jason Colyer
|
190
190
|
# @since 1.0.0
|
@@ -211,7 +211,7 @@ module Readiness
|
|
211
211
|
data = { triggers: triggers.map { |t| to_hash(t).compact } }.to_json
|
212
212
|
response = client.connection.put('triggers/update_many', data)
|
213
213
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Update many triggers', message: Oj.load(response.body)}) unless response.status == 200
|
214
|
-
Oj.load(response.body)['
|
214
|
+
Oj.load(response.body)['triggers'].map { |t| Triggers.new(t) }
|
215
215
|
end
|
216
216
|
|
217
217
|
##
|
@@ -256,10 +256,10 @@ module Readiness
|
|
256
256
|
# config.token = 'test123abc'
|
257
257
|
# config.url = 'https://example.zendesk.com/api/v2'
|
258
258
|
# client = Readiness::Zendesk::Client.new(config)
|
259
|
-
# deletes = Readiness::Zendesk::Triggers.
|
259
|
+
# deletes = Readiness::Zendesk::Triggers.delete_many!(client, [25, 23, 27, 22])
|
260
260
|
# pp deletes
|
261
261
|
# # => true
|
262
|
-
def self.delete_many(client, tids)
|
262
|
+
def self.delete_many!(client, tids)
|
263
263
|
response = client.connection.delete("triggers/destroy_many?ids=#{tids.join(',')}")
|
264
264
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many triggers', message: Oj.load(response.body)}) unless response.status == 204
|
265
265
|
true
|
@@ -383,8 +383,8 @@ module Readiness
|
|
383
383
|
# # => 189304711533
|
384
384
|
def self.delete_permanently!(client, uid)
|
385
385
|
response = client.connection.delete "deleted_users/#{uid}"
|
386
|
-
handle_request_error(1, 'Zendesk', response.status) unless response.status == 200
|
387
|
-
Oj.load(response.body['deleted_user']
|
386
|
+
handle_request_error(1, 'Zendesk', response.status, { action: 'Delete user permanently', id: uid, message: Oj.load(response.body)}) unless response.status == 200
|
387
|
+
Oj.load(response.body)['deleted_user']
|
388
388
|
end
|
389
389
|
|
390
390
|
##
|
@@ -466,7 +466,7 @@ module Readiness
|
|
466
466
|
# pp deletes['value']
|
467
467
|
# # => 13
|
468
468
|
def self.deleted_count(client)
|
469
|
-
response = client.connection.get(
|
469
|
+
response = client.connection.get('deleted_users/count')
|
470
470
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
471
471
|
Oj.load(response.body)['count']
|
472
472
|
end
|
@@ -636,6 +636,8 @@ module Readiness
|
|
636
636
|
# pp tickets.count
|
637
637
|
# # => 2
|
638
638
|
def self.assigned_tickets(client, user)
|
639
|
+
return 0 if user.role == 'end-user'
|
640
|
+
|
639
641
|
array = []
|
640
642
|
opts = "page[size]=100"
|
641
643
|
loop do
|
@@ -736,7 +738,7 @@ module Readiness
|
|
736
738
|
# # => "82de0b044094f0c67893ac9fe64f1a99"
|
737
739
|
def self.create_or_update_many!(client, users)
|
738
740
|
data = { users: users.map { |u| to_hash(u).compact } }.to_json
|
739
|
-
response = client.connection.
|
741
|
+
response = client.connection.put('users/create_or_update_many', data)
|
740
742
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Create or update many users', message: Oj.load(response.body)}) unless response.status == 200
|
741
743
|
JobStatuses.new(Oj.load(response.body)['job_status'])
|
742
744
|
end
|
@@ -821,7 +823,7 @@ module Readiness
|
|
821
823
|
array = []
|
822
824
|
opts = "page[size]=100"
|
823
825
|
loop do
|
824
|
-
response = client.connection.get("
|
826
|
+
response = client.connection.get("users/#{user.id}/organization_memberships?#{opts}")
|
825
827
|
handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
|
826
828
|
body = Oj.load(response.body)
|
827
829
|
array += body['organization_memberships'].map { |o| OrganizationMemberships.new(o) }
|
@@ -840,9 +842,9 @@ module Readiness
|
|
840
842
|
# @since 1.0.0
|
841
843
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
842
844
|
# @param user [Object] An instance of {Readiness::Zendesk::Users}
|
843
|
-
# @param
|
845
|
+
# @param membership [Object] An instance of {Readiness::Zendesk::OrganizationMemberships}
|
844
846
|
# @return [Array]
|
845
|
-
# @see https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#set-
|
847
|
+
# @see https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#set-membership-as-default Zendesk API > Organization Memberships > Set Membership as Default
|
846
848
|
# @example
|
847
849
|
# require 'support_readiness'
|
848
850
|
# config = Readiness::Zendesk::Configuration.new
|
@@ -851,12 +853,12 @@ module Readiness
|
|
851
853
|
# config.url = 'https://example.zendesk.com/api/v2'
|
852
854
|
# client = Readiness::Zendesk::Client.new(config)
|
853
855
|
# user = Readiness::Zendesk::Users.find!(client, 123)
|
854
|
-
#
|
855
|
-
# member = Readiness::Zendesk::Users.set_default_organization!(client, user,
|
856
|
+
# membership = Readiness::Zendesk::Users.organization_memberships(client, user).last
|
857
|
+
# member = Readiness::Zendesk::Users.set_default_organization!(client, user, membership)
|
856
858
|
# pp member.id
|
857
859
|
# # => 4
|
858
|
-
def self.set_default_organization!(client, user,
|
859
|
-
response = client.connection.put("users/#{user.id}/
|
860
|
+
def self.set_default_organization!(client, user, membership)
|
861
|
+
response = client.connection.put("users/#{user.id}/organization_memberships/#{membership.id}/make_default")
|
860
862
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Set org as default', message: Oj.load(response.body)}) unless response.status == 200
|
861
863
|
OrganizationMemberships.new(Oj.load(response.body)['organization_membership'])
|
862
864
|
end
|
@@ -894,7 +896,7 @@ module Readiness
|
|
894
896
|
# @since 1.0.0
|
895
897
|
# @param client [Object] An instance of {Readiness::Zendesk::Client}
|
896
898
|
# @param user [Object] An instance of {Readiness::Zendesk::Users}
|
897
|
-
# @param
|
899
|
+
# @param membership [Object] An instance of {Readiness::Zendesk::GroupMemberships}
|
898
900
|
# @return [Array]
|
899
901
|
# @see https://developer.zendesk.com/api-reference/ticketing/groups/group_memberships/#set-membership-as-default Zendesk API > Group Memberships > Set Membership as Default
|
900
902
|
# @example
|
@@ -905,12 +907,12 @@ module Readiness
|
|
905
907
|
# config.url = 'https://example.zendesk.com/api/v2'
|
906
908
|
# client = Readiness::Zendesk::Client.new(config)
|
907
909
|
# user = Readiness::Zendesk::Users.find!(client, 123)
|
908
|
-
#
|
909
|
-
# member = Readiness::Zendesk::Users.set_default_group!(client, user,
|
910
|
+
# membership = Readiness::Zendesk::Users.group_memberships(client, user).last
|
911
|
+
# member = Readiness::Zendesk::Users.set_default_group!(client, user, membership)
|
910
912
|
# pp member.id
|
911
913
|
# # => 4
|
912
|
-
def self.set_default_group!(client, user,
|
913
|
-
response = client.connection.put("users/#{user.id}/group_memberships/#{
|
914
|
+
def self.set_default_group!(client, user, membership)
|
915
|
+
response = client.connection.put("users/#{user.id}/group_memberships/#{membership.id}/make_default")
|
914
916
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Set group as default', message: Oj.load(response.body)}) unless response.status == 200
|
915
917
|
GroupMemberships.new(Oj.load(response.body)['group_memberships'])
|
916
918
|
end
|
@@ -163,39 +163,36 @@ module Readiness
|
|
163
163
|
# view.title = "Kelly's tickets"
|
164
164
|
# view.description = 'Tickets that are assigned to Kelly'
|
165
165
|
# view.active = true
|
166
|
-
# view.position
|
167
|
-
# view.restriction: { type: 'User', id: '213977756' }
|
166
|
+
# view.position = 3
|
168
167
|
# view.conditions = {
|
169
|
-
# all
|
170
|
-
# { field
|
171
|
-
# { field: 'group_id', operator: 'is', value: '24000932' },
|
172
|
-
# { field: 'custom_fields_360011872073', operator: 'is', value: 'Canada' }
|
168
|
+
# "all" => [
|
169
|
+
# { "field" => 'status', "operator" => 'less_than', "value" => 'solved' }
|
173
170
|
# ],
|
174
|
-
# any
|
171
|
+
# "any" => []
|
175
172
|
# }
|
176
173
|
# view.execution = {
|
177
|
-
# columns
|
178
|
-
# { id
|
179
|
-
# { id
|
180
|
-
# { id
|
181
|
-
# ]
|
182
|
-
# group_by
|
183
|
-
# group_order
|
184
|
-
# sort_by
|
185
|
-
# sort_order
|
186
|
-
# group
|
187
|
-
# id
|
188
|
-
# title
|
189
|
-
# filterable
|
190
|
-
# sortable
|
191
|
-
# order
|
192
|
-
# }
|
193
|
-
# sort
|
194
|
-
# id
|
195
|
-
# title
|
196
|
-
# filterable
|
197
|
-
# sortable
|
198
|
-
# order
|
174
|
+
# "columns" => [
|
175
|
+
# { "id" => 'status', "title" => 'Status', "filterable" => true, "sortable" => true},
|
176
|
+
# { "id" => 'requester', "title" => 'Requester', "filterable" => true, "sortable" => true},
|
177
|
+
# { "id" => 'assignee', "title" => 'Assignee', "filterable" => true, "sortable" => true},
|
178
|
+
# ],
|
179
|
+
# "group_by" => 'assignee',
|
180
|
+
# "group_order" => 'desc',
|
181
|
+
# "sort_by" => 'status',
|
182
|
+
# "sort_order" => 'desc',
|
183
|
+
# "group" => {
|
184
|
+
# "id" => 'assignee',
|
185
|
+
# "title" => 'Assignee',
|
186
|
+
# "filterable" => true,
|
187
|
+
# "sortable" => true,
|
188
|
+
# "order" => 'desc'
|
189
|
+
# },
|
190
|
+
# "sort" => {
|
191
|
+
# "id" => 'status',
|
192
|
+
# "title" => 'Status',
|
193
|
+
# "filterable" => true,
|
194
|
+
# "sortable" => true,
|
195
|
+
# "order" => 'desc'
|
199
196
|
# }
|
200
197
|
# }
|
201
198
|
# create = Readiness::Zendesk::Views.create!(client, view)
|
@@ -259,7 +256,7 @@ module Readiness
|
|
259
256
|
# pp updates.map { |v| v.title }
|
260
257
|
# # => ["Canada tickets", "Mexico tickets"]
|
261
258
|
def self.update_many!(client, views)
|
262
|
-
data = { views: views.map { |v| create_or_update_object(
|
259
|
+
data = { views: views.map { |v| create_or_update_object(v) } }.to_json
|
263
260
|
response = client.connection.put('views/update_many', data)
|
264
261
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Update many views', message: Oj.load(response.body)}) unless response.status == 200
|
265
262
|
JobStatuses.new(Oj.load(response.body)['job_status'])
|
@@ -292,7 +289,7 @@ module Readiness
|
|
292
289
|
end
|
293
290
|
|
294
291
|
##
|
295
|
-
# Deletes multiple views
|
292
|
+
# Deletes multiple views
|
296
293
|
#
|
297
294
|
# @author Jason Colyer
|
298
295
|
# @since 1.0.0
|
@@ -310,7 +307,7 @@ module Readiness
|
|
310
307
|
# deletes = Readiness::Zendesk::Views.find!(client, [9873858, 9873843])
|
311
308
|
# pp deletes
|
312
309
|
# # => true
|
313
|
-
def self.delete_many(client, vids)
|
310
|
+
def self.delete_many!(client, vids)
|
314
311
|
response = client.connection.delete("views/destroy_many?ids=#{vids.join(',')}")
|
315
312
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many views', message: Oj.load(response.body)}) unless response.status == 204
|
316
313
|
true
|
@@ -345,7 +342,7 @@ module Readiness
|
|
345
342
|
output: converted['output']
|
346
343
|
}
|
347
344
|
}.compact.to_json
|
348
|
-
response = client.connection.post 'views/preview', data
|
345
|
+
response = client.connection.post 'views/preview', { view: data }.to_json
|
349
346
|
handle_request_error(1, 'Zendesk', response.status, { action: 'Preview a view', message: Oj.load(response.body)}) unless response.status == 200
|
350
347
|
Oj.load(response.body)
|
351
348
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_support_readiness
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Colyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|