Skip to content

Commit 018fc6e

Browse files
authored
fix(groups): remove Group->user edge (#2304)
Signed-off-by: Jose I. Paris <jiparis@chainloop.dev>
1 parent aa6cc0f commit 018fc6e

20 files changed

+491
-1500
lines changed

app/controlplane/pkg/biz/group.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ type ListGroupOpts struct {
119119
Description string
120120
// MemberEmail is the email of the member to filter by.
121121
MemberEmail string
122+
// UserID is the ID of the user to filter by.
123+
UserID *uuid.UUID
122124
}
123125

124126
// ListMembersOpts defines options for listing members of a group.

app/controlplane/pkg/biz/group_integration_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ func (s *groupListIntegrationTestSuite) TearDownSubTest() {
392392
ctx := context.Background()
393393
// Clean up the database after each test
394394
_, _ = s.Data.DB.Group.Delete().Exec(ctx)
395+
_, _ = s.Data.DB.Membership.Delete().Exec(ctx)
395396
}
396397

397398
// Test listing groups with various filters
@@ -520,6 +521,35 @@ func (s *groupListIntegrationTestSuite) TestList() {
520521
s.Equal(group2.ID, groups[0].ID)
521522
})
522523

524+
s.Run("list groups with member ID", func() {
525+
// Create a second user
526+
user2, err := s.User.UpsertByEmail(ctx, "user2@example.com", nil)
527+
require.NoError(s.T(), err)
528+
529+
// Add user2 to organization
530+
_, err = s.Membership.Create(ctx, s.org.ID, user2.ID)
531+
require.NoError(s.T(), err)
532+
533+
// Create a group with user as maintainer
534+
groupWithUser1 := "Group with user 1"
535+
_, err = s.Group.Create(ctx, uuid.MustParse(s.org.ID), "group-with-user1", groupWithUser1, s.userUUID)
536+
require.NoError(s.T(), err)
537+
538+
// Create a group with user2 as maintainer
539+
groupWithUser2 := "Group with user 2"
540+
user2UUID := uuid.MustParse(user2.ID)
541+
group2, err := s.Group.Create(ctx, uuid.MustParse(s.org.ID), "group-with-user2", groupWithUser2, &user2UUID)
542+
require.NoError(s.T(), err)
543+
544+
// Filter by member ID
545+
filterOpts := &biz.ListGroupOpts{UserID: &user2UUID}
546+
groups, count, err := s.Group.List(ctx, uuid.MustParse(s.org.ID), filterOpts, nil)
547+
s.NoError(err)
548+
s.Equal(1, len(groups))
549+
s.Equal(1, count)
550+
s.Equal(group2.ID, groups[0].ID)
551+
})
552+
523553
s.Run("list groups with pagination", func() {
524554
// Create several groups
525555
for i := 1; i <= 5; i++ {

app/controlplane/pkg/data/ent/client.go

Lines changed: 8 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/group.go

Lines changed: 10 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/group/group.go

Lines changed: 18 additions & 52 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/group/where.go

Lines changed: 6 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)