gitlab_support_readiness 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/lib/support_readiness/client.rb +108 -0
  3. data/lib/support_readiness/gitlab/client.rb +64 -0
  4. data/lib/support_readiness/gitlab/configuration.rb +46 -0
  5. data/lib/support_readiness/gitlab/groups.rb +180 -0
  6. data/lib/support_readiness/gitlab/issues.rb +410 -0
  7. data/lib/support_readiness/gitlab/namespaces.rb +190 -0
  8. data/lib/support_readiness/gitlab/projects.rb +510 -0
  9. data/lib/support_readiness/gitlab/repositories.rb +267 -0
  10. data/lib/support_readiness/gitlab/users.rb +488 -0
  11. data/lib/support_readiness/gitlab.rb +19 -0
  12. data/lib/support_readiness/pagerduty/client.rb +66 -0
  13. data/lib/support_readiness/pagerduty/configuration.rb +43 -0
  14. data/lib/support_readiness/pagerduty/escalation_policies.rb +123 -0
  15. data/lib/support_readiness/pagerduty/schedules.rb +223 -0
  16. data/lib/support_readiness/pagerduty/services.rb +132 -0
  17. data/lib/support_readiness/pagerduty.rb +16 -0
  18. data/lib/support_readiness/redis.rb +90 -0
  19. data/lib/support_readiness/zendesk/articles.rb +210 -0
  20. data/lib/support_readiness/zendesk/automations.rb +304 -0
  21. data/lib/support_readiness/zendesk/client.rb +84 -0
  22. data/lib/support_readiness/zendesk/configuration.rb +49 -0
  23. data/lib/support_readiness/zendesk/group_memberships.rb +256 -0
  24. data/lib/support_readiness/zendesk/groups.rb +249 -0
  25. data/lib/support_readiness/zendesk/job_statuses.rb +188 -0
  26. data/lib/support_readiness/zendesk/macros.rb +267 -0
  27. data/lib/support_readiness/zendesk/organization_fields.rb +233 -0
  28. data/lib/support_readiness/zendesk/organization_memberships.rb +257 -0
  29. data/lib/support_readiness/zendesk/organizations.rb +515 -0
  30. data/lib/support_readiness/zendesk/roles.rb +194 -0
  31. data/lib/support_readiness/zendesk/search.rb +159 -0
  32. data/lib/support_readiness/zendesk/sla_policies.rb +232 -0
  33. data/lib/support_readiness/zendesk/ticket_fields.rb +222 -0
  34. data/lib/support_readiness/zendesk/ticket_forms.rb +290 -0
  35. data/lib/support_readiness/zendesk/tickets.rb +854 -0
  36. data/lib/support_readiness/zendesk/triggers.rb +269 -0
  37. data/lib/support_readiness/zendesk/users.rb +946 -0
  38. data/lib/support_readiness/zendesk/views.rb +469 -0
  39. data/lib/support_readiness/zendesk.rb +31 -0
  40. data/lib/support_readiness.rb +29 -0
  41. metadata +215 -0
@@ -0,0 +1,469 @@
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 Views within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.0
12
+ class Views < Readiness::Client
13
+ attr_accessor :active, :conditions, :default, :description, :execution, :id, :position, :restriction, :title
14
+
15
+ ##
16
+ # Creates a new {Readiness::Zendesk::Views} instance
17
+ #
18
+ # @author Jason Colyer
19
+ # @since 1.0.0
20
+ # @param object [Object] An instance of {Readiness::Zendesk::Views}
21
+ # @example
22
+ # require 'support_readiness'
23
+ # Readiness::Zendesk::Views.new
24
+ def initialize(object = {})
25
+ @active = object['active']
26
+ @conditions = object['conditions']
27
+ @default = object['default']
28
+ @description = object['description']
29
+ @execution = object['execution']
30
+ @id = object['id']
31
+ @position = object['position']
32
+ @restriction = object['restriction']
33
+ @title = object['title']
34
+ end
35
+
36
+ ##
37
+ # Lists views
38
+ #
39
+ # @author Jason Colyer
40
+ # @since 1.0.0
41
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
42
+ # @return [Array]
43
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-views Zendesk API > Viuews > List Views
44
+ # @example
45
+ # require 'support_readiness'
46
+ # config = Readiness::Zendesk::Configuration.new
47
+ # config.username = 'alice@example.com'
48
+ # config.token = 'test123abc'
49
+ # config.url = 'https://example.zendesk.com/api/v2'
50
+ # client = Readiness::Zendesk::Client.new(config)
51
+ # views = Readiness::Zendesk::Views.list(client)
52
+ # pp views.first.title
53
+ # # => "Tickets updated less than 12 Hours"
54
+ def self.list(client)
55
+ array = []
56
+ opts = "page[size]=100"
57
+ loop do
58
+ response = client.connection.get("views?#{opts}")
59
+ handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
60
+ body = Oj.load(response.body)
61
+ array += body['views'].map { |t| Views.new(t) }
62
+ break unless body['meta']['has_more']
63
+
64
+ opts = body['links'] ['next'].split('?').last
65
+ end
66
+ array
67
+ end
68
+
69
+ ##
70
+ # Locates a view within Zendesk. This will not exit on error (except Authentication errors)
71
+ #
72
+ # @author Jason Colyer
73
+ # @since 1.0.0
74
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
75
+ # @param vid [Integer] The view ID to find
76
+ # @return [Hash]
77
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#show-view Zendesk API > Views > Show View
78
+ # @example
79
+ # require 'support_readiness'
80
+ # config = Readiness::Zendesk::Configuration.new
81
+ # config.username = 'alice@example.com'
82
+ # config.token = 'test123abc'
83
+ # config.url = 'https://example.zendesk.com/api/v2'
84
+ # client = Readiness::Zendesk::Client.new(config)
85
+ # view = Readiness::Zendesk::Views.find(client, 25)
86
+ # pp view.title
87
+ # # => "Tickets updated less than 12 Hours"
88
+ def self.find(client, vid)
89
+ response = client.connection.get("views/#{vid}")
90
+ handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: vid }) unless response.status == 200
91
+ return Views.new(Oj.load(response.body)['view']) if response.status == 200
92
+
93
+ Oj.load(response.body)
94
+ end
95
+
96
+ ##
97
+ # Locates a view within Zendesk. This will exit on error
98
+ #
99
+ # @author Jason Colyer
100
+ # @since 1.0.0
101
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
102
+ # @param vid [Integer] The view ID to find
103
+ # @return [Object] An instance of {Readiness::Zendesk::Views}
104
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#show-view Zendesk API > Views > Show View
105
+ # @example
106
+ # require 'support_readiness'
107
+ # config = Readiness::Zendesk::Configuration.new
108
+ # config.username = 'alice@example.com'
109
+ # config.token = 'test123abc'
110
+ # config.url = 'https://example.zendesk.com/api/v2'
111
+ # client = Readiness::Zendesk::Client.new(config)
112
+ # view = Readiness::Zendesk::Views.find!(client, 25)
113
+ # pp view.title
114
+ # # => "Tickets updated less than 12 Hours"
115
+ def self.find!(client, vid)
116
+ response = client.connection.get("views/#{vid}")
117
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Find view', id: vid }) unless response.status == 200
118
+ Views.new(Oj.load(response.body)['view'])
119
+ end
120
+
121
+ ##
122
+ # Locates up to 100 views within Zendesk.
123
+ #
124
+ # @author Jason Colyer
125
+ # @since 1.0.0
126
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
127
+ # @param vids [Array] The view IDs to find
128
+ # @return [Array]
129
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-views-by-id Zendesk API > Views > List Views By ID
130
+ # @example
131
+ # require 'support_readiness'
132
+ # config = Readiness::Zendesk::Configuration.new
133
+ # config.username = 'alice@example.com'
134
+ # config.token = 'test123abc'
135
+ # config.url = 'https://example.zendesk.com/api/v2'
136
+ # client = Readiness::Zendesk::Client.new(config)
137
+ # views = Readiness::Zendesk::Views.find_many(client, [25, 26])
138
+ # pp views.map { |v| v.title }
139
+ # # => ["Tickets updated less than 12 Hours", "Tickets updated more than 12 Hours"]
140
+ def self.find_many(client, vids)
141
+ response = client.connection.get("views/show_many?ids=#{vids.join(',')}")
142
+ handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: vids }) unless response.status == 200
143
+ Oj.load(response.body)['views'].map { |o| Views.new(o) }
144
+ end
145
+
146
+ ##
147
+ # Creates a view. Will exit if unsuccessful
148
+ #
149
+ # @author Jason Colyer
150
+ # @since 1.0.0
151
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
152
+ # @param view [Object] An instance of {Readiness::Zendesk::Views}
153
+ # @return [Object] An instance of {Readiness::Zendesk::Views}
154
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#create-viewr Zendesk API > Views > Create View
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
+ # view = Readiness::Zendesk::Views.new
163
+ # view.title = "Kelly's tickets"
164
+ # view.description = 'Tickets that are assigned to Kelly'
165
+ # view.active = true
166
+ # view.position: 3
167
+ # view.restriction: { type: 'User', id: '213977756' }
168
+ # view.conditions = {
169
+ # all: [
170
+ # { field: 'status', operator: 'less_than', value: 'solved' },
171
+ # { field: 'group_id', operator: 'is', value: '24000932' },
172
+ # { field: 'custom_fields_360011872073', operator: 'is', value: 'Canada' }
173
+ # ],
174
+ # any: []
175
+ # }
176
+ # view.execution = {
177
+ # columns: [
178
+ # { id: 'status', title: 'Status', filterable: true, sortable: true},
179
+ # { id: 'requester', title: 'Requester', filterable: true, sortable: true},
180
+ # { id: 'assignee', title: 'Assignee', filterable: true, sortable: true},
181
+ # ]
182
+ # group_by: 'assignee',
183
+ # group_order: 'desc',
184
+ # sort_by: 'status',
185
+ # sort_order: 'desc',
186
+ # group: {
187
+ # id: 'assignee',
188
+ # title: 'Assignee',
189
+ # filterable: true,
190
+ # sortable: true,
191
+ # order: 'desc'
192
+ # }
193
+ # sort: {
194
+ # id: 'status',
195
+ # title: 'Status',
196
+ # filterable: true,
197
+ # sortable: true,
198
+ # order: 'desc'
199
+ # }
200
+ # }
201
+ # create = Readiness::Zendesk::Views.create!(client, view)
202
+ # pp create.id
203
+ # # => 9873843
204
+ def self.create!(client, view)
205
+ response = client.connection.post 'views', { view: create_or_update_object(view) }.to_json
206
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Create view', message: Oj.load(response.body)}) unless response.status == 201
207
+ Views.new(Oj.load(response.body)['view'])
208
+ end
209
+
210
+ ##
211
+ # Updates a view. Will exit if unsuccessful
212
+ #
213
+ # @author Jason Colyer
214
+ # @since 1.0.0
215
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
216
+ # @param view [Object] An instance of {Readiness::Zendesk::Views}
217
+ # @return [Object] An instance of {Readiness::Zendesk::Views}
218
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#update-view Zendesk API > Views > Update View
219
+ # @example
220
+ # require 'support_readiness'
221
+ # config = Readiness::Zendesk::Configuration.new
222
+ # config.username = 'alice@example.com'
223
+ # config.token = 'test123abc'
224
+ # config.url = 'https://example.zendesk.com/api/v2'
225
+ # client = Readiness::Zendesk::Client.new(config)
226
+ # view = Readiness::Zendesk::Views.find!(client, 9873843)
227
+ # view.title = 'Canada tickets'
228
+ # update = Readiness::Zendesk::Views.update!(client, view)
229
+ # pp create.title
230
+ # # => "Canada tickets"
231
+ def self.update!(client, view)
232
+ response = client.connection.put "views/#{view.id}", { view: create_or_update_object(view) }.to_json
233
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Update view', id: view.id, message: Oj.load(response.body)}) unless response.status == 200
234
+ Views.new(Oj.load(response.body)['view'])
235
+ end
236
+
237
+ ##
238
+ # Updates multiple views via a batch job
239
+ #
240
+ # @author Jason Colyer
241
+ # @since 1.0.0
242
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
243
+ # @param views [Array] An array of {Readiness::Zendesk::Views} instances
244
+ # @return [object] A {Readiness::Zendesk::JobStatuses} instance
245
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#update-many-views Zendesk API > Views > Update Many Views
246
+ # @example
247
+ # require 'support_readiness'
248
+ # config = Readiness::Zendesk::Configuration.new
249
+ # config.username = 'alice@example.com'
250
+ # config.token = 'test123abc'
251
+ # config.url = 'https://example.zendesk.com/api/v2'
252
+ # client = Readiness::Zendesk::Client.new(config)
253
+ # view1 = Readiness::Zendesk::Views.find!(client, 9873843)
254
+ # view1.title = 'Canada tickets'
255
+ # view2 = Readiness::Zendesk::Views.find!(client, 9873858)
256
+ # view2.title = 'Mexico tickets'
257
+ # views = [view1, view2]
258
+ # updates = Readiness::Zendesk::Views.update_many!(client, views)
259
+ # pp updates.map { |v| v.title }
260
+ # # => ["Canada tickets", "Mexico tickets"]
261
+ def self.update_many!(client, views)
262
+ data = { views: views.map { |v| create_or_update_object(view) } }.to_json
263
+ response = client.connection.put('views/update_many', data)
264
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Update many views', message: Oj.load(response.body)}) unless response.status == 200
265
+ JobStatuses.new(Oj.load(response.body)['job_status'])
266
+ end
267
+
268
+ ##
269
+ # Deletes a view. Will exit if unsuccessful
270
+ #
271
+ # @author Jason Colyer
272
+ # @since 1.0.0
273
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
274
+ # @param view [Object] An instance of {Readiness::Zendesk::Views}
275
+ # @return [Boolean]
276
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#delete-view Zendesk API > Views > Delete View
277
+ # @example
278
+ # require 'support_readiness'
279
+ # config = Readiness::Zendesk::Configuration.new
280
+ # config.username = 'alice@example.com'
281
+ # config.token = 'test123abc'
282
+ # config.url = 'https://example.zendesk.com/api/v2'
283
+ # client = Readiness::Zendesk::Client.new(config)
284
+ # view = Readiness::Zendesk::Views.find!(client, 9873858)
285
+ # delete = Readiness::Zendesk::Views.delete!(client, views)
286
+ # pp delete
287
+ # # => true
288
+ def self.delete!(client, view)
289
+ response = client.connection.delete "views/#{view.id}"
290
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a view', id: view.id, message: Oj.load(response.body)}) unless response.status == 204
291
+ true
292
+ end
293
+
294
+ ##
295
+ # Deletes multiple views via a batch job
296
+ #
297
+ # @author Jason Colyer
298
+ # @since 1.0.0
299
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
300
+ # @param vids [Array] An array of view IDs
301
+ # @return [Boolean]
302
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#bulk-delete-views Zendesk API > Views > Bulk Delete Views
303
+ # @example
304
+ # require 'support_readiness'
305
+ # config = Readiness::Zendesk::Configuration.new
306
+ # config.username = 'alice@example.com'
307
+ # config.token = 'test123abc'
308
+ # config.url = 'https://example.zendesk.com/api/v2'
309
+ # client = Readiness::Zendesk::Client.new(config)
310
+ # deletes = Readiness::Zendesk::Views.find!(client, [9873858, 9873843])
311
+ # pp deletes
312
+ # # => true
313
+ def self.delete_many(client, vids)
314
+ response = client.connection.delete("views/destroy_many?ids=#{vids.join(',')}")
315
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many views', message: Oj.load(response.body)}) unless response.status == 204
316
+ true
317
+ end
318
+
319
+ ##
320
+ # Previews what a view would look like
321
+ #
322
+ # @author Jason Colyer
323
+ # @since 1.0.0
324
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
325
+ # @param view [object] An instance of {Readiness::Zendesk::Views}
326
+ # @return [Hash]
327
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#preview-views Zendesk API > Views > Preview View
328
+ # @example
329
+ # require 'support_readiness'
330
+ # config = Readiness::Zendesk::Configuration.new
331
+ # config.username = 'alice@example.com'
332
+ # config.token = 'test123abc'
333
+ # config.url = 'https://example.zendesk.com/api/v2'
334
+ # client = Readiness::Zendesk::Client.new(config)
335
+ # view = Readiness::Zendesk::Views.find!(client, 9873858)
336
+ # preview = Readiness::Zendesk::Views.preview!(client, view)
337
+ # pp preview['rows']['tickets'].first['id']
338
+ # # => 12851
339
+ def self.preview!(client, view)
340
+ converted = create_or_update_object(view)
341
+ data = {
342
+ view: {
343
+ all: converted['all'],
344
+ any: converted['any'],
345
+ output: converted['output']
346
+ }
347
+ }.compact.to_json
348
+ response = client.connection.post 'views/preview', data
349
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Preview a view', message: Oj.load(response.body)}) unless response.status == 200
350
+ Oj.load(response.body)
351
+ end
352
+
353
+ ##
354
+ # Get the tickets in a view
355
+ #
356
+ # @author Jason Colyer
357
+ # @since 1.0.0
358
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
359
+ # @param view [object] An instance of {Readiness::Zendesk::Views}
360
+ # @return [Array]
361
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-tickets-from-a-view Zendesk API > Views > List Tickets From a View
362
+ # @example
363
+ # require 'support_readiness'
364
+ # config = Readiness::Zendesk::Configuration.new
365
+ # config.username = 'alice@example.com'
366
+ # config.token = 'test123abc'
367
+ # config.url = 'https://example.zendesk.com/api/v2'
368
+ # client = Readiness::Zendesk::Client.new(config)
369
+ # view = Readiness::Zendesk::Views.find!(client, 9873858)
370
+ # tickets = Readiness::Zendesk::Views.tickets(client, view)
371
+ # pp tickets.first.id
372
+ # # => 12851
373
+ def self.tickets(client, view)
374
+ response = client.connection.get "views/#{view.id}/tickets"
375
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Get tickets from a view', message: Oj.load(response.body)}) unless response.status == 200
376
+ Oj.load(response.body)['tickets']
377
+ end
378
+
379
+ ##
380
+ # Display count information for a view
381
+ #
382
+ # @author Jason Colyer
383
+ # @since 1.0.0
384
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
385
+ # @param view [object] An instance of {Readiness::Zendesk::Views}
386
+ # @return [Hash]
387
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#count-tickets-in-view Zendesk API > Views > Count Tickets in View
388
+ # @example
389
+ # require 'support_readiness'
390
+ # config = Readiness::Zendesk::Configuration.new
391
+ # config.username = 'alice@example.com'
392
+ # config.token = 'test123abc'
393
+ # config.url = 'https://example.zendesk.com/api/v2'
394
+ # client = Readiness::Zendesk::Client.new(config)
395
+ # view = Readiness::Zendesk::Views.find!(client, 9873858)
396
+ # count = Readiness::Zendesk::Views.count_tickets(client, view)
397
+ # pp value['value']
398
+ # # => 719
399
+ def self.count_tickets(client, view)
400
+ response = client.connection.get "views/#{view.id}/count"
401
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Count tickets in a view', message: Oj.load(response.body)}) unless response.status == 200
402
+ Oj.load(response.body)['view_count']
403
+ end
404
+
405
+ ##
406
+ # Display count information for multiple views
407
+ #
408
+ # @author Jason Colyer
409
+ # @since 1.0.0
410
+ # @param client [Object] An instance of {Readiness::Zendesk::Client}
411
+ # @param vids [Array] The view IDs to get count information for
412
+ # @return [Array]
413
+ # @see https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#count-tickets-in-views Zendesk API > Views > Count Tickets in Views
414
+ # @example
415
+ # require 'support_readiness'
416
+ # config = Readiness::Zendesk::Configuration.new
417
+ # config.username = 'alice@example.com'
418
+ # config.token = 'test123abc'
419
+ # config.url = 'https://example.zendesk.com/api/v2'
420
+ # client = Readiness::Zendesk::Client.new(config)
421
+ # count = Readiness::Zendesk::Views.count_tickets_in_many(client, [25, 78])
422
+ # pp value.map { |v| v['value'] }
423
+ # # => [719, nil]
424
+ def self.count_tickets_in_many(client, vids)
425
+ response = client.connection.get "views/count_many?ids=#{vids.join(',')}"
426
+ handle_request_error(1, 'Zendesk', response.status, { action: 'Count tickets in views', message: Oj.load(response.body)}) unless response.status == 200
427
+ Oj.load(response.body)['view_counts']
428
+ end
429
+
430
+ ##
431
+ # Returns a Hash used in creating/updating views, as the formatting does not match the Zendesk list functions
432
+ #
433
+ # @author Jason Colyer
434
+ # @since 1.0.0
435
+ # @param view [Object] An instance of {Readiness::Zendesk::Views}
436
+ # @return [Hash]
437
+ # @example
438
+ # require 'support_readiness'
439
+ # config = Readiness::Zendesk::Configuration.new
440
+ # config.username = 'alice@example.com'
441
+ # config.token = 'test123abc'
442
+ # config.url = 'https://example.zendesk.com/api/v2'
443
+ # client = Readiness::Zendesk::Client.new(config)
444
+ # view = Readiness::Zendesk::Views.find!(client, 9873858)
445
+ # object = Readiness::Zendesk::Views.create_or_update_object(view)
446
+ # pp object[:id]
447
+ # # => 9873858
448
+ def self.create_or_update_object(view)
449
+ {
450
+ id: view.id,
451
+ title: view.title,
452
+ description: view.description,
453
+ active: view.active,
454
+ position: view.position,
455
+ restriction: view.restriction,
456
+ all: view.conditions['all'],
457
+ any: view.conditions['any'],
458
+ output: {
459
+ columns: view.execution['columns'].map { |c| c['id'] },
460
+ group_by: view.execution['group_by'],
461
+ group_order: view.execution['group_order'],
462
+ sort_by: view.execution['sort_by'],
463
+ sort_order: view.execution['sort_order']
464
+ }
465
+ }.compact
466
+ end
467
+ end
468
+ end
469
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ ##
6
+ # Defines the module Zendesk
7
+ # @author Jason Colyer
8
+ # @since 1.0.0
9
+ module Zendesk
10
+ require "#{__dir__}/zendesk/articles"
11
+ require "#{__dir__}/zendesk/automations"
12
+ require "#{__dir__}/zendesk/client"
13
+ require "#{__dir__}/zendesk/configuration"
14
+ require "#{__dir__}/zendesk/group_memberships"
15
+ require "#{__dir__}/zendesk/groups"
16
+ require "#{__dir__}/zendesk/job_statuses"
17
+ require "#{__dir__}/zendesk/macros"
18
+ require "#{__dir__}/zendesk/organization_fields"
19
+ require "#{__dir__}/zendesk/organization_memberships"
20
+ require "#{__dir__}/zendesk/organizations"
21
+ require "#{__dir__}/zendesk/roles"
22
+ require "#{__dir__}/zendesk/search"
23
+ require "#{__dir__}/zendesk/sla_policies"
24
+ require "#{__dir__}/zendesk/ticket_fields"
25
+ require "#{__dir__}/zendesk/ticket_forms"
26
+ require "#{__dir__}/zendesk/tickets"
27
+ require "#{__dir__}/zendesk/triggers"
28
+ require "#{__dir__}/zendesk/users"
29
+ require "#{__dir__}/zendesk/views"
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ $VERBOSE = nil
4
+
5
+ ##
6
+ # Defines the module Readiness
7
+ # @author Jason Colyer
8
+ # @since 1.0.0
9
+ module Readiness
10
+ VERSION = File.read('VERSION').chomp
11
+ end
12
+
13
+ require 'active_support'
14
+ require 'active_support/time'
15
+ require 'base64'
16
+ require 'cgi'
17
+ require 'digest'
18
+ require 'faraday'
19
+ require 'faraday/multipart'
20
+ require 'faraday/retry'
21
+ require 'json'
22
+ require 'oj'
23
+ require 'redis'
24
+ require 'restforce'
25
+ require "#{__dir__}/support_readiness/client"
26
+ require "#{__dir__}/support_readiness/gitlab"
27
+ require "#{__dir__}/support_readiness/pagerduty"
28
+ require "#{__dir__}/support_readiness/redis"
29
+ require "#{__dir__}/support_readiness/zendesk"