Skip to content

Commit 094e78c

Browse files
fix(data): remove redundant user query in FindByOrg (#2946)
Signed-off-by: Matías Insaurralde <matias@chainloop.dev>
1 parent c7ea883 commit 094e78c

2 files changed

Lines changed: 5 additions & 29 deletions

File tree

app/controlplane/pkg/biz/membership_integration_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func (s *membershipIntegrationTestSuite) TestByOrg() {
5454
s.Len(memberships, 1)
5555
s.Equal(1, count)
5656
s.Equal(memberships[0].OrganizationID.String(), userOrg.ID)
57+
s.NotNil(memberships[0].User)
5758
s.Equal(memberships[0].User.Email, user.Email)
5859
s.Equal(memberships[0].Role, authz.RoleViewer)
5960
})
@@ -63,6 +64,9 @@ func (s *membershipIntegrationTestSuite) TestByOrg() {
6364
s.NoError(err)
6465
s.Len(memberships, 2)
6566
s.Equal(2, count)
67+
for _, m := range memberships {
68+
s.NotNil(m.User)
69+
}
6670
})
6771

6872
s.T().Run("non existing org", func(t *testing.T) {

app/controlplane/pkg/data/membership.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -155,35 +155,7 @@ func (r *MembershipRepo) FindByOrg(ctx context.Context, orgID uuid.UUID, opts *b
155155
return nil, 0, err
156156
}
157157

158-
// Fetch all member IDs from the memberships, in this context they are user IDs
159-
memberIDs := make([]uuid.UUID, 0, len(memberships))
160-
for _, m := range memberships {
161-
memberIDs = append(memberIDs, m.MemberID)
162-
}
163-
164-
// Fetch user data for all the member IDs
165-
users, err := r.data.DB.User.Query().Where(user.IDIn(memberIDs...)).All(ctx)
166-
if err != nil {
167-
return nil, 0, fmt.Errorf("failed to fetch user data: %w", err)
168-
}
169-
170-
// Create a map of users by ID
171-
userMap := make(map[uuid.UUID]*ent.User, len(users))
172-
for _, u := range users {
173-
userMap[u.ID] = u
174-
}
175-
176-
// Convert to biz.Membership objects and attach user data manually
177-
result := make([]*biz.Membership, 0, len(memberships))
178-
for _, m := range memberships {
179-
bizMembership := entMembershipToBiz(m)
180-
if u, ok := userMap[m.MemberID]; ok {
181-
bizMembership.User = entUserToBizUser(u)
182-
}
183-
result = append(result, bizMembership)
184-
}
185-
186-
return result, count, nil
158+
return entMembershipsToBiz(memberships), count, nil
187159
}
188160

189161
// FindByOrgAndUser finds the membership for a given organization and user

0 commit comments

Comments
 (0)