Skip to content

Commit f5bf8f9

Browse files
committed
feat(coder): Add PATCH /templateversions/:templateversion endpoint
1 parent 247470b commit f5bf8f9

File tree

13 files changed

+228
-19
lines changed

13 files changed

+228
-19
lines changed

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

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
return updateWithReturn(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
if err != nil {
856-
return err
856+
return database.TemplateVersion{}, err
857857
}
858858
if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
859-
return err
859+
return database.TemplateVersion{}, err
860860
}
861861
return q.db.UpdateTemplateVersionByID(ctx, arg)
862862
}

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
if err := validateDatabaseType(arg); err != nil {
3418-
return err
3418+
return database.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-
return nil
3432+
return templateVersion, nil
34323433
}
3433-
return sql.ErrNoRows
3434+
return database.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 about customizing 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 about customizing 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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ 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,

coderd/templateversions.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,35 @@ 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+
// @Produce json
70+
// @Tags Templates
71+
// @Param templateversion path string true "Template version ID" format(uuid)
72+
// @Success 200 {object} codersdk.TemplateVersion
73+
// @Router /templateversions/{templateversion} [patch]
74+
func (api *API) patchTemplateVersion(rw http.ResponseWriter, r *http.Request) {
75+
ctx := r.Context()
76+
templateVersion := httpmw.TemplateVersionParam(r)
77+
var params codersdk.PatchTemplateVersionRequest
78+
if !httpapi.Read(ctx, rw, r, &params) {
79+
return
80+
}
81+
templateVersion, err := api.Database.UpdateTemplateVersionByID(ctx, database.UpdateTemplateVersionByIDParams{
82+
ID: templateVersion.ID,
83+
Name: params.Name,
84+
})
85+
if err != nil {
86+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
87+
Message: "Error on patching template version.",
88+
Detail: err.Error(),
89+
})
90+
return
91+
}
92+
httpapi.Write(ctx, rw, http.StatusNoContent, templateVersion)
93+
}
94+
6695
// @Summary Cancel template version by ID
6796
// @ID cancel-template-version-by-id
6897
// @Security CoderSessionToken

codersdk/deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func ParseSSHConfigOption(opt string) (key string, value string, err error) {
199199
return r == ' ' || r == '='
200200
})
201201
if idx == -1 {
202-
return "", "", fmt.Errorf("invalid config-ssh option %q", opt)
202+
return "", "", xerrors.New(fmt.Sprintf("invalid config-ssh option %q", opt))
203203
}
204204
return opt[:idx], opt[idx+1:], nil
205205
}

0 commit comments

Comments
 (0)