gitlab_support_readiness 1.0.112 → 1.0.114

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: 8edd59d6823d5030545aa74b9ce7dba68822470283bc7384a6e071ea04003f94
4
- data.tar.gz: 8f0871238aa1a5d14879f036b1e0dbaeff16e3a507c17451b51461093ec4f843
3
+ metadata.gz: 93b6cb23dabf09e15246950b6429e48e2d4a97c0ebe5ad213108308c93fc5b4f
4
+ data.tar.gz: 49c4ee1dea90bc170e4bdb5296aa42d42cbd6c93a50d3afad5337ebe6c17908c
5
5
  SHA512:
6
- metadata.gz: bc6f3c2f6f6a4408f1639a2276c74305417af57536bf3f6a0d7b268c0c7b85283613b93ef9454c44bd6f7b7fcf465d58e85cc8ea9fda18dd2d83f85329576097
7
- data.tar.gz: b7af37d1003e016d0269015402781d45c9cb25827d66024f3a3d5e7911866e7b37cc723fcdbdb087921ac2032554ced35f0dc411f06b4382da9adbfb7bcd3f26
6
+ metadata.gz: 1f75945f11ba45b3751e3840e003044334db7b8909ab404f9c2d8bcda805323c5d79e5bb232028462432d0f319d06e5e772b2df3923f07b3985cb88a78a100ca
7
+ data.tar.gz: 01b0fa32643664ed94ce10ee8d07f8844cc7bdd091e7d9efe7912298f9733e6a92727d9dae4d70129c7477cf81b65feb1b76be9f680afa46a2799bcd6c70937a
@@ -249,73 +249,79 @@ module Readiness
249
249
  # @author Jason Colyer
250
250
  # @since 1.0.112
251
251
  # @param object [Object] The object to parse
252
- def self.convert_conditions(object)
252
+ def self.convert_conditions(object, attribute_name = 'conditions')
253
253
  %w[any all].each do |type|
254
- object['conditions'][type].each_with_index do |c, i|
254
+ object[attribute_name][type].each_with_index do |c, i|
255
255
  if c['field'] == 'group_id'
256
256
  group = Readiness::Zendesk::Groups.find_by_name(@zendesk_client, c['value'], @groups)
257
257
  unless group.nil?
258
- object['conditions'][type][i]['value'] = group.id.to_s
258
+ object[attribute_name][type][i]['value'] = group.id.to_s
259
259
  end
260
260
  end
261
261
  if c['field'] == 'organization_id'
262
- code = c['value']
262
+ code = c['value'].to_s
263
263
  next if code.empty?
264
264
  next if %r{^[0-9]+$}.match code
265
265
 
266
266
  search = Readiness::Zendesk::Search.organizations(@zendesk_client, "salesforce_id:#{code}")
267
267
  if search.count == 1
268
- object['conditions'][type][i]['value'] = search.first.id.to_s
268
+ object[attribute_name][type][i]['value'] = search.first.id.to_s
269
269
  end
270
270
  end
271
271
  if c['field'] == 'satisfaction_reason_code'
272
272
  reason = Readiness::Zendesk::SatisfactionReasons.find_by_name(@zendesk_client, c['value'], @satisfaction_reasons)
273
273
  unless reason.nil?
274
- object['conditions'][type][i]['value'] = reason.reason_code.to_s
274
+ object[attribute_name][type][i]['value'] = reason.reason_code.to_s
275
275
  end
276
276
  end
277
277
  if c['field'] == 'via_id'
278
278
  via_type = Readiness::Zendesk::ViaTypes.find_by_name(c['value'])
279
279
  unless via_type.nil?
280
- object['conditions'][type][i]['value'] = via_type.id.to_s
280
+ object[attribute_name][type][i]['value'] = via_type.id.to_s
281
281
  end
282
282
  end
283
283
  if c['field'] == 'requester_role'
284
284
  role = Readiness::Zendesk::RequesterRoles.find_by_name(c['value'])
285
285
  unless role.nil?
286
- object['conditions'][type][i]['value'] = role.id.to_s
286
+ object[attribute_name][type][i]['value'] = role.id.to_s
287
287
  end
288
288
  end
289
289
  if c['field'] == 'role'
290
290
  role = Readiness::Zendesk::TicketUserTypes.find_by_name(@zendesk_client, c['value'])
291
291
  unless role.nil?
292
- object['conditions'][type][i]['value'] = role.id.to_s
292
+ object[attribute_name][type][i]['value'] = role.id.to_s
293
293
  end
294
294
  end
295
295
  if c['field'] == 'assignee_id'
296
296
  unless ['', 'current_user', 'requester_id'].include? c['value']
297
297
  search = Readiness::Zendesk::Search.users(@zendesk_client, "email:#{c['value']}")
298
298
  if search.count == 1
299
- object['conditions'][type][i]['value'] = search.first.id.to_s
299
+ object[attribute_name][type][i]['value'] = search.first.id.to_s
300
300
  end
301
301
  end
302
302
  end
303
303
  if c['field'] == 'ticket_form_id'
304
- if c['value'] =~ /Form\:\ /
304
+ if c['value'].to_s =~ /Form\:\ /
305
305
  name = c['value'].split('Form: ').last
306
306
  ticket_form = Readiness::Zendesk::TicketForms.find_by_name(@zendesk_client, name, @ticket_forms)
307
- object['conditions'][type][i]['value'] = ticket_form.id.to_s
307
+ object[attribute_name][type][i]['value'] = ticket_form.id.to_s
308
308
  end
309
309
  end
310
- if c['field'] =~ /Field\:\ /
310
+ if c['field'].to_s =~ /Field\:\ /
311
311
  name = c['field'].split('Field: ').last
312
312
  ticket_field = Readiness::Zendesk::TicketFields.find_by_name(@zendesk_client, name, @ticket_fields)
313
- object['conditions'][type][i]['field'] = "custom_fields_#{ticket_field.id}"
313
+ if attribute_name == 'filter'
314
+ object[attribute_name][type][i]['field'] = "ticket_fields_#{ticket_field.id}"
315
+ field_option = ticket_field.custom_field_options.detect { |o| o.value == c['value'] }
316
+ object[attribute_name][type][i]['value'] = field_option.id.to_s unless field_option.nil?
317
+ else
318
+ object[attribute_name][type][i]['field'] = "custom_fields_#{ticket_field.id}"
319
+ end
314
320
  end
315
321
  if c['value'].to_s =~ /Schedule\:\ /
316
322
  name = c['value'].split('Schedule: ').last
317
323
  schedule = Readiness::Zendesk::Schedules.find_by_name(@zendesk_client, name, @schedules)
318
- object['conditions'][type][i]['value'] = schedule.id.to_s
324
+ object[attribute_name][type][i]['value'] = schedule.id.to_s
319
325
  end
320
326
  end
321
327
  end
@@ -48,6 +48,7 @@ module Readiness
48
48
  # pp diffs[:updates.count]
49
49
  # # => 1
50
50
  def self.compare(zendesk_client, location = 'data', verbose = false)
51
+ @zendesk_client = zendesk_client
51
52
  diffs = {
52
53
  updates: [],
53
54
  creates: []
@@ -133,11 +134,20 @@ module Readiness
133
134
  # pp repo.count
134
135
  # # => 35
135
136
  def self.gather(location = 'data')
137
+ @categories = Readiness::Zendesk::TriggerCategories.list(@zendesk_client)
138
+ @groups = Readiness::Zendesk::Groups.list(@zendesk_client)
139
+ @schedules = Readiness::Zendesk::Schedules.list(@zendesk_client)
140
+ @satisfaction_reasons = Readiness::Zendesk::SatisfactionReasons.list(@zendesk_client)
141
+ @targets = Readiness::Zendesk::Targets.list(@zendesk_client)
142
+ @ticket_fields = Readiness::Zendesk::TicketFields.list(@zendesk_client)
143
+ @ticket_forms = Readiness::Zendesk::TicketForms.list(@zendesk_client)
144
+ @webhooks = Readiness::Zendesk::Webhooks.list(@zendesk_client)
136
145
  @errors = []
137
146
  @location = location
138
147
  array = []
139
148
  Dir["#{@location}/*.yaml"].each do |f|
140
149
  object = YAML.safe_load_file(f)
150
+ object = convert_conditions(object, 'filter')
141
151
  validity_check(f, object)
142
152
  object['id'] = nil
143
153
  array.push(Zendesk::SLAs.new(object))
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.112
4
+ version: 1.0.114
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Colyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-03 00:00:00.000000000 Z
11
+ date: 2025-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport