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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy