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

Commit8857971

Browse files
feat(coder): Add PATCH /templateversions/:templateversion endpoint (#6698)
1 parented9a3b9 commit8857971

File tree

16 files changed

+391
-19
lines changed

16 files changed

+391
-19
lines changed

‎coderd/apidoc/docs.go

Lines changed: 53 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/apidoc/swagger.json

Lines changed: 47 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/coderd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ func New(options *Options) *API {
500500
httpmw.ExtractTemplateVersionParam(options.Database),
501501
)
502502
r.Get("/",api.templateVersion)
503+
r.Patch("/",api.patchTemplateVersion)
503504
r.Patch("/cancel",api.patchCancelTemplateVersion)
504505
r.Get("/schema",api.templateVersionSchema)
505506
r.Get("/parameters",api.templateVersionParameters)

‎coderd/database/dbauthz/querier.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -850,13 +850,13 @@ func (q *querier) UpdateTemplateScheduleByID(ctx context.Context, arg database.U
850850
returnupdateWithReturn(q.log,q.auth,fetch,q.db.UpdateTemplateScheduleByID)(ctx,arg)
851851
}
852852

853-
func (q*querier)UpdateTemplateVersionByID(ctx context.Context,arg database.UpdateTemplateVersionByIDParams)error {
853+
func (q*querier)UpdateTemplateVersionByID(ctx context.Context,arg database.UpdateTemplateVersionByIDParams)(database.TemplateVersion,error) {
854854
template,err:=q.db.GetTemplateByID(ctx,arg.TemplateID.UUID)
855855
iferr!=nil {
856-
returnerr
856+
returndatabase.TemplateVersion{},err
857857
}
858858
iferr:=q.authorizeContext(ctx,rbac.ActionUpdate,template);err!=nil {
859-
returnerr
859+
returndatabase.TemplateVersion{},err
860860
}
861861
returnq.db.UpdateTemplateVersionByID(ctx,arg)
862862
}

‎coderd/database/dbauthz/querier_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -721,7 +721,9 @@ func (s *MethodTestSuite) TestTemplate() {
721721
check.Args(database.UpdateTemplateVersionByIDParams{
722722
ID:tv.ID,
723723
TemplateID: uuid.NullUUID{UUID:t1.ID,Valid:true},
724-
}).Asserts(t1,rbac.ActionUpdate).Returns()
724+
Name:tv.Name,
725+
UpdatedAt:tv.UpdatedAt,
726+
}).Asserts(t1,rbac.ActionUpdate).Returns(tv)
725727
}))
726728
s.Run("UpdateTemplateVersionDescriptionByJobID",s.Subtest(func(db database.Store,check*expects) {
727729
jobID:=uuid.New()

‎coderd/database/dbfake/databasefake.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3413,9 +3413,9 @@ func (q *fakeQuerier) UpdateTemplateACLByID(_ context.Context, arg database.Upda
34133413
return database.Template{},sql.ErrNoRows
34143414
}
34153415

3416-
func (q*fakeQuerier)UpdateTemplateVersionByID(_ context.Context,arg database.UpdateTemplateVersionByIDParams)error {
3416+
func (q*fakeQuerier)UpdateTemplateVersionByID(_ context.Context,arg database.UpdateTemplateVersionByIDParams)(database.TemplateVersion,error) {
34173417
iferr:=validateDatabaseType(arg);err!=nil {
3418-
returnerr
3418+
returndatabase.TemplateVersion{},err
34193419
}
34203420

34213421
q.mutex.Lock()
@@ -3427,10 +3427,11 @@ func (q *fakeQuerier) UpdateTemplateVersionByID(_ context.Context, arg database.
34273427
}
34283428
templateVersion.TemplateID=arg.TemplateID
34293429
templateVersion.UpdatedAt=arg.UpdatedAt
3430+
templateVersion.Name=arg.Name
34303431
q.templateVersions[index]=templateVersion
3431-
returnnil
3432+
returntemplateVersion,nil
34323433
}
3433-
returnsql.ErrNoRows
3434+
returndatabase.TemplateVersion{},sql.ErrNoRows
34343435
}
34353436

34363437
func (q*fakeQuerier)UpdateTemplateVersionDescriptionByJobID(_ context.Context,arg database.UpdateTemplateVersionDescriptionByJobIDParams)error {

‎coderd/database/querier.go

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

‎coderd/database/queries.sql.go

Lines changed: 26 additions & 6 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/templateversions.sql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,15 @@ INSERT INTO
8484
VALUES
8585
($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING*;
8686

87-
-- name: UpdateTemplateVersionByID :exec
87+
-- name: UpdateTemplateVersionByID :one
8888
UPDATE
8989
template_versions
9090
SET
9191
template_id= $2,
92-
updated_at= $3
92+
updated_at= $3,
93+
name= $4
9394
WHERE
94-
id= $1;
95+
id= $1 RETURNING*;
9596

9697
-- name: UpdateTemplateVersionDescriptionByJobID :exec
9798
UPDATE

‎coderd/templates.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,14 @@ func (api *API) postTemplateByOrganization(rw http.ResponseWriter, r *http.Reque
269269

270270
templateAudit.New=dbTemplate
271271

272-
err=tx.UpdateTemplateVersionByID(ctx, database.UpdateTemplateVersionByIDParams{
272+
_,err=tx.UpdateTemplateVersionByID(ctx, database.UpdateTemplateVersionByIDParams{
273273
ID:templateVersion.ID,
274274
TemplateID: uuid.NullUUID{
275275
UUID:dbTemplate.ID,
276276
Valid:true,
277277
},
278278
UpdatedAt:database.Now(),
279+
Name:templateVersion.Name,
279280
})
280281
iferr!=nil {
281282
returnxerrors.Errorf("insert template version: %s",err)

‎coderd/templateversions.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,66 @@ func (api *API) templateVersion(rw http.ResponseWriter, r *http.Request) {
6363
httpapi.Write(ctx,rw,http.StatusOK,convertTemplateVersion(templateVersion,convertProvisionerJob(job),user))
6464
}
6565

66+
// @Summary Patch template version by ID
67+
// @ID patch-template-version-by-id
68+
// @Security CoderSessionToken
69+
// @Accept json
70+
// @Produce json
71+
// @Tags Templates
72+
// @Param templateversion path string true "Template version ID" format(uuid)
73+
// @Param request body codersdk.PatchTemplateVersionRequest true "Patch template version request"
74+
// @Success 200 {object} codersdk.TemplateVersion
75+
// @Router /templateversions/{templateversion} [patch]
76+
func (api*API)patchTemplateVersion(rw http.ResponseWriter,r*http.Request) {
77+
ctx:=r.Context()
78+
templateVersion:=httpmw.TemplateVersionParam(r)
79+
80+
varparams codersdk.PatchTemplateVersionRequest
81+
if!httpapi.Read(ctx,rw,r,&params) {
82+
return
83+
}
84+
85+
updateParams:= database.UpdateTemplateVersionByIDParams{
86+
ID:templateVersion.ID,
87+
TemplateID:templateVersion.TemplateID,
88+
UpdatedAt:database.Now(),
89+
Name:templateVersion.Name,
90+
}
91+
92+
ifparams.Name!="" {
93+
updateParams.Name=params.Name
94+
}
95+
// It is not allowed to "patch" the template ID, and reassign it.
96+
updatedTemplateVersion,err:=api.Database.UpdateTemplateVersionByID(ctx,updateParams)
97+
iferr!=nil {
98+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
99+
Message:"Error on patching template version.",
100+
Detail:err.Error(),
101+
})
102+
return
103+
}
104+
105+
job,err:=api.Database.GetProvisionerJobByID(ctx,templateVersion.JobID)
106+
iferr!=nil {
107+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
108+
Message:"Internal error fetching provisioner job.",
109+
Detail:err.Error(),
110+
})
111+
return
112+
}
113+
114+
user,err:=api.Database.GetUserByID(ctx,templateVersion.CreatedBy)
115+
iferr!=nil {
116+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
117+
Message:"Internal error on fetching user.",
118+
Detail:err.Error(),
119+
})
120+
return
121+
}
122+
123+
httpapi.Write(ctx,rw,http.StatusOK,convertTemplateVersion(updatedTemplateVersion,convertProvisionerJob(job),user))
124+
}
125+
66126
// @Summary Cancel template version by ID
67127
// @ID cancel-template-version-by-id
68128
// @Security CoderSessionToken

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp