Skip to content

Commit 4d60dbb

Browse files
committed
💄
1 parent 0402cc6 commit 4d60dbb

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

components/gitpod-db/go/personal_access_token.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,15 @@ func CreatePersonalAccessToken(ctx context.Context, conn *gorm.DB, req PersonalA
8787
return token, nil
8888
}
8989

90-
func DeletePersonalAccessTokenForUser(ctx context.Context, conn *gorm.DB, tokenID uuid.UUID, userID uuid.UUID) error {
90+
func DeletePersonalAccessTokenForUser(ctx context.Context, conn *gorm.DB, tokenID uuid.UUID, userID uuid.UUID) (int64, error) {
91+
if tokenID == uuid.Nil {
92+
return 0, fmt.Errorf("Invalid or empty tokenID")
93+
}
94+
95+
if userID == uuid.Nil {
96+
return 0, fmt.Errorf("Invalid or empty userID")
97+
}
98+
9199
db := conn.WithContext(ctx)
92100

93101
db = db.
@@ -97,13 +105,10 @@ func DeletePersonalAccessTokenForUser(ctx context.Context, conn *gorm.DB, tokenI
97105
Where("deleted = ?", 0).
98106
Update("deleted", 1)
99107
if db.Error != nil {
100-
if errors.Is(db.Error, gorm.ErrRecordNotFound) {
101-
return fmt.Errorf("Token with ID %s does not exist: %w", tokenID, ErrorNotFound)
102-
}
103-
return fmt.Errorf("Failed to delete token: %v", db.Error)
108+
return 0, fmt.Errorf("Failed to delete token: %v", db.Error)
104109
}
105110

106-
return nil
111+
return db.RowsAffected, nil
107112
}
108113

109114
func ListPersonalAccessTokensForUser(ctx context.Context, conn *gorm.DB, userID uuid.UUID, pagination Pagination) (*PaginatedResult[PersonalAccessToken], error) {

components/gitpod-db/go/personal_access_token_test.go

+11-7
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,27 @@ func TestPersonalAccessToken_Delete(t *testing.T) {
8888
dbtest.CreatePersonalAccessTokenRecords(t, conn, tokenEntries...)
8989

9090
t.Run("not matching user", func(t *testing.T) {
91-
err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token.ID, token2.UserID)
92-
require.Error(t, err, db.ErrorNotFound)
91+
count, err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token.ID, token2.UserID)
92+
require.NoError(t, err)
93+
require.Equal(t, int64(0), count)
9394
})
9495

9596
t.Run("not matching token", func(t *testing.T) {
96-
err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token2.ID, token.UserID)
97-
require.Error(t, err, db.ErrorNotFound)
97+
count, err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token2.ID, token.UserID)
98+
require.NoError(t, err)
99+
require.Equal(t, int64(0), count)
98100
})
99101

100102
t.Run("both token and user don't exist in the DB", func(t *testing.T) {
101-
err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, uuid.New(), uuid.New())
102-
require.Error(t, err, db.ErrorNotFound)
103+
count, err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, uuid.New(), uuid.New())
104+
require.NoError(t, err)
105+
require.Equal(t, int64(0), count)
103106
})
104107

105108
t.Run("valid", func(t *testing.T) {
106-
err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token.ID, token.UserID)
109+
count, err := db.DeletePersonalAccessTokenForUser(context.Background(), conn, token.ID, token.UserID)
107110
require.NoError(t, err)
111+
require.Equal(t, int64(1), count)
108112
_, err = db.GetPersonalAccessTokenForUser(context.Background(), conn, token.ID, token.UserID)
109113
require.Error(t, err, db.ErrorNotFound)
110114
})

components/public-api-server/pkg/apiv1/tokens.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ func (s *TokensService) DeletePersonalAccessToken(ctx context.Context, req *conn
209209
return nil, err
210210
}
211211

212-
err = db.DeletePersonalAccessTokenForUser(ctx, s.dbConn, tokenID, userID)
212+
_, err = db.DeletePersonalAccessTokenForUser(ctx, s.dbConn, tokenID, userID)
213213
if err != nil {
214214
log.WithError(err).Errorf("Failed to delete personal access token for user %s", userID.String())
215215
return nil, connect.NewError(connect.CodeInternal, errors.New("Failed to delete personal access token."))

0 commit comments

Comments
 (0)