stackone_migration 1.4.8 → 1.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54502eb2343658c7853369b1629be75f8020d32f9287192037d60f657577f2ef
4
- data.tar.gz: c3594fe6cfe8ef43a49f195e748cacf02f3313271fa1606bad87a96e18a79c16
3
+ metadata.gz: 25fcd83c1607852cb181d677bbc39de719fb1d912c3d591bca4a6023b099a1d5
4
+ data.tar.gz: 894108fb3b35ead045d3e3bbcc0da8463192f00b044269ee39fb43f6ba87ccd7
5
5
  SHA512:
6
- metadata.gz: b7ac0788a52ae2968b3380f661a20962ae2338ac8bc3bb47d3922d917f4b2963a57ed664aec7039a4b292c0f500e72b354a70a7620a510a8405f81c6fb3d7b87
7
- data.tar.gz: 072eef5853bd9ad549a4884b81e5ff6c69fafcdc831afc234fd94cc202299a77935ce806e032dd4811207731fc830782710ebb84055cd2e838e827a39c1ce779
6
+ metadata.gz: 3a93be21a57db38d3a0aa53823e2c5c122adca1b7e6f684a32431a646118679f7664e188aa503201bc52f4966f72769236360cb2c87ff02690ce5209acba228d
7
+ data.tar.gz: 4ab15a0d9d01dee4d97da2de4469b5f63cc4d5475834ba2a7289bda70257c6f75fa1c85e78a259a61dad1494e2e8629394fafec77f439ed8792b6618738cf07c
data/Gemfile CHANGED
@@ -10,5 +10,5 @@ group :development, :test do
10
10
  gem 'rubocop', '~> 1.48.0'
11
11
  end
12
12
 
13
- gem 'merge_hris_client', '~> 3.0'
14
- gem 'stackone_hris_client', '~> 1.6.0'
13
+ gem 'merge_hris_client', '3.2.0'
14
+ gem 'stackone_hris_client', '~> 1.7.0'
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stackone_migration (1.4.8)
5
- merge_hris_client (~> 3.0)
6
- stackone_hris_client (~> 1.6.0)
4
+ stackone_migration (1.6.0)
5
+ merge_hris_client (= 3.2.0)
6
+ stackone_hris_client (~> 1.7.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -16,7 +16,7 @@ GEM
16
16
  ffi (>= 1.15.0)
17
17
  ffi (1.15.5)
18
18
  json (2.6.3)
19
- merge_hris_client (3.0.0)
19
+ merge_hris_client (3.2.0)
20
20
  typhoeus (~> 1.0, >= 1.0.1)
21
21
  method_source (1.0.0)
22
22
  parallel (1.22.1)
@@ -58,7 +58,7 @@ GEM
58
58
  rubocop-ast (1.27.0)
59
59
  parser (>= 3.2.1.0)
60
60
  ruby-progressbar (1.13.0)
61
- stackone_hris_client (1.6.0)
61
+ stackone_hris_client (1.7.0)
62
62
  typhoeus (~> 1.0, >= 1.0.1)
63
63
  typhoeus (1.4.0)
64
64
  ethon (>= 0.9.0)
@@ -68,13 +68,13 @@ PLATFORMS
68
68
  arm64-darwin-22
69
69
 
70
70
  DEPENDENCIES
71
- merge_hris_client (~> 3.0)
71
+ merge_hris_client (= 3.2.0)
72
72
  pry-byebug
73
73
  rake (~> 13.0.1)
74
74
  rspec (~> 3.6, >= 3.6.0)
75
75
  rubocop (~> 1.48.0)
76
- stackone_hris_client (~> 1.6.0)
76
+ stackone_hris_client (~> 1.7.0)
77
77
  stackone_migration!
78
78
 
79
79
  BUNDLED WITH
80
- 2.4.7
80
+ 2.4.13
@@ -6,10 +6,10 @@ module MergeHRISClient
6
6
 
7
7
  def link_token_create(end_user_details_request, opts = {})
8
8
  return original_link_token_create(end_user_details_request, opts) if opts.key?(:use_merge) && opts[:use_merge]
9
-
10
9
  connect_session_create_request = StackOneHRIS::ConnectSessionCreate.new(
11
10
  :origin_owner_id => end_user_details_request.end_user_origin_id,
12
- :origin_owner_name => end_user_details_request.end_user_email_address,
11
+ :origin_owner_name => end_user_details_request.end_user_organization_name || end_user_details_request.end_user_email_address,
12
+ :origin_username => end_user_details_request.end_user_email_address,
13
13
  :provider => StackOneMigration::ProviderMapper.map_to_stackone_provider_name(end_user_details_request.integration),
14
14
  :categories => end_user_details_request.categories,
15
15
  )
@@ -91,7 +91,7 @@ module StackOneMigration
91
91
  def self.map_to_employee_model(employee)
92
92
  return nil if employee.nil?
93
93
 
94
- MergeHRISClient::Employee.new(
94
+ new_employee = MergeHRISClient::Employee.new(
95
95
  :id => employee.id,
96
96
  :remote_id => employee.id,
97
97
  :first_name => employee.first_name,
@@ -108,12 +108,16 @@ module StackOneMigration
108
108
  :ethnicity => build_merge_enum(MergeHRISClient::EthnicityEnum, ethnicity_enum_hash, employee.ethnicity),
109
109
  :marital_status => build_merge_enum(MergeHRISClient::MaritalStatusEnum, marital_status_enum_hash, employee.marital_status),
110
110
  :hire_date => employee.hire_date,
111
- :employment_status => MergeHRISClient::EmploymentStatusEnum.build_from_hash(map_enum(employment_status_enum_hash, employee.employment_status)),
111
+ :employment_status => build_merge_enum(MergeHRISClient::EmploymentStatusEnum, employment_status_enum_hash, employee.employment_status),
112
112
  :termination_date => employee.termination_date,
113
113
  :home_location => map_to_location_model(employee.home_location),
114
114
  :work_location => map_to_location_model(employee.work_location),
115
115
  :employments => map_employments(employee.employments),
116
116
  )
117
+
118
+ new_employee.employment_contract_type = employee.employment_contract_type unless employee.employment_contract_type.nil?
119
+
120
+ new_employee
117
121
  end
118
122
 
119
123
  def self.map_to_location_model(location)
@@ -137,21 +141,25 @@ module StackOneMigration
137
141
  def self.map_to_employment_model(employment)
138
142
  return nil if employment.nil?
139
143
 
140
- MergeHRISClient::Employment.new(
144
+ new_employment = MergeHRISClient::Employment.new(
141
145
  :job_title => employment.job_title,
142
146
  :pay_rate => employment.pay_rate,
143
147
  :pay_period => build_merge_enum(MergeHRISClient::PayPeriodEnum, pay_period_enum_hash, employment.pay_period),
144
148
  :pay_frequency => build_merge_enum(MergeHRISClient::PayFrequencyEnum, pay_frequency_enum_hash, employment.pay_frequency),
145
149
  :pay_currency => MergeHRISClient::PayCurrencyEnum.build_from_hash(employment.pay_currency&.to_s&.upcase),
146
150
  :effective_date => employment.effective_date,
147
- :employment_type => MergeHRISClient::EmploymentTypeEnum.build_from_hash(map_enum(employment_type_enum_hash, employment.employment_type)),
151
+ :employment_type => build_merge_enum(MergeHRISClient::EmploymentTypeEnum, employment_type_enum_hash, employment.employment_type),
148
152
  )
153
+
154
+ new_employment.employment_contract_type = employment.employment_contract_type unless employment.employment_contract_type.nil?
155
+
156
+ new_employment
149
157
  end
150
158
 
151
159
  def self.map_employments(employments)
152
- if employments.nil?
160
+ if employments.nil?
153
161
  mapped_results = []
154
- else
162
+ else
155
163
  mapped_results = employments.map do |employment|
156
164
  map_to_employment_model(employment)
157
165
  end
@@ -167,13 +175,13 @@ module StackOneMigration
167
175
  :_next => nil,
168
176
  :results => mapped_results,
169
177
  :previous => nil
170
- )
178
+ )
171
179
  end
172
180
 
173
181
  def self.map_to_paginated_employee_list_model(paginated_employees)
174
- if paginated_employees&.data.nil?
182
+ if paginated_employees&.data.nil?
175
183
  mapped_results = []
176
- else
184
+ else
177
185
  mapped_results = paginated_employees.data.map do |employee|
178
186
  map_to_employee_model(employee)
179
187
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MergeHRISClient
4
+ class Employee
5
+ attr_accessor :employment_contract_type
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MergeHRISClient
4
+ class Employment
5
+ attr_accessor :employment_contract_type
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StackOneMigration
4
- VERSION = '1.4.8'
4
+ VERSION = '1.6.0'
5
5
  end
@@ -6,6 +6,10 @@ require 'merge_hris_client'
6
6
  # Common files
7
7
  require 'stackone_migration/version'
8
8
 
9
+ # Models
10
+ require 'stackone_migration/models/employee'
11
+ require 'stackone_migration/models/employment'
12
+
9
13
  # APIs
10
14
  require 'stackone_migration/api/employees_api'
11
15
  require 'stackone_migration/api/account_token_api'
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe MergeHRISClient::LinkTokenApi do
6
6
  subject { MergeHRISClient::LinkTokenApi.new }
7
-
7
+
8
8
  context '.link_token_create' do
9
9
  context 'when the the key to use merge is not present in the options' do
10
10
  it 'returns a merge link token object' do
@@ -49,19 +49,21 @@ describe MergeHRISClient::LinkTokenApi do
49
49
  end_user_details_request = MergeHRISClient::EndUserDetailsRequest.new(
50
50
  :end_user_email_address => 'tos@potig.er',
51
51
  :end_user_origin_id => 'user_origin_id',
52
+ :end_user_organization_name => 'sample org',
52
53
  :categories => ['hris'],
53
54
  :integration => 'sage-hr',
54
55
  )
55
56
 
56
57
  expected_request = StackOneHRIS::ConnectSessionCreate.new(
57
58
  :origin_owner_id => 'user_origin_id',
58
- :origin_owner_name => 'tos@potig.er',
59
+ :origin_username => 'tos@potig.er',
60
+ :origin_owner_name => 'sample org',
59
61
  :provider => 'sage',
60
62
  :categories => ['hris'],
61
63
  )
62
64
 
63
65
  expect(connect_sessions_api_double).to receive(:connect_sessions_create).with(expected_request)
64
-
66
+
65
67
  result = subject.link_token_create(end_user_details_request)
66
68
  end
67
69
  end
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe StackOneMigration::EmployeesMapper do
6
- let(:sample_employee) {
6
+ let(:sample_employee) {
7
7
  StackOneHRIS::Employee.new(
8
8
  :id => '123',
9
9
  :first_name => 'Jean',
@@ -21,10 +21,11 @@ describe StackOneMigration::EmployeesMapper do
21
21
  :ethnicity => StackOneHRIS::EthnicityEnum.new(value: 'white', source_value: 'White'),
22
22
  :marital_status => StackOneHRIS::MaritalStatusEnum.new(value: 'married', source_value: 'Married'),
23
23
  :employment_status => StackOneHRIS::EmploymentStatusEnum.new(value: 'terminated', source_value: 'Terminated'),
24
+ :employment_contract_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
24
25
  :work_phone_number => '(456) 787-3508',
25
26
  :job_title => 'Manager',
26
27
  :department => 'Human Resources',
27
- :home_location =>
28
+ :home_location =>
28
29
  StackOneHRIS::Location.new(
29
30
  :phone_number => "(456) 787-3508",
30
31
  :street_1 => "123 Main' St",
@@ -37,19 +38,20 @@ describe StackOneMigration::EmployeesMapper do
37
38
  ),
38
39
  :work_location => nil,
39
40
  :employments => [
40
- StackOneHRIS::Employment.new(
41
+ StackOneHRIS::Employment.new(
41
42
  :job_title => 'Manager',
42
43
  :pay_rate => 100000,
43
44
  :pay_period => StackOneHRIS::PayPeriodEnum.new(value: 'year', source_value: 'Year'),
44
45
  :pay_frequency => StackOneHRIS::PayFrequencyEnum.new(value: 'weekly', source_value: 'Weekly'),
45
46
  :pay_currency => 'USD',
46
47
  :effective_date => '2018-01-01',
47
- :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
48
+ :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'contractor', source_value: 'Contractor'),
49
+ :employment_contract_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
48
50
  )
49
51
  ]
50
52
  )
51
53
  }
52
- let(:other_sample_employee) {
54
+ let(:other_sample_employee) {
53
55
  StackOneHRIS::Employee.new(
54
56
  :id => '456',
55
57
  :first_name => 'Allie',
@@ -65,9 +67,9 @@ describe StackOneMigration::EmployeesMapper do
65
67
  :work_phone_number => '(456) 787-3508',
66
68
  :job_title => 'Manager',
67
69
  :department => 'Human Resources',
68
- )
70
+ )
69
71
  }
70
- let(:another_sample_employee) {
72
+ let(:another_sample_employee) {
71
73
  StackOneHRIS::Employee.new(
72
74
  :id => '456',
73
75
  :first_name => 'Allie',
@@ -84,9 +86,9 @@ describe StackOneMigration::EmployeesMapper do
84
86
  :personal_phone_number => '(715) 658-9486',
85
87
  :job_title => 'Manager',
86
88
  :department => 'Human Resources',
87
- )
89
+ )
88
90
  }
89
- let(:employee_with_no_phone_number_and_avatar) {
91
+ let(:employee_with_no_phone_number_and_avatar) {
90
92
  StackOneHRIS::Employee.new(
91
93
  :id => '456',
92
94
  :first_name => 'Allie',
@@ -101,7 +103,7 @@ describe StackOneMigration::EmployeesMapper do
101
103
  :manager_id => '417b5e62-e011-5e69-a906-0aefade9ded1',
102
104
  :job_title => 'Manager',
103
105
  :department => 'Human Resources',
104
- )
106
+ )
105
107
  }
106
108
 
107
109
  context '.map_to_employee_model' do
@@ -133,7 +135,8 @@ describe StackOneMigration::EmployeesMapper do
133
135
  expect(target_model.gender).to have_attributes(:value => 'FEMALE', :raw_value => 'Female')
134
136
  expect(target_model.ethnicity).to have_attributes(:value => 'WHITE', :raw_value => 'White')
135
137
  expect(target_model.marital_status).to have_attributes(:value => 'MARRIED_FILING_JOINTLY', :raw_value => 'Married')
136
- expect(target_model.employment_status).to have_attributes(:value => 'INACTIVE', :raw_value => 'INACTIVE')
138
+ expect(target_model.employment_status).to have_attributes(:value => 'INACTIVE', :raw_value => 'Terminated')
139
+ expect(target_model.employment_contract_type).to have_attributes(:value => 'full_time', :source_value => 'Full time')
137
140
  end
138
141
 
139
142
  context 'when the employee record has the avatar base64 field instead of url' do
@@ -299,14 +302,15 @@ describe StackOneMigration::EmployeesMapper do
299
302
 
300
303
  context '.map_to_employment_model' do
301
304
  it 'maps a employeement to correct class' do
302
- sample_employment = StackOneHRIS::Employment.new(
305
+ sample_employment = StackOneHRIS::Employment.new(
303
306
  :job_title => 'Manager',
304
307
  :pay_rate => 100000,
305
308
  :pay_period => StackOneHRIS::PayPeriodEnum.new(value: 'year', source_value: 'Year'),
306
309
  :pay_frequency => StackOneHRIS::PayFrequencyEnum.new(value: 'weekly', source_value: 'Weekly'),
307
310
  :pay_currency => 'USD',
308
311
  :effective_date => '2018-01-01',
309
- :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
312
+ :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'contractor', source_value: 'Contractor'),
313
+ :employment_contract_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full Time'),
310
314
  )
311
315
 
312
316
  target_model = described_class.map_to_employment_model(sample_employment)
@@ -315,14 +319,15 @@ describe StackOneMigration::EmployeesMapper do
315
319
  end
316
320
 
317
321
  it 'maps a employeement with the right attributes' do
318
- sample_employment = StackOneHRIS::Employment.new(
322
+ sample_employment = StackOneHRIS::Employment.new(
319
323
  :job_title => 'Manager',
320
324
  :pay_rate => 100000,
321
325
  :pay_period => StackOneHRIS::PayPeriodEnum.new(value: 'year', source_value: 'Year'),
322
326
  :pay_frequency => StackOneHRIS::PayFrequencyEnum.new(value: 'weekly', source_value: 'Weekly'),
323
327
  :pay_currency => 'USD',
324
328
  :effective_date => '2018-01-01',
325
- :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
329
+ :employment_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'contractor', source_value: 'Contractor'),
330
+ :employment_contract_type => StackOneHRIS::EmploymentTypeEnum.new(value: 'full_time', source_value: 'Full time'),
326
331
  )
327
332
 
328
333
  target_model = described_class.map_to_employment_model(sample_employment)
@@ -333,7 +338,8 @@ describe StackOneMigration::EmployeesMapper do
333
338
  expect(target_model.pay_frequency).to have_attributes(:value => 'WEEKLY', :raw_value => 'Weekly')
334
339
  expect(target_model.pay_currency).to have_attributes(:value => 'USD', :raw_value => 'USD')
335
340
  expect(target_model.effective_date).to eq('2018-01-01')
336
- expect(target_model.employment_type).to have_attributes(:value => 'FULL_TIME', :raw_value => 'FULL_TIME')
341
+ expect(target_model.employment_type).to have_attributes(:value => 'CONTRACTOR', :raw_value => 'Contractor')
342
+ expect(target_model.employment_contract_type).to have_attributes(:value => 'full_time', :source_value => 'Full time')
337
343
  end
338
344
  end
339
345
 
@@ -378,7 +384,7 @@ describe StackOneMigration::EmployeesMapper do
378
384
 
379
385
  expect(target_model).to be_a(MergeHRISClient::PaginatedEmployeeList)
380
386
  end
381
-
387
+
382
388
 
383
389
  it 'maps the employee list attributes with the right structure to the target class' do
384
390
  stackone_paginated_employees = StackOneHRIS::EmployeesPaginated.new(
@@ -15,8 +15,8 @@ Gem::Specification.new do |s|
15
15
  s.license = 'MIT'
16
16
  s.required_ruby_version = '>= 2.7'
17
17
 
18
- s.add_runtime_dependency 'merge_hris_client', '~> 3.0'
19
- s.add_runtime_dependency 'stackone_hris_client', '~> 1.6.0'
18
+ s.add_runtime_dependency 'merge_hris_client', '3.2.0'
19
+ s.add_runtime_dependency 'stackone_hris_client', '~> 1.7.0'
20
20
 
21
21
  s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
22
22
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackone_migration
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.8
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - StackOne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-04 00:00:00.000000000 Z
11
+ date: 2023-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: merge_hris_client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: 3.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: stackone_hris_client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.0
33
+ version: 1.7.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.6.0
40
+ version: 1.7.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +78,8 @@ files:
78
78
  - lib/stackone_migration/helpers/account_helper.rb
79
79
  - lib/stackone_migration/mappers/employees_mapper.rb
80
80
  - lib/stackone_migration/mappers/provider_mapper.rb
81
+ - lib/stackone_migration/models/employee.rb
82
+ - lib/stackone_migration/models/employment.rb
81
83
  - lib/stackone_migration/version.rb
82
84
  - spec/api/account_token_api_spec.rb
83
85
  - spec/api/delete_account_api_spec.rb