gitlab_support_readiness 1.0.72 → 1.0.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 608e4abac283c9ec17c1266e82a8ca794786d394217c01fd43fba56cf39957a7
4
- data.tar.gz: d1ec11a8067986a9ff016a0a27e6166165c2f0254b46b8c2ab3ae9bd0555e0d8
3
+ metadata.gz: e46aedda90f84ce671f2d8d19160f07fd95a391659bdb9141d8c3e7f2b559e04
4
+ data.tar.gz: 746d13244c25e4dc918a3b3d85f262fb4affbd4e73e1cc305ea2a1220b005acf
5
5
  SHA512:
6
- metadata.gz: d50d37d1f116ffea6dc28b8f6b0ca94c9bba20f4be5ede6d75c8c5d808f25078abccc5889fdf57141c1ba2743a31392a1ffdadbe9dc6e3e58f85d43edd799a99
7
- data.tar.gz: 0f27556bbf1f662b7db6ae2b57f270e8dccfd36bfb3ba45ff4ff3305d86054e14e8f42486a2025bf0d7125668580771ce955f3ea6b0fb9bd70d9a2734d86a947
6
+ metadata.gz: cb42a7fea9bc27b6239bb376fcc2fdaa793c5b2615b115cfec1aad97fd9072a4bb0c72d6d6e0195084e13ff4ff4ace6dede4457ce646e3b305e6e9e46c9d2a15
7
+ data.tar.gz: 33a27e8f9ed7a7b507cdfd76cfafb4c2f1ac6b2cf9e995d1737c173ee18e81baf42b2f360bfb5230eb7005b59b4a1c144c683b2bbac86dbf5267b201883b1a70
@@ -0,0 +1,230 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module Zendesk
6
+ module Zendesk
7
+ ##
8
+ # Defines the class DynamicContent within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.73
12
+ class DynamicContent < Readiness::Client
13
+ attr_accessor :default_locale_id, :id, :name, :outdated, :placeholder
14
+
15
+ ##
16
+ # Creates a new {Readiness::Zendesk::DyanmicContent} instance
17
+ #
18
+ # @author Jason Colyer
19
+ # @since 1.0.73
20
+ # @param object [Object] An instance of {Readiness::Zendesk::DyanmicContent}
21
+ # @example
22
+ # require 'support_readiness'
23
+ # Readiness::Zendesk::DyanmicContent.new
24
+ def initialize(object = {})
25
+ @default_locale_id = object['default_locale_id']
26
+ @id = object['id']
27
+ @name = object['name']
28
+ @outdated = object['outdated']
29
+ @placeholder = object['placeholder']
30
+ end
31
+
32
+ ##
33
+ # Lists dynamic content.
34
+ #
35
+ # @author Jason Colyer
36
+ # @since 1.0.73
37
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
38
+ # @return [Array]
39
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#list-items Zendesk API > Dynamic Content Items > List items
40
+ # @example
41
+ # require 'support_readiness'
42
+ # config = Readiness::Zendesk::Configuration.new
43
+ # config.username = 'alice@example.com'
44
+ # config.token = 'test123abc'
45
+ # config.url = 'https://example.zendesk.com/api/v2'
46
+ # client = Readiness::Zendesk::Client.new(config)
47
+ # items = Readiness::Zendesk::DynamicContent.list(client)
48
+ # pp items.first.id
49
+ # # => 47
50
+ def self.list(client)
51
+ array = []
52
+ page = 1
53
+ loop do
54
+ response = client.connection.get("dynamic_content/items?page=#{page}")
55
+ handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
56
+ body = Oj.load(response.body)
57
+ array += body['items'].map { |i| DynamicContent.new(i) }
58
+ break if body['items'].count < 100
59
+
60
+ page += 1
61
+ end
62
+ array
63
+ end
64
+
65
+ ##
66
+ # Lists variants for a dynamic content.
67
+ #
68
+ # @author Jason Colyer
69
+ # @since 1.0.73
70
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
71
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DynamicContent}
72
+ # @return [Array]
73
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#list-variants Zendesk API > Dynamic Content Item Variants > List variants
74
+ # @example
75
+ # require 'support_readiness'
76
+ # config = Readiness::Zendesk::Configuration.new
77
+ # config.username = 'alice@example.com'
78
+ # config.token = 'test123abc'
79
+ # config.url = 'https://example.zendesk.com/api/v2'
80
+ # client = Readiness::Zendesk::Client.new(config)
81
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
82
+ # variants = Readiness::Zendesk::DynamicContent.variants(client, content)
83
+ # pp variants.first.content
84
+ # # => "Bonjour"
85
+ def self.variants(client, dynamic_content)
86
+ DynamicContentVariants.list(client, dynamic_content)
87
+ end
88
+
89
+ ##
90
+ # Locates a dynamic content item within Zendesk. This will not exit on error (except Authentication errors)
91
+ #
92
+ # @author Jason Colyer
93
+ # @since 1.0.73
94
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
95
+ # @param did [Integer] The dynamic content item ID to find
96
+ # @return [Hash]
97
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#show-item Zendesk API > Dynmaic Content Items > Show item
98
+ # @example
99
+ # require 'support_readiness'
100
+ # config = Readiness::Zendesk::Configuration.new
101
+ # config.username = 'alice@example.com'
102
+ # config.token = 'test123abc'
103
+ # config.url = 'https://example.zendesk.com/api/v2'
104
+ # client = Readiness::Zendesk::Client.new(config)
105
+ # content = Readiness::Zendesk::DynamicContent.find(client, 25)
106
+ # pp content.placeholder
107
+ # # => "{dc.subject}"
108
+ def self.find(client, did)
109
+ response = client.connection.get("dynamic_content/items/#{did}")
110
+ handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: did }) unless response.status == 200
111
+ return DynamicContent.new(Oj.load(response.body)['item']) if response.status == 200
112
+
113
+ Oj.load(response.body)
114
+ end
115
+
116
+ ##
117
+ # Locates a dynamic content item within Zendesk. This will exit on error
118
+ #
119
+ # @author Jason Colyer
120
+ # @since 1.0.73
121
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
122
+ # @param did [Integer] The dynamic content item ID to find
123
+ # @return [Hash]
124
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#show-item Zendesk API > Dynmaic Content Items > Show item
125
+ # @example
126
+ # require 'support_readiness'
127
+ # config = Readiness::Zendesk::Configuration.new
128
+ # config.username = 'alice@example.com'
129
+ # config.token = 'test123abc'
130
+ # config.url = 'https://example.zendesk.com/api/v2'
131
+ # client = Readiness::Zendesk::Client.new(config)
132
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 25)
133
+ # pp content.placeholder
134
+ # # => "{dc.subject}"
135
+ def self.find!(client, did)
136
+ response = client.connection.get("dynamic_content/items/#{did}")
137
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Find dynamic content', id: did }) unless response.status == 200
138
+ DynamicContent.new(Oj.load(response.body)['item'])
139
+ end
140
+
141
+ ##
142
+ # Creates a dynamic content item within Zendesk. Will exit if unsuccessful
143
+ #
144
+ # @author Jason Colyer
145
+ # @since 1.0.73
146
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
147
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
148
+ # @param variants [Array] An array of {Readiness::Zendesk::DynamicContentVariants} instances
149
+ # @return [Object]
150
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#create-item Zendesk API > Dynmaic Content Items > Create item
151
+ # @example
152
+ # require 'support_readiness'
153
+ # config = Readiness::Zendesk::Configuration.new
154
+ # config.username = 'alice@example.com'
155
+ # config.token = 'test123abc'
156
+ # config.url = 'https://example.zendesk.com/api/v2'
157
+ # client = Readiness::Zendesk::Client.new(config)
158
+ # content = Readiness::Zendesk::DynamicContent.new
159
+ # content.default_locale_id = 1
160
+ # content.name = 'Hello'
161
+ # variant = Readiness::Zendesk::DyanmicContentVariants.new
162
+ # variant.content = 'Hello'
163
+ # variant.default = true
164
+ # variant.locale_id = 1
165
+ # create = Readiness::Zendesk::DynamicContent.create!(client, content, [variant])
166
+ # pp create.id
167
+ # # => 8
168
+ def self.create!(client, dynamic_content, variants)
169
+ object = to_hash(dynamic_content).compact
170
+ object['variants'] = variants.map { |t| to_hash(t).compact }
171
+ response = client.connection.post 'dynamic_content/items', { item: object }.to_json
172
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Create dynamic content', message: Oj.load(response.body)}) unless response.status == 201
173
+ DynamicContent.new(Oj.load(response.body)['item'])
174
+ end
175
+
176
+ ##
177
+ # Updates a dynamic content item within Zendesk. Will exit if unsuccessful
178
+ #
179
+ # @author Jason Colyer
180
+ # @since 1.0.73
181
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
182
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
183
+ # @return [Object]
184
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#update-item Zendesk API > Dynmaic Content Items > Update item
185
+ # @example
186
+ # require 'support_readiness'
187
+ # config = Readiness::Zendesk::Configuration.new
188
+ # config.username = 'alice@example.com'
189
+ # config.token = 'test123abc'
190
+ # config.url = 'https://example.zendesk.com/api/v2'
191
+ # client = Readiness::Zendesk::Client.new(config)
192
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
193
+ # content.name = 'Hello 2'
194
+ # update = Readiness::Zendesk::DynamicContent.update!(client, content)
195
+ # pp create.name
196
+ # # => "Hello 2"
197
+ def self.update!(client, dynamic_content)
198
+ response = client.connection.put "dynamic_content/items/#{dynamic_content.id}", to_clean_json_with_key(dynamic_content, 'item')
199
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Update dynamic content', id: dynamic_content.id, message: Oj.load(response.body)}) unless response.status == 200
200
+ DynamicContent.new(Oj.load(response.body)['item'])
201
+ end
202
+
203
+ ##
204
+ # Deletes a dynamic content item within Zendesk. Will exit if unsuccessful
205
+ #
206
+ # @author Jason Colyer
207
+ # @since 1.0.73
208
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
209
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
210
+ # @return [Boolean]
211
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#delete-item Zendesk API > Dynmaic Content Items > Delete item
212
+ # @example
213
+ # require 'support_readiness'
214
+ # config = Readiness::Zendesk::Configuration.new
215
+ # config.username = 'alice@example.com'
216
+ # config.token = 'test123abc'
217
+ # config.url = 'https://example.zendesk.com/api/v2'
218
+ # client = Readiness::Zendesk::Client.new(config)
219
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
220
+ # delete = Readiness::Zendesk::DynamicContent.delete!(client, content)
221
+ # pp delete
222
+ # # => true
223
+ def self.delete!(client, dynamic_content)
224
+ response = client.connection.delete "dynamic_content/items/#{dynamic_content.id}"
225
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a dynamic content', id: dynamic_content.id, message: Oj.load(response.body)}) unless response.status == 204
226
+ true
227
+ end
228
+ end
229
+ end
230
+ end
@@ -0,0 +1,273 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module Zendesk
6
+ module Zendesk
7
+ ##
8
+ # Defines the class DynamicContentVariants within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.73
12
+ class DynamicContentVariants < Readiness::Client
13
+ attr_accessor :active, :content, :default, :id, :locale_id, :outdated
14
+
15
+ ##
16
+ # Creates a new {Readiness::Zendesk::DynamicContentVariants} instance
17
+ #
18
+ # @author Jason Colyer
19
+ # @since 1.0.73
20
+ # @param object [Object] An instance of {Readiness::Zendesk::DynamicContentVariants}
21
+ # @example
22
+ # require 'support_readiness'
23
+ # Readiness::Zendesk::DynamicContentVariants.new
24
+ def initialize(object = {})
25
+ @active = object['active']
26
+ @content = object['content']
27
+ @default = object['default']
28
+ @id = object['id']
29
+ @locale_id = object['locale_id']
30
+ @outdated = object['outdated']
31
+ end
32
+
33
+ ##
34
+ # Lists dynamic content variants.
35
+ #
36
+ # @author Jason Colyer
37
+ # @since 1.0.73
38
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
39
+ # @return [Array]
40
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content/#list-items Zendesk API > Dynamic Content Items > List items
41
+ # @example
42
+ # require 'support_readiness'
43
+ # config = Readiness::Zendesk::Configuration.new
44
+ # config.username = 'alice@example.com'
45
+ # config.token = 'test123abc'
46
+ # config.url = 'https://example.zendesk.com/api/v2'
47
+ # client = Readiness::Zendesk::Client.new(config)
48
+ # items = Readiness::Zendesk::DynamicContent.list(client)
49
+ # pp items.first.id
50
+ # # => 47
51
+ def self.list(client, dynamic_content)
52
+ response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants")
53
+ handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
54
+ body = Oj.load(response.body)
55
+ body['variants'].map { |v| DynamicContentVariants.new(v) }
56
+ end
57
+
58
+ ##
59
+ # Locates a dynamic content item variant within Zendesk. This will not exit on error (except Authentication errors)
60
+ #
61
+ # @author Jason Colyer
62
+ # @since 1.0.73
63
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
64
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DynamicContent}
65
+ # @param vid [Integer] The ID of the dynamnic content variant
66
+ # @return [Hash]
67
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#show-variant Zendesk API > Dynmaic Content Item Variants > Show variant
68
+ # @example
69
+ # require 'support_readiness'
70
+ # config = Readiness::Zendesk::Configuration.new
71
+ # config.username = 'alice@example.com'
72
+ # config.token = 'test123abc'
73
+ # config.url = 'https://example.zendesk.com/api/v2'
74
+ # client = Readiness::Zendesk::Client.new(config)
75
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
76
+ # variant = Readiness::Zendesk::DynamicContentVariants.find(client, content, 123456)
77
+ # pp variant.content
78
+ # # => "Bonjour"
79
+ def self.find(client, dynamic_content, vid)
80
+ response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants/#{vid}")
81
+ handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: vid }) unless response.status == 200
82
+ return DynamicContentVariants.new(Oj.load(response.body)['variant']) if response.status == 200
83
+
84
+ Oj.load(response.body)
85
+ end
86
+
87
+ ##
88
+ # Locates a dynamic content item variant within Zendesk. This will exit on error
89
+ #
90
+ # @author Jason Colyer
91
+ # @since 1.0.73
92
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
93
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DynamicContent}
94
+ # @param vid [Integer] The ID of the dynamnic content variant
95
+ # @return [Hash]
96
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#show-variant Zendesk API > Dynmaic Content Item Variants > Show variant
97
+ # @example
98
+ # require 'support_readiness'
99
+ # config = Readiness::Zendesk::Configuration.new
100
+ # config.username = 'alice@example.com'
101
+ # config.token = 'test123abc'
102
+ # config.url = 'https://example.zendesk.com/api/v2'
103
+ # client = Readiness::Zendesk::Client.new(config)
104
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
105
+ # variant = Readiness::Zendesk::DynamicContentVariants.find!(client, content, 123456)
106
+ # pp variant.content
107
+ # # => "Bonjour"
108
+ def self.find!(client, dynamic_content, vid)
109
+ response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants/#{vid}")
110
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Find dynamic content variant', id: vid }) unless response.status == 200
111
+ DynamicContentVariants.new(Oj.load(response.body)['variant'])
112
+ end
113
+
114
+ ##
115
+ # Creates a dynamic content item variant within Zendesk. Will exit if unsuccessful
116
+ #
117
+ # @author Jason Colyer
118
+ # @since 1.0.73
119
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
120
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
121
+ # @param variant [Object] An instance of {Readiness::Zendesk::DynamicContentVariants}
122
+ # @return [Object]
123
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#create-variant Zendesk API > Dynmaic Content Item Vatiants > Create variant
124
+ # @example
125
+ # require 'support_readiness'
126
+ # config = Readiness::Zendesk::Configuration.new
127
+ # config.username = 'alice@example.com'
128
+ # config.token = 'test123abc'
129
+ # config.url = 'https://example.zendesk.com/api/v2'
130
+ # client = Readiness::Zendesk::Client.new(config)
131
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
132
+ # variant = Readiness::Zendesk::DyanmicContentVariants.new
133
+ # variant.content = 'Ciao'
134
+ # variant.default = true
135
+ # variant.locale_id = 26
136
+ # create = Readiness::Zendesk::DynamicContentVariants.create!(client, content, variant)
137
+ # pp create.id
138
+ # # => 123456
139
+ def self.create!(client, dynamic_content, variant)
140
+ response = client.connection.post "dynamic_content/items/#{dynamic_content.id}/variants/", to_clean_json_with_key(variant, 'variant')
141
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Create variant', message: Oj.load(response.body)}) unless response.status == 201
142
+ DynamicContentVariants.new(Oj.load(response.body)['variant'])
143
+ end
144
+
145
+ ##
146
+ # Creates many dynamic content item variant within Zendesk. Will exit if unsuccessful
147
+ #
148
+ # @author Jason Colyer
149
+ # @since 1.0.73
150
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
151
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
152
+ # @param variants [Array] An array of {Readiness::Zendesk::DynamicContentVariants} instances
153
+ # @return [Object]
154
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#create-many-variants Zendesk API > Dynmaic Content Item Vatiants > Create many variant
155
+ # @example
156
+ # require 'support_readiness'
157
+ # config = Readiness::Zendesk::Configuration.new
158
+ # config.username = 'alice@example.com'
159
+ # config.token = 'test123abc'
160
+ # config.url = 'https://example.zendesk.com/api/v2'
161
+ # client = Readiness::Zendesk::Client.new(config)
162
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
163
+ # variant1 = Readiness::Zendesk::DyanmicContentVariants.new
164
+ # variant1.content = 'Ciao'
165
+ # variant1.default = false
166
+ # variant1.locale_id = 26
167
+ # variant2 = Readiness::Zendesk::DyanmicContentVariants.new
168
+ # variant2.content = 'Bonjour'
169
+ # variant2.default = false
170
+ # variant2.locale_id = 27
171
+ # creates = Readiness::Zendesk::DynamicContentVariants.create_many!(client, content, [variant1, variant2])
172
+ # pp creates.map { |c| c.id }
173
+ # # => [123455, 123456]
174
+ def self.create_many!(client, dynamic_content, variants)
175
+ data = { variants: variants.map { |t| to_hash(t).compact } }.to_json
176
+ response = client.connection.put("dynamic_content/items/#{dynamic_content.id}/variants/create_many", data)
177
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Create many variants', message: Oj.load(response.body)}) unless response.status == 201
178
+ Oj.load(response.body)['variants'].map { |v| DynamicContentVariants.new(v) }
179
+ end
180
+
181
+ ##
182
+ # Updates a dynamic content item variant within Zendesk. Will exit if unsuccessful
183
+ #
184
+ # @author Jason Colyer
185
+ # @since 1.0.73
186
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
187
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
188
+ # @param variant [Object] An instance of {Readiness::Zendesk::DynamicContentVariants}
189
+ # @return [Object]
190
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#update-variant Zendesk API > Dynmaic Content Item Variants > Update variant
191
+ # @example
192
+ # require 'support_readiness'
193
+ # config = Readiness::Zendesk::Configuration.new
194
+ # config.username = 'alice@example.com'
195
+ # config.token = 'test123abc'
196
+ # config.url = 'https://example.zendesk.com/api/v2'
197
+ # client = Readiness::Zendesk::Client.new(config)
198
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
199
+ # variant = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123456)
200
+ # variant.content = 'Ciao!'
201
+ # variant.default = true
202
+ # variant.locale_id = 26
203
+ # update = Readiness::Zendesk::DynamicContentVariants.update!(client, content, variant)
204
+ # pp update.content
205
+ # # => "Ciao!"
206
+ def self.update!(client, dynamic_content, variant)
207
+ response = client.connection.put "dynamic_content/items/#{dynamic_content.id}/variants/#{variant.id}", to_clean_json_with_key(variant, 'variant')
208
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Update dynamic content variant', id: variant.id, message: Oj.load(response.body)}) unless response.status == 200
209
+ DynamicContentVariants.new(Oj.load(response.body)['variant'])
210
+ end
211
+
212
+ ##
213
+ # Updates amanydynamic content item variants within Zendesk. Will exit if unsuccessful
214
+ #
215
+ # @author Jason Colyer
216
+ # @since 1.0.73
217
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
218
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
219
+ # @param variants [Array] An array of {Readiness::Zendesk::DynamicContentVariants} instances
220
+ # @return [Array]
221
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#update-many-variants Zendesk API > Dynmaic Content Item Variants > Update many variant
222
+ # @example
223
+ # require 'support_readiness'
224
+ # config = Readiness::Zendesk::Configuration.new
225
+ # config.username = 'alice@example.com'
226
+ # config.token = 'test123abc'
227
+ # config.url = 'https://example.zendesk.com/api/v2'
228
+ # client = Readiness::Zendesk::Client.new(config)
229
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
230
+ # variant1 = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123456)
231
+ # variant1.content = 'Ciao!'
232
+ # variant2 = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123455)
233
+ # variant2.content = 'Bonjour!'
234
+ # updates = Readiness::Zendesk::DynamicContentVariants.update_many!(client, content, [variant1, variant2])
235
+ # pp updates.map { u| u.content }
236
+ # # => ["Ciao!", "Bonjour!"]
237
+ def self.update_many!(client, dynamic_content, variants)
238
+ data = { variants: variants.map { |t| to_hash(t).compact } }.to_json
239
+ response = client.connection.put("dynamic_content/items/#{dynamic_content.id}/variants/update_many", data)
240
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Update many variants', message: Oj.load(response.body)}) unless response.status == 200
241
+ Oj.load(response.body)['variants'].map { |v| DynamicContentVariants.new(v) }
242
+ end
243
+
244
+ ##
245
+ # Deletes a dynamic content item variant within Zendesk. Will exit if unsuccessful
246
+ #
247
+ # @author Jason Colyer
248
+ # @since 1.0.73
249
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
250
+ # @param dynamic_content [Object] An instance of {Readiness::Zendesk::DyanmicContent}
251
+ # @param variant [Object] An instance of {Readiness::Zendesk::DynamicContentVariants}
252
+ # @return [Boolean]
253
+ # @see https://developer.zendesk.com/api-reference/ticketing/ticket-management/dynamic_content_item_variants/#delete-variant Zendesk API > Dynmaic Content Item Variantss > Delete variant
254
+ # @example
255
+ # require 'support_readiness'
256
+ # config = Readiness::Zendesk::Configuration.new
257
+ # config.username = 'alice@example.com'
258
+ # config.token = 'test123abc'
259
+ # config.url = 'https://example.zendesk.com/api/v2'
260
+ # client = Readiness::Zendesk::Client.new(config)
261
+ # content = Readiness::Zendesk::DynamicContent.find!(client, 8)
262
+ # variant = Readiness::Zendesk::DynamicContentVariants.find!(client, content, 123456)
263
+ # delete = Readiness::Zendesk::DynamicContentVariants.delete!(client, content, variant)
264
+ # pp delete
265
+ # # => true
266
+ def self.delete!(client, dynamic_content, variant)
267
+ response = client.connection.delete "dynamic_content/items/#{dynamic_content.id}/variants/#{variant.id}"
268
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a dynamic content variant', id: variant.id, message: Oj.load(response.body)}) unless response.status == 204
269
+ true
270
+ end
271
+ end
272
+ end
273
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module Zendesk
6
+ module Zendesk
7
+ ##
8
+ # Defines the class Locales within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.73
12
+ class Locales < Readiness::Client
13
+ attr_accessor :id, :locale, :name
14
+
15
+ ##
16
+ # Creates a new {Readiness::Zendesk::Locales} instance
17
+ #
18
+ # @author Jason Colyer
19
+ # @since 1.0.73
20
+ # @param object [Object] An instance of {Readiness::Zendesk::Locales}
21
+ # @example
22
+ # require 'support_readiness'
23
+ # Readiness::Zendesk::Locales.new
24
+ def initialize(object = {})
25
+ @id = object['id']
26
+ @locale = object['locale']
27
+ @name = object['name']
28
+ end
29
+
30
+ ##
31
+ # Lists locales.
32
+ #
33
+ # @author Jason Colyer
34
+ # @since 1.0.73
35
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
36
+ # @return [Array]
37
+ # @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/locales/#list-locales Zendesk API > Locales > List locales
38
+ # @example
39
+ # require 'support_readiness'
40
+ # config = Readiness::Zendesk::Configuration.new
41
+ # config.username = 'alice@example.com'
42
+ # config.token = 'test123abc'
43
+ # config.url = 'https://example.zendesk.com/api/v2'
44
+ # client = Readiness::Zendesk::Client.new(config)
45
+ # items = Readiness::Zendesk::Locales.list(client)
46
+ # pp items.first.locale
47
+ # # => "en-US"
48
+ def self.list(client)
49
+ response = client.connection.get('locales')
50
+ handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
51
+ body = Oj.load(response.body)
52
+ body['locales'].map { |l| Locales.new(l) }
53
+ end
54
+
55
+ ##
56
+ # Locates a locale within Zendesk. This will exit on error
57
+ #
58
+ # @author Jason Colyer
59
+ # @since 1.0.73
60
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
61
+ # @param lid [Integer] The locale ID to find
62
+ # @return [Object] An instance of {Readiness::Zendesk::Locales}
63
+ # @see https://developer.zendesk.com/api-reference/ticketing/account-configuration/locales/#show-locale Zendesk API > Locales > Show locale
64
+ # @example
65
+ # require 'support_readiness'
66
+ # config = Readiness::Zendesk::Configuration.new
67
+ # config.username = 'alice@example.com'
68
+ # config.token = 'test123abc'
69
+ # config.url = 'https://example.zendesk.com/api/v2'
70
+ # client = Readiness::Zendesk::Client.new(config)
71
+ # locale = Readiness::Zendesk::Locales.find!(client, 8)
72
+ # pp automation.name
73
+ # # => "Deutsch"
74
+ def self.find!(client, lid)
75
+ response = client.connection.get("locales/#{lid}")
76
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Find locale', id: lid }) unless response.status == 200
77
+ Locales.new(Oj.load(response.body)['locale'])
78
+ end
79
+ end
80
+ end
81
+ end
@@ -13,9 +13,12 @@ module Readiness
13
13
  require "#{__dir__}/zendesk/automations"
14
14
  require "#{__dir__}/zendesk/client"
15
15
  require "#{__dir__}/zendesk/configuration"
16
+ require "#{__dir__}/zendesk/dynamic_content"
17
+ require "#{__dir__}/zendesk/dynamic_content_variants"
16
18
  require "#{__dir__}/zendesk/group_memberships"
17
19
  require "#{__dir__}/zendesk/groups"
18
20
  require "#{__dir__}/zendesk/job_statuses"
21
+ require "#{__dir__}/zendesk/locales"
19
22
  require "#{__dir__}/zendesk/macros"
20
23
  require "#{__dir__}/zendesk/organization_fields"
21
24
  require "#{__dir__}/zendesk/organization_memberships"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_support_readiness
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.72
4
+ version: 1.0.73
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Colyer
@@ -389,9 +389,12 @@ files:
389
389
  - lib/support_readiness/zendesk/automations.rb
390
390
  - lib/support_readiness/zendesk/client.rb
391
391
  - lib/support_readiness/zendesk/configuration.rb
392
+ - lib/support_readiness/zendesk/dynamic_content.rb
393
+ - lib/support_readiness/zendesk/dynamic_content_variants.rb
392
394
  - lib/support_readiness/zendesk/group_memberships.rb
393
395
  - lib/support_readiness/zendesk/groups.rb
394
396
  - lib/support_readiness/zendesk/job_statuses.rb
397
+ - lib/support_readiness/zendesk/locales.rb
395
398
  - lib/support_readiness/zendesk/macros.rb
396
399
  - lib/support_readiness/zendesk/organization_fields.rb
397
400
  - lib/support_readiness/zendesk/organization_memberships.rb