Skip to content

Commit 28b12c8

Browse files
committed
fix: Return the updated row and handle sql.ErrNoRows
1 parent 6eb7d1f commit 28b12c8

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

coderd/database/querier.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

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

coderd/database/queries/workspaces.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,15 @@ SET
112112
WHERE
113113
id = $1;
114114

115-
-- name: UpdateWorkspace :exec
115+
-- name: UpdateWorkspace :one
116116
UPDATE
117117
workspaces
118118
SET
119119
name = $2
120120
WHERE
121121
id = $1
122-
AND deleted = false;
122+
AND deleted = false
123+
RETURNING *;
123124

124125
-- name: UpdateWorkspaceAutostart :exec
125126
UPDATE

coderd/workspaces.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -494,18 +494,17 @@ func (api *API) patchWorkspace(rw http.ResponseWriter, r *http.Request) {
494494
name = req.Name
495495
}
496496

497-
err := api.Database.UpdateWorkspace(r.Context(), database.UpdateWorkspaceParams{
497+
_, err := api.Database.UpdateWorkspace(r.Context(), database.UpdateWorkspaceParams{
498498
ID: workspace.ID,
499499
Name: name,
500500
})
501501
if err != nil {
502502
// The query protects against updating deleted workspaces and
503503
// the existence of the workspace is checked in the request,
504-
// the only conclusion we can make is that we're trying to
505-
// update a deleted workspace.
504+
// if we get ErrNoRows it means the workspace was deleted.
506505
//
507-
// We could do this check earlier but since we're not in a
508-
// transaction, it's pointless.
506+
// We could do this check earlier but we'd need to start a
507+
// transaction.
509508
if errors.Is(err, sql.ErrNoRows) {
510509
httpapi.Write(rw, http.StatusMethodNotAllowed, codersdk.Response{
511510
Message: fmt.Sprintf("Workspace %q is deleted and cannot be updated.", workspace.Name),

0 commit comments

Comments
 (0)