Skip to content

Commit 25adfb1

Browse files
committed
feat: updates for soft delete
1 parent 22d53e8 commit 25adfb1

File tree

15 files changed

+184
-122
lines changed

15 files changed

+184
-122
lines changed

coderd/database/db.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
// Query functions are generated using sqlc.
44
//
55
// To modify the database schema:
6-
// 1. Add a new migration using "create_migration.sh" in database/migrations/
7-
// 2. Run "make coderd/database/generate" in the root to generate models.
8-
// 3. Add/Edit queries in "query.sql" and run "make coderd/database/generate" to create Go code.
6+
// 1. Add a new migration using "create_migration.sh" in database/migrations/ and run "make gen" to generate models.
7+
// 2. Add/Edit queries in "query.sql" and run "make gen" to create Go code.
98
package database
109

1110
import (

coderd/database/dbauthz/dbauthz.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,10 +1276,6 @@ func (q *querier) DeleteOldWorkspaceAgentStats(ctx context.Context) error {
12761276
return q.db.DeleteOldWorkspaceAgentStats(ctx)
12771277
}
12781278

1279-
func (q *querier) DeleteOrganization(ctx context.Context, id uuid.UUID) error {
1280-
return deleteQ(q.log, q.auth, q.db.GetOrganizationByID, q.db.DeleteOrganization)(ctx, id)
1281-
}
1282-
12831279
func (q *querier) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error {
12841280
return deleteQ[database.OrganizationMember](q.log, q.auth, func(ctx context.Context, arg database.DeleteOrganizationMemberParams) (database.OrganizationMember, error) {
12851281
member, err := database.ExpectOne(q.OrganizationMembers(ctx, database.OrganizationMembersParams(arg)))
@@ -1888,7 +1884,7 @@ func (q *querier) GetOrganizationByID(ctx context.Context, id uuid.UUID) (databa
18881884
return fetch(q.log, q.auth, q.db.GetOrganizationByID)(ctx, id)
18891885
}
18901886

1891-
func (q *querier) GetOrganizationByName(ctx context.Context, name string) (database.Organization, error) {
1887+
func (q *querier) GetOrganizationByName(ctx context.Context, name database.GetOrganizationByNameParams) (database.Organization, error) {
18921888
return fetch(q.log, q.auth, q.db.GetOrganizationByName)(ctx, name)
18931889
}
18941890

@@ -1905,7 +1901,7 @@ func (q *querier) GetOrganizations(ctx context.Context, args database.GetOrganiz
19051901
return fetchWithPostFilter(q.auth, policy.ActionRead, fetch)(ctx, nil)
19061902
}
19071903

1908-
func (q *querier) GetOrganizationsByUserID(ctx context.Context, userID uuid.UUID) ([]database.Organization, error) {
1904+
func (q *querier) GetOrganizationsByUserID(ctx context.Context, userID database.GetOrganizationsByUserIDParams) ([]database.Organization, error) {
19091905
return fetchWithPostFilter(q.auth, policy.ActionRead, q.db.GetOrganizationsByUserID)(ctx, userID)
19101906
}
19111907

@@ -3691,6 +3687,17 @@ func (q *querier) UpdateOrganization(ctx context.Context, arg database.UpdateOrg
36913687
return updateWithReturn(q.log, q.auth, fetch, q.db.UpdateOrganization)(ctx, arg)
36923688
}
36933689

3690+
func (q *querier) UpdateOrganizationDeletedByID(ctx context.Context, arg database.UpdateOrganizationDeletedByIDParams) error {
3691+
deleteF := func(ctx context.Context, id uuid.UUID) error {
3692+
return q.db.UpdateOrganizationDeletedByID(ctx, database.UpdateOrganizationDeletedByIDParams{
3693+
ID: id,
3694+
Deleted: true,
3695+
UpdatedAt: dbtime.Now(),
3696+
})
3697+
}
3698+
return deleteQ(q.log, q.auth, q.db.GetOrganizationByID, deleteF)(ctx, arg.ID)
3699+
}
3700+
36943701
func (q *querier) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error {
36953702
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceProvisionerDaemon); err != nil {
36963703
return err

coderd/database/dbmem/dbmem.go

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2157,19 +2157,6 @@ func (q *FakeQuerier) DeleteOldWorkspaceAgentStats(_ context.Context) error {
21572157
return nil
21582158
}
21592159

2160-
func (q *FakeQuerier) DeleteOrganization(_ context.Context, id uuid.UUID) error {
2161-
q.mutex.Lock()
2162-
defer q.mutex.Unlock()
2163-
2164-
for i, org := range q.organizations {
2165-
if org.ID == id && !org.IsDefault {
2166-
q.organizations = append(q.organizations[:i], q.organizations[i+1:]...)
2167-
return nil
2168-
}
2169-
}
2170-
return sql.ErrNoRows
2171-
}
2172-
21732160
func (q *FakeQuerier) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error {
21742161
err := validateDatabaseType(arg)
21752162
if err != nil {
@@ -3688,12 +3675,12 @@ func (q *FakeQuerier) GetOrganizationByID(_ context.Context, id uuid.UUID) (data
36883675
return q.getOrganizationByIDNoLock(id)
36893676
}
36903677

3691-
func (q *FakeQuerier) GetOrganizationByName(_ context.Context, name string) (database.Organization, error) {
3678+
func (q *FakeQuerier) GetOrganizationByName(_ context.Context, params database.GetOrganizationByNameParams) (database.Organization, error) {
36923679
q.mutex.RLock()
36933680
defer q.mutex.RUnlock()
36943681

36953682
for _, organization := range q.organizations {
3696-
if organization.Name == name {
3683+
if organization.Name == params.Name {
36973684
return organization, nil
36983685
}
36993686
}
@@ -3740,13 +3727,13 @@ func (q *FakeQuerier) GetOrganizations(_ context.Context, args database.GetOrgan
37403727
return tmp, nil
37413728
}
37423729

3743-
func (q *FakeQuerier) GetOrganizationsByUserID(_ context.Context, userID uuid.UUID) ([]database.Organization, error) {
3730+
func (q *FakeQuerier) GetOrganizationsByUserID(_ context.Context, arg database.GetOrganizationsByUserIDParams) ([]database.Organization, error) {
37443731
q.mutex.RLock()
37453732
defer q.mutex.RUnlock()
37463733

37473734
organizations := make([]database.Organization, 0)
37483735
for _, organizationMember := range q.organizationMembers {
3749-
if organizationMember.UserID != userID {
3736+
if organizationMember.UserID != arg.UserID {
37503737
continue
37513738
}
37523739
for _, organization := range q.organizations {
@@ -9722,6 +9709,26 @@ func (q *FakeQuerier) UpdateOrganization(_ context.Context, arg database.UpdateO
97229709
return database.Organization{}, sql.ErrNoRows
97239710
}
97249711

9712+
func (q *FakeQuerier) UpdateOrganizationDeletedByID(_ context.Context, arg database.UpdateOrganizationDeletedByIDParams) error {
9713+
if err := validateDatabaseType(arg); err != nil {
9714+
return err
9715+
}
9716+
9717+
q.mutex.Lock()
9718+
defer q.mutex.Unlock()
9719+
9720+
for index, organization := range q.organizations {
9721+
if organization.ID != arg.ID || organization.IsDefault {
9722+
continue
9723+
}
9724+
organization.Deleted = arg.Deleted
9725+
organization.UpdatedAt = arg.UpdatedAt
9726+
q.organizations[index] = organization
9727+
return nil
9728+
}
9729+
return sql.ErrNoRows
9730+
}
9731+
97259732
func (q *FakeQuerier) UpdateProvisionerDaemonLastSeenAt(_ context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error {
97269733
err := validateDatabaseType(arg)
97279734
if err != nil {

coderd/database/dbmetrics/querymetrics.go

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

coderd/database/dbmock/dbmock.go

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

coderd/database/querier.go

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

0 commit comments

Comments
 (0)