two_percent 1.1.0 → 1.2.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: add03c75e1bf340f38e607daf123b473aec2f2b87b5785dd5a0c0c4b5c29ff6f
4
- data.tar.gz: f3dda93ee923b646d652be8882db284fa2df08187fe5516c9f57ff2e5a85ebbf
3
+ metadata.gz: d1f5dcfb8d7346d8f08d3b4a10b9d9e53f89a31717b03e202653deaaadedeb81
4
+ data.tar.gz: 10345fe74093b552ef36c20710412fa84b0b826ffd6ea22803fb49eea73105f1
5
5
  SHA512:
6
- metadata.gz: 4bccbd154aee0eb6cde90ab96efd4eb685f33b4f2a04f304b5e7aef64cc9750641820bf99c2e650fd83c462238dd022d4c9afbfc93bbeb57b9c1dd9a9c947122
7
- data.tar.gz: 4fe6f68630610ea02f86e48b0265c9e3ddc6b6f0f7636ca0fedd961904760b72842d6410dd759ff17ed776d424f8de7120feeb4a009b94004da5f2a670d0a463
6
+ metadata.gz: 596d23c098e8053360b2d5bf79f683f37cb0f476ca74ef50d3e6c45767871ebc178e8d5222cac35327c804a2b2ec8f6ce461035534c8bc8930c2079b0345bee0
7
+ data.tar.gz: 4991c89a19e03a7c6ab431cc52e6cc6e629a8a3b462bf4d9b5e577a0ece8e30d35d4df7d6d84c01bed40ff939cfbdedddea8e448bebe305368b6cbbe40db119b
@@ -38,7 +38,7 @@ module TwoPercent
38
38
  scim_group = find_or_initialize_by(scim_id: scim_hash["id"])
39
39
  scim_group.update_from_scim!(resource_type, validated_data, correlation_id: correlation_id)
40
40
 
41
- scim_group.replace_members(scim_hash["members"], correlation_id) if scim_hash.key?("members")
41
+ scim_group.replace_members(scim_hash["members"]) if scim_hash.key?("members")
42
42
 
43
43
  scim_group
44
44
  end
@@ -101,13 +101,13 @@ module TwoPercent
101
101
  save!
102
102
  end
103
103
 
104
- def replace_members(members_array, correlation_id)
104
+ def replace_members(members_array)
105
105
  member_scim_ids = members_array.filter_map { |m| m["value"] }
106
106
  existing_users = validate_users_exist!(member_scim_ids)
107
107
  existing_user_ids = scim_group_memberships.pluck(:scim_user_id)
108
108
 
109
109
  users_to_add = existing_users.where.not(id: existing_user_ids)
110
- bulk_insert_memberships(users_to_add, correlation_id) if users_to_add.any?
110
+ bulk_insert_memberships(users_to_add) if users_to_add.any?
111
111
 
112
112
  # Bulk delete removed memberships
113
113
  users_to_remove_ids = scim_users.where.not(scim_id: member_scim_ids).pluck(:id)
@@ -147,13 +147,11 @@ module TwoPercent
147
147
  # Bulk insert memberships for performance
148
148
  #
149
149
  # @param users_to_add [ActiveRecord::Relation] Users to add as members
150
- # @param correlation_id [String, nil] Correlation ID for tracking
151
- def bulk_insert_memberships(users_to_add, correlation_id)
150
+ def bulk_insert_memberships(users_to_add)
152
151
  membership_records = users_to_add.pluck(:id).map do |user_id|
153
152
  {
154
153
  scim_user_id: user_id,
155
154
  scim_group_id: id,
156
- correlation_id: correlation_id,
157
155
  created_at: Time.current,
158
156
  updated_at: Time.current,
159
157
  }
@@ -13,13 +13,11 @@ module TwoPercent
13
13
  validates :scim_group_id, presence: true
14
14
  validates :scim_user_id, uniqueness: { scope: :scim_group_id, message: "already a member of this group" }
15
15
 
16
- def self.find_or_create_membership(scim_user:, scim_group:, correlation_id: nil)
16
+ def self.find_or_create_membership(scim_user:, scim_group:)
17
17
  find_or_create_by!(
18
18
  scim_user_id: scim_user.id,
19
19
  scim_group_id: scim_group.id
20
- ) do |membership|
21
- membership.correlation_id = correlation_id
22
- end
20
+ )
23
21
  end
24
22
 
25
23
  def self.remove_membership(scim_user:, scim_group:)
@@ -5,14 +5,12 @@ class CreateTwoPercentScimGroupMemberships < ActiveRecord::Migration[7.0]
5
5
  create_table :two_percent_scim_group_memberships do |t|
6
6
  t.integer :scim_user_id, null: false
7
7
  t.integer :scim_group_id, null: false
8
- t.string :correlation_id
9
8
 
10
9
  t.timestamps
11
10
 
12
11
  t.index :scim_user_id
13
12
  t.index :scim_group_id
14
13
  t.index [:scim_user_id, :scim_group_id], unique: true, name: "index_scim_memberships_on_user_and_group"
15
- t.index :correlation_id
16
14
  end
17
15
 
18
16
  # Note: No explicit foreign keys for Percona/MySQL compatibility
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TwoPercent
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: two_percent
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Palhares