Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9aaad74

Browse files
committed
small refactor
1 parentaa46321 commit9aaad74

File tree

2 files changed

+14
-30
lines changed

2 files changed

+14
-30
lines changed

‎coderd/aitasks.go‎

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"context"
66
"database/sql"
7-
"encoding/json"
87
"errors"
98
"fmt"
109
"net/http"
@@ -447,6 +446,7 @@ func (api *API) taskGet(rw http.ResponseWriter, r *http.Request) {
447446
// It creates a delete workspace build and returns 202 Accepted if the build was created.
448447
func (api*API)taskDelete(rw http.ResponseWriter,r*http.Request) {
449448
ctx:=r.Context()
449+
apiKey:=httpmw.APIKey(r)
450450

451451
idStr:=chi.URLParam(r,"id")
452452
taskID,err:=uuid.Parse(idStr)
@@ -490,39 +490,15 @@ func (api *API) taskDelete(rw http.ResponseWriter, r *http.Request) {
490490
return
491491
}
492492

493-
// Construct a request to the workspace build creation handler to initiate deletion.
493+
// Construct a request to the workspace build creation handler to
494+
// initiate deletion.
494495
buildReq:= codersdk.CreateWorkspaceBuildRequest{
495496
Transition:codersdk.WorkspaceTransitionDelete,
497+
Reason:"Deleted via tasks API",
496498
}
497-
body,err:=json.Marshal(buildReq)
498-
iferr!=nil {
499-
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
500-
Message:"Internal error marshaling delete request.",
501-
Detail:err.Error(),
502-
})
503-
return
504-
}
505-
506-
req,err:=http.NewRequestWithContext(ctx,http.MethodPost,fmt.Sprintf("/api/v2/workspaces/%s/builds",workspace.ID.String()),bytes.NewReader(body))
507-
iferr!=nil {
508-
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
509-
Message:"Internal error creating request.",
510-
Detail:err.Error(),
511-
})
512-
return
513-
}
514-
req.Header.Set("Content-Type","application/json")
515-
516-
// Inject the "workspace" URL param so ExtractWorkspaceParam can
517-
// resolve the workspace.
518-
rctx:=chi.NewRouteContext()
519-
rctx.URLParams.Add("workspace",workspace.ID.String())
520-
req=req.WithContext(context.WithValue(req.Context(),chi.RouteCtxKey,rctx))
521499

522-
// Call the existing workspace build handler via middleware.
523500
rc:=&responseWriterCapture{}
524-
handler:=httpmw.ExtractWorkspaceParam(api.Database)(http.HandlerFunc(api.postWorkspaceBuilds))
525-
handler.ServeHTTP(rc,req)
501+
api.postWorkspaceBuildsInternal(rc,r,apiKey,workspace,buildReq)
526502

527503
status:=rc.status
528504
ifstatus==0 {

‎coderd/workspacebuilds.go‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,21 @@ func (api *API) workspaceBuildByBuildNumber(rw http.ResponseWriter, r *http.Requ
329329
func (api*API)postWorkspaceBuilds(rw http.ResponseWriter,r*http.Request) {
330330
ctx:=r.Context()
331331
apiKey:=httpmw.APIKey(r)
332-
333332
workspace:=httpmw.WorkspaceParam(r)
334333
varcreateBuild codersdk.CreateWorkspaceBuildRequest
335334
if!httpapi.Read(ctx,rw,r,&createBuild) {
336335
return
337336
}
338337

338+
api.postWorkspaceBuildsInternal(rw,r,apiKey,workspace,createBuild)
339+
}
340+
341+
// postWorkspaceBuildsInternal handles the internal logic for creating
342+
// workspace builds, can be called by other handlers and must not
343+
// reference httpmw.
344+
func (api*API)postWorkspaceBuildsInternal(rw http.ResponseWriter,r*http.Request,apiKey database.APIKey,workspace database.Workspace,createBuild codersdk.CreateWorkspaceBuildRequest) {
345+
ctx:=r.Context()
346+
339347
transition:=database.WorkspaceTransition(createBuild.Transition)
340348
builder:=wsbuilder.New(workspace,transition,*api.BuildUsageChecker.Load()).
341349
Initiator(apiKey.UserID).

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp