gitlab_support_readiness 1.0.8 → 1.0.9
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 +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
|