peoplegroup-connectors 0.1.94 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ce77a29706646a2d586a67fd5339e0cd108389672c9c8a0bad75a65166214f3
4
- data.tar.gz: 4e7f6cf42a7e17458c102c27ae0f1648cff700b991654951f13494829a9114e1
3
+ metadata.gz: 52119b48d43178c73a802c6eb5361c052447bd6ee72a5a2a6d48b7fac5d19b41
4
+ data.tar.gz: 61af8cffaa0bbd000489f8ff493147bfbf2f7ffbd6e67a3daa93189f11305e2f
5
5
  SHA512:
6
- metadata.gz: d77b9503817d157b458c9add7e1147360dccaa3aa6803904afc5de6fc2838c60e804e29a9ef984bc8e75d34dabf8456ad1ace5bc649ce99a4e67655be97cc462
7
- data.tar.gz: 4a8f83ca5d6d6bf08b924d715a27bb656fd10686c144b3fba3603d61effdeeb8d4d5a5dc9d19bb47a7f6fb75759c068b986bd1c2b972d5cbdd35ca7fcad40d10
6
+ metadata.gz: 4b5baabf6fa07a5e8c4c080682afddc5145d9419ece8d4c5df4b07f17ffdc0cbbd2ab1569148d136b749af31b0e03594e71ab936a0cf33b7e52e786d8bb25bcc
7
+ data.tar.gz: 331e0a2ecd5514ee3ed39a351d4c91fb4d7d3ac12c7a11227199810854a92324cf501d4ca18958ce2ca22719664927a5db504fff16cde6a88a2f00007974b545
data/README.md CHANGED
@@ -31,6 +31,8 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
31
31
 
32
32
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
33
33
 
34
+ For local development and manual testing, copy the contents of the `.env.example` file to a new file called `.env` and fill-in the environment variable values. You will then be able to run a REPL by running `bundle exec bin/console` from the root of the repository.
35
+
34
36
  ## Contributing and Code of Conduct
35
37
 
36
38
  Bug reports and pull requests are welcome on GitLab at https://gitlab.com/gitlab-com/people-group/peopleops-eng/connectors-gem. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
@@ -15,16 +15,21 @@ module PeopleGroup
15
15
  end
16
16
 
17
17
  def get_employee_details(id)
18
- employees.find { |emp| emp['id'] == id.to_s }
18
+ employees.find { |emp| emp['employeeNumber'] == id.to_s }
19
19
  end
20
20
  alias_method :get_team_member_details, :get_employee_details
21
21
 
22
22
  def get_employee_details!(id)
23
23
  employee_details = get_employee_details(id)
24
- raise EmployeeNotFoundError, "No employee found with id #{id}" if employee_details.nil?
24
+ raise EmployeeNotFoundError, "No team member found with employee number #{id}" if employee_details.nil?
25
25
 
26
26
  employee_details
27
27
  end
28
+ alias_method :get_team_member_details!, :get_employee_details!
29
+
30
+ def bamboo_id!(employee_number)
31
+ get_team_member_details!(employee_number)['id']
32
+ end
28
33
 
29
34
  def search_employee(name)
30
35
  return if name.empty?
@@ -67,6 +72,7 @@ module PeopleGroup
67
72
  def search_team_member_by_email(email)
68
73
  team_members.find { |team_member| team_member['workEmail']&.downcase == email&.downcase }
69
74
  end
75
+ alias_method :slack_email_lookup_with_fallback, :search_team_member_by_email
70
76
 
71
77
  def search_team_member_by_email!(email)
72
78
  team_member = search_team_member_by_email(email)
@@ -74,22 +80,7 @@ module PeopleGroup
74
80
 
75
81
  team_member
76
82
  end
77
-
78
- def slack_email_lookup_with_fallback(email)
79
- file_path = File.join(__dir__, '../../../data/email_mapper.yml')
80
- email_mapper = YAML.load_file(file_path)
81
- email_hit = email_mapper.find { |mapping| mapping['slack_email'] == email.delete_suffix('@gitlab.com') }
82
- email = "#{email_hit['bamboo_email']}@gitlab.com" if email_hit
83
-
84
- employees.find { |employee| employee['workEmail'] == email }
85
- end
86
-
87
- def slack_email_lookup_with_fallback!(email)
88
- employee = slack_email_lookup_with_fallback(email)
89
- raise EmployeeNotFoundError, "No employee found with Slack email #{email}" if employee.nil?
90
-
91
- employee
92
- end
83
+ alias_method :slack_email_lookup_with_fallback!, :search_team_member_by_email!
93
84
 
94
85
  def team_members_by_department(department)
95
86
  active_and_current_team_members.select { |team_member| team_member['department'] == department }
@@ -123,7 +114,7 @@ module PeopleGroup
123
114
 
124
115
  def people_managers_in_functions(departments: [], divisions: [])
125
116
  active_and_current_team_members.select do |team_member|
126
- (departments.include?(team_member['department']) || divisions.include?(team_member['division'])) && has_direct_reports?(team_member['id'])
117
+ (departments.include?(team_member['department']) || divisions.include?(team_member['division'])) && has_direct_reports?(team_member['employeeNumber'])
127
118
  end
128
119
  end
129
120
 
@@ -133,17 +124,17 @@ module PeopleGroup
133
124
  while direct_reports_to_check.present?
134
125
  current_node = direct_reports_to_check.shift
135
126
  reports_to_return << current_node
136
- direct_reports_to_check.concat(direct_reports_for(current_node['id']))
127
+ direct_reports_to_check.concat(direct_reports_for(current_node['employeeNumber']))
137
128
  end
138
129
  reports_to_return
139
130
  end
140
131
 
141
132
  def direct_reports_for(id)
142
- active_and_current_team_members.select { |team_member| team_member['supervisorEId'] == id.to_s }
133
+ active_and_current_team_members.select { |team_member| team_member['supervisorId'] == id.to_s }
143
134
  end
144
135
 
145
136
  def has_direct_reports?(id)
146
- active_and_current_team_members.any? { |team_member| team_member['supervisorEId'] == id.to_s }
137
+ active_and_current_team_members.any? { |team_member| team_member['supervisorId'] == id.to_s }
147
138
  end
148
139
 
149
140
  def reports_in_departments(departments, exclude_email)
@@ -163,17 +154,26 @@ module PeopleGroup
163
154
  def create_employee(employee_details_hash)
164
155
  retry_on_error { @client.employee.add(employee_details_hash) }
165
156
  end
157
+ alias_method :create_team_member, :create_employee
166
158
 
167
- def update_employee(employee_id, employee_details_hash)
168
- retry_on_error { @client.employee.update(employee_id, employee_details_hash) }
159
+ def update_employee(employee_number, employee_details_hash)
160
+ id = bamboo_id!(employee_number)
161
+ retry_on_error { @client.employee.update(id, employee_details_hash) }
169
162
  end
163
+ alias_method :update_team_member, :update_employee
170
164
 
171
165
  def departments
172
- meta_fields.detect { |res| res['name'] == 'Department' }.dig('options').each_with_object([]) { |option, array| array << option['name'] if option['archived'] == 'no' } || []
166
+ meta_fields
167
+ .detect { |res| res['name'] == 'Department' }
168
+ .dig('options')
169
+ .each_with_object([]) { |option, array| array << option['name'] if option['archived'] == 'no' } || []
173
170
  end
174
171
 
175
172
  def divisions
176
- meta_fields.detect { |res| res['name'] == 'Division' }.dig('options').each_with_object([]) { |option, array| array << option['name'] if option['archived'] == 'no' } || []
173
+ meta_fields
174
+ .detect { |res| res['name'] == 'Division' }
175
+ .dig('options')
176
+ .each_with_object([]) { |option, array| array << option['name'] if option['archived'] == 'no' } || []
177
177
  end
178
178
 
179
179
  def locations
@@ -213,30 +213,36 @@ module PeopleGroup
213
213
  end
214
214
  alias_method :active_and_current_team_members, :active_and_current_employees
215
215
 
216
- def add_stock_options(employee_id, data)
217
- retry_on_error { @client.employee.add_table_row(employee_id, 'customEquity', data) }
216
+ def add_stock_options(employee_number, data)
217
+ id = bamboo_id!(employee_number)
218
+ retry_on_error { @client.employee.add_table_row(id, 'customEquity', data) }
218
219
  end
219
220
 
220
- def stock_options_data(employee_id)
221
- retry_on_error { @client.employee.table_data(employee_id, 'customEquity') }
221
+ def stock_options_data(employee_number)
222
+ id = bamboo_id!(employee_number)
223
+ retry_on_error { @client.employee.table_data(id, 'customEquity') }
222
224
  end
223
225
 
224
- def add_job_details(employee_id, data)
225
- retry_on_error { @client.employee.add_table_row(employee_id, 'jobInfo', data) }
226
+ def add_job_details(employee_number, data)
227
+ id = bamboo_id!(employee_number)
228
+ retry_on_error { @client.employee.add_table_row(id, 'jobInfo', data) }
226
229
  end
227
230
 
228
- def update_job_details(employee_id, data)
229
- current_data = job_details(employee_id) # it should only be one row as we just created this user
231
+ def update_job_details(employee_number, data)
232
+ id = bamboo_id!(employee_number)
233
+ current_data = job_details(employee_number) # it should only be one row as we just created this user
230
234
  row_id = current_data.first.dig('id')
231
- retry_on_error { @client.employee.update_table_row(employee_id, 'jobInfo', row_id, data) }
235
+ retry_on_error { @client.employee.update_table_row(id, 'jobInfo', row_id, data) }
232
236
  end
233
237
 
234
- def add_compensation_details(employee_id, data)
235
- retry_on_error { @client.employee.add_table_row(employee_id, 'compensation', data) }
238
+ def add_compensation_details(employee_number, data)
239
+ id = bamboo_id!(employee_number)
240
+ retry_on_error { @client.employee.add_table_row(id, 'compensation', data) }
236
241
  end
237
242
 
238
- def employment_statuses(employee_id)
239
- retry_on_error { @client.employee.table_data(employee_id, 'employmentStatus') }
243
+ def employment_statuses(employee_number)
244
+ id = bamboo_id!(employee_number)
245
+ retry_on_error { @client.employee.table_data(id, 'employmentStatus') }
240
246
  end
241
247
 
242
248
  def time_off_types
@@ -247,17 +253,19 @@ module PeopleGroup
247
253
  time_off_types['timeOffTypes'].find { |type| type['name'] == name }
248
254
  end
249
255
 
250
- def time_off_estimate(employee_id, end_date = Date.today)
251
- retry_on_error { @client.employee.time_off_estimate(employee_id, end_date) }
256
+ def time_off_estimate(employee_number, end_date = Date.today)
257
+ id = bamboo_id!(employee_number)
258
+ retry_on_error { @client.employee.time_off_estimate(id, end_date) }
252
259
  end
253
260
 
254
- def time_off_adjustment(employee_id, options)
255
- retry_on_error { @client.employee.time_off_balance_adjustment(employee_id, options) }
261
+ def time_off_adjustment(employee_number, options)
262
+ id = bamboo_id!(employee_number)
263
+ retry_on_error { @client.employee.time_off_balance_adjustment(id, options) }
256
264
  end
257
265
 
258
- def accrued_days(employee_id)
266
+ def accrued_days(employee_number)
259
267
  employee_accruals_type = time_off_type('Employee Accruals')
260
- total_accruals = time_off_estimate(employee_id).find { |type| type['timeOffType'] == employee_accruals_type['id'] }
268
+ total_accruals = time_off_estimate(employee_number).find { |type| type['timeOffType'] == employee_accruals_type['id'] }
261
269
 
262
270
  total_accruals['balance'].to_f
263
271
  end
@@ -266,75 +274,88 @@ module PeopleGroup
266
274
  @time_off_policies ||= retry_on_error { @client.meta.time_off_policies }
267
275
  end
268
276
 
269
- def employee_time_off_policies(employee_id)
270
- retry_on_error { @client.employee.time_off_policies(employee_id) }
277
+ def employee_time_off_policies(employee_number)
278
+ id = bamboo_id!(employee_number)
279
+ retry_on_error { @client.employee.time_off_policies(id) }
271
280
  end
272
281
  alias_method :team_member_time_off_policies, :employee_time_off_policies
273
282
 
274
- def add_time_off_policy(employee_id, time_off_policy_id, accrual_start_date)
283
+ def add_time_off_policy(employee_number, time_off_policy_id, accrual_start_date)
275
284
  policies = [{ timeOffPolicyId: time_off_policy_id, accrualStartDate: accrual_start_date }]
285
+ id = bamboo_id!(employee_number)
276
286
 
277
- retry_on_error { @client.employee.add_time_off_policies(employee_id, policies) }
287
+ retry_on_error { @client.employee.add_time_off_policies(id, policies) }
278
288
  end
279
289
 
280
- def remove_time_off_policy(employee_id, time_off_policy_id)
290
+ def remove_time_off_policy(employee_number, time_off_policy_id)
281
291
  # A nil accrual start date removes a policy assignment
282
292
  # Reference: https://documentation.bamboohr.com/reference#time-off-assign-time-off-policies-for-an-employee
283
- add_time_off_policy(employee_id, time_off_policy_id, nil)
293
+ add_time_off_policy(employee_number, time_off_policy_id, nil)
284
294
  end
285
295
 
286
- def job_details(employee_id)
287
- retry_on_error { @client.employee.table_data(employee_id, 'jobInfo') }
296
+ def job_details(employee_number)
297
+ id = bamboo_id!(employee_number)
298
+ retry_on_error { @client.employee.table_data(id, 'jobInfo') }
288
299
  end
289
300
 
290
- def resumes_folder_id(employee_id)
291
- @resumes_folder_id ||= files(employee_id).dig('categories').find { |folder| folder['name'] == 'Resumes and Applications' }.dig('id')
301
+ def resumes_folder_id(employee_number)
302
+ @resumes_folder_id ||= files(employee_number).dig('categories').find { |folder| folder['name'] == 'Resumes and Applications' }.dig('id')
292
303
  end
293
304
 
294
- def contract_folder_id(employee_id)
295
- @contract_folder_id ||= files(employee_id).dig('categories').find { |folder| folder['name'] == 'Contracts & Changes' }.dig('id')
305
+ def contract_folder_id(employee_number)
306
+ @contract_folder_id ||= files(employee_number).dig('categories').find { |folder| folder['name'] == 'Contracts & Changes' }.dig('id')
296
307
  end
297
308
 
298
- def add_file(employee_id, file_name, file, folder_id)
309
+ def add_file(employee_number, file_name, file, folder_id)
310
+ id = bamboo_id!(employee_number)
311
+
299
312
  options = {
300
313
  category: folder_id,
301
314
  fileName: file_name,
302
315
  share: 'yes',
303
316
  file: file
304
317
  }
305
- retry_on_error { @client.employee.add_file(employee_id, options) }
318
+ retry_on_error { @client.employee.add_file(id, options) }
306
319
  end
307
320
 
308
- def add_employment_status(employee_id, data)
309
- retry_on_error { @client.employee.add_table_row(employee_id, 'employmentStatus', data) }
321
+ def add_employment_status(employee_number, data)
322
+ id = bamboo_id!(employee_number)
323
+ retry_on_error { @client.employee.add_table_row(id, 'employmentStatus', data) }
310
324
  end
311
325
 
312
- def add_currency_conversion(employee_id, data)
313
- retry_on_error { @client.employee.add_table_row(employee_id, 'customCurrencyConversion', data) }
326
+ def add_currency_conversion(employee_number, data)
327
+ id = bamboo_id!(employee_number)
328
+ retry_on_error { @client.employee.add_table_row(id, 'customCurrencyConversion', data) }
314
329
  end
315
330
 
316
- def add_on_target_earnings(employee_id, data)
317
- retry_on_error { @client.employee.add_table_row(employee_id, 'customOnTargetEarnings', data) }
331
+ def add_on_target_earnings(employee_number, data)
332
+ id = bamboo_id!(employee_number)
333
+ retry_on_error { @client.employee.add_table_row(id, 'customOnTargetEarnings', data) }
318
334
  end
319
335
 
320
- def add_signing_bonus(employee_id, data)
321
- retry_on_error { @client.employee.add_table_row(employee_id, 'customBonus', data) }
336
+ def add_signing_bonus(employee_number, data)
337
+ id = bamboo_id!(employee_number)
338
+ retry_on_error { @client.employee.add_table_row(id, 'customBonus', data) }
322
339
  end
323
340
 
324
- def add_family_member(employee_id, data)
325
- retry_on_error { @client.employee.add_table_row(employee_id, 'customFamilyMember', data) }
341
+ def add_family_member(employee_number, data)
342
+ id = bamboo_id!(employee_number)
343
+ retry_on_error { @client.employee.add_table_row(id, 'customFamilyMember', data) }
326
344
  end
327
345
 
328
- def add_additional_data(employee_id, data)
329
- retry_on_error { @client.employee.add_table_row(employee_id, 'customAdditionalInformation1', data) }
346
+ def add_additional_data(employee_number, data)
347
+ id = bamboo_id!(employee_number)
348
+ retry_on_error { @client.employee.add_table_row(id, 'customAdditionalInformation1', data) }
330
349
  end
331
350
 
332
- def additional_data(employee_id)
333
- retry_on_error { @client.employee.table_data(employee_id, 'employmentStatus') }
351
+ def additional_data(employee_number)
352
+ id = bamboo_id!(employee_number)
353
+ retry_on_error { @client.employee.table_data(id, 'employmentStatus') }
334
354
  end
335
355
 
336
- def currency_conversion(employee_id)
337
- retry_on_error { @client.employee.table_data(employee_id, 'customCurrencyConversion') }
356
+ def currency_conversion(employee_number)
357
+ id = bamboo_id!(employee_number)
358
+ retry_on_error { @client.employee.table_data(id, 'customCurrencyConversion') }
338
359
  end
339
360
 
340
361
  def add_bonus(employee_number, comment)
@@ -364,8 +385,9 @@ module PeopleGroup
364
385
  @meta_fields ||= retry_on_error { @client.meta.lists }
365
386
  end
366
387
 
367
- def files(employee_id)
368
- @files ||= retry_on_error { @client.employee.files(employee_id) }
388
+ def files(employee_number)
389
+ id = bamboo_id!(employee_number)
390
+ @files ||= retry_on_error { @client.employee.files(id) }
369
391
  end
370
392
 
371
393
  def retry_on_error(&block)
@@ -14,14 +14,14 @@ module PeopleGroup
14
14
  @workday.workers.map { |worker| format_worker(worker) }
15
15
  end
16
16
 
17
- def get_employee_details(id)
18
- employees.find { |emp| emp['id'] == id.to_s }
17
+ def get_employee_details(employee_number)
18
+ employees.find { |emp| emp['employeeNumber'] == employee_number.to_s }
19
19
  end
20
20
  alias_method :get_team_member_details, :get_employee_details
21
21
 
22
- def get_employee_details!(id)
23
- employee_details = get_employee_details(id)
24
- raise EmployeeNotFoundError, "No employee found with id #{id}" if employee_details.nil?
22
+ def get_employee_details!(employee_number)
23
+ employee_details = get_employee_details(employee_number)
24
+ raise EmployeeNotFoundError, "No team member found with employee number #{employee_number}" if employee_details.nil?
25
25
 
26
26
  employee_details
27
27
  end
@@ -33,7 +33,7 @@ module PeopleGroup
33
33
  return nil if worker.nil?
34
34
 
35
35
  {
36
- 'id' => worker.dig(:worker_data, :worker_id),
36
+ 'employeeNumber' => worker.dig(:worker_data, :worker_id),
37
37
  'firstName' => worker.dig(:worker_data, :personal_data, :name_data, :legal_name_data, :name_detail_data, :first_name),
38
38
  'lastName' => worker.dig(:worker_data, :personal_data, :name_data, :legal_name_data, :name_detail_data, :last_name),
39
39
  'preferredName' => worker.dig(:worker_data, :personal_data, :name_data, :preferred_name_data, :name_detail_data, :first_name),
@@ -12,22 +12,13 @@ module PeopleGroup
12
12
  @client = ::Slack::Web::Client.new
13
13
  end
14
14
 
15
- def find_user(email)
16
- @client.users_lookupByEmail(email: email)
17
- rescue ::Slack::Web::Api::Errors::SlackError
18
- nil
19
- end
20
-
21
- def bamboo_email_lookup_with_fallback(email)
22
- file_path = File.join(__dir__, '../../../data/email_mapper.yml')
23
- email_mapper = YAML.load_file(file_path)
24
- email_hit = email_mapper.find { |mapping| mapping['bamboo_email'] == email.delete_suffix('@gitlab.com') }
25
- email = "#{email_hit['slack_email']}@gitlab.com" if email_hit
26
-
15
+ def bamboo_email_lookup(email)
27
16
  @client.users_lookupByEmail(email: email)
28
17
  rescue ::Slack::Web::Api::Errors::SlackError
29
18
  nil
30
19
  end
20
+ alias_method :bamboo_email_lookup_with_fallback, :bamboo_email_lookup
21
+ alias_method :find_user, :bamboo_email_lookup
31
22
 
32
23
  def find_user_by_id(id)
33
24
  @client.users_info(user: id)
@@ -41,33 +32,62 @@ module PeopleGroup
41
32
  nil
42
33
  end
43
34
 
35
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FConversations:conversations_list
36
+ # Defaults to only show public channels.
44
37
  def list_public_channels
45
- channels = @client.channels_list(exclude_archived: true).channels
46
- channels.reject(&:is_private)&.map(:name)
38
+ response = @client.conversations_list(exclude_archived: true)
39
+ response['channels'].map { |channel| channel['name'] }
47
40
  end
48
41
 
42
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FChat:chat_getPermalink
49
43
  def link_for_message(channel:, timestamp:)
50
44
  @client.chat_getPermalink(channel: channel, message_ts: timestamp)
51
45
  end
52
46
 
47
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FChat:chat_postMessage
53
48
  def send_message(channel:, text: '', as_user: true, attachments: [], thread_ts: nil, reply_broadcast: false, formatted_message: [])
54
- @client.chat_postMessage(channel: channel, text: text, as_user: true, attachments: attachments, unfurl_links: false, thread_ts: thread_ts, reply_broadcast: reply_broadcast, blocks: formatted_message)
49
+ options = {
50
+ channel: channel,
51
+ text: text,
52
+ as_user: true,
53
+ attachments: attachments,
54
+ unfurl_links: false,
55
+ thread_ts: thread_ts,
56
+ reply_broadcast: reply_broadcast,
57
+ blocks: formatted_message
58
+ }
59
+
60
+ @client.chat_postMessage(options)
55
61
  end
56
62
 
63
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FChat:chat_update
57
64
  def update_message(channel:, timestamp:, text: '', attachments: [], formatted_message: [])
58
- @client.chat_update(channel: channel, text: text, ts: timestamp, as_user: true, attachments: attachments, blocks: formatted_message)
65
+ options = {
66
+ channel: channel,
67
+ text: text,
68
+ ts: timestamp,
69
+ as_user: true,
70
+ attachments: attachments,
71
+ blocks: formatted_message
72
+ }
73
+
74
+ @client.chat_update(options)
59
75
  end
60
76
 
77
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FViews:views_open
61
78
  def send_modal_message(trigger:, view:)
62
79
  @client.views_open(trigger_id: trigger, view: view)
63
80
  end
64
81
 
82
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FViews:views_publish
65
83
  def publish_view(user_id:, trigger:, view:)
66
84
  @client.views_publish(user_id: user_id, trigger_id: trigger, view: view)
67
85
  end
68
86
 
87
+ # https://www.rubydoc.info/gems/slack-ruby-client/0.17.0/Slack%2FWeb%2FApi%2FEndpoints%2FConversations:conversations_history
69
88
  def get_message(channel:, timestamp:)
70
- @client.conversations_history(channel: channel, latest: timestamp, limit: 1, inclusive: true)&.messages&.first
89
+ options = { channel: channel, latest: timestamp, limit: 1, inclusive: true }
90
+ @client.conversations_history(options)&.messages&.first
71
91
  end
72
92
  end
73
93
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PeopleGroup
4
4
  module Connectors
5
- VERSION = '0.1.94'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peoplegroup-connectors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.94
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - lien van den steen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-29 00:00:00.000000000 Z
11
+ date: 2022-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.14'
47
+ version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.14'
54
+ version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: splinter-pto
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '3.2'
131
+ version: '3.11'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '3.2'
138
+ version: '3.11'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -150,34 +150,48 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.91'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rake
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '13.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '13.0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: gitlab-styles
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: '6.6'
173
+ version: '7.0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '6.6'
180
+ version: '7.0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: rubocop-packaging
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '0.1'
187
+ version: '0.5'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: '0.1'
194
+ version: '0.5'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: rubocop-rspec
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -220,6 +234,20 @@ dependencies:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0.21'
237
+ - !ruby/object:Gem::Dependency
238
+ name: byebug
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '11.1'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '11.1'
223
251
  description: Avoid repeating methods in different projects for our connectos.
224
252
  email:
225
253
  - lvandensteen@gitlab.com
@@ -229,7 +257,6 @@ extra_rdoc_files: []
229
257
  files:
230
258
  - LICENSE.txt
231
259
  - README.md
232
- - data/email_mapper.yml
233
260
  - lib/peoplegroup/connectors.rb
234
261
  - lib/peoplegroup/connectors/bamboo.rb
235
262
  - lib/peoplegroup/connectors/gitlab.rb
@@ -263,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
290
  - !ruby/object:Gem::Version
264
291
  version: '0'
265
292
  requirements: []
266
- rubygems_version: 3.2.22
293
+ rubygems_version: 3.2.32
267
294
  signing_key:
268
295
  specification_version: 4
269
296
  summary: Library for our shared connectors.
@@ -1,2 +0,0 @@
1
- - slack_email: cristiano
2
- bamboo_email: ccasella