Skip to content

Commit 0455b67

Browse files
committed
fix: Return the updated row and handle sql.ErrNoRows
1 parent 256b7ef commit 0455b67

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
@@ -501,18 +501,17 @@ func (api *API) patchWorkspace(rw http.ResponseWriter, r *http.Request) {
501501
name = req.Name
502502
}
503503

504-
err := api.Database.UpdateWorkspace(r.Context(), database.UpdateWorkspaceParams{
504+
_, err := api.Database.UpdateWorkspace(r.Context(), database.UpdateWorkspaceParams{
505505
ID: workspace.ID,
506506
Name: name,
507507
})
508508
if err != nil {
509509
// The query protects against updating deleted workspaces and
510510
// the existence of the workspace is checked in the request,
511-
// the only conclusion we can make is that we're trying to
512-
// update a deleted workspace.
511+
// if we get ErrNoRows it means the workspace was deleted.
513512
//
514-
// We could do this check earlier but since we're not in a
515-
// transaction, it's pointless.
513+
// We could do this check earlier but we'd need to start a
514+
// transaction.
516515
if errors.Is(err, sql.ErrNoRows) {
517516
httpapi.Write(rw, http.StatusMethodNotAllowed, codersdk.Response{
518517
Message: fmt.Sprintf("Workspace %q is deleted and cannot be updated.", workspace.Name),

0 commit comments

Comments
 (0)