Skip to content

Commit 254fc8a

Browse files
committed
Backend changes
1 parent d35a458 commit 254fc8a

File tree

3 files changed

+110
-8
lines changed

3 files changed

+110
-8
lines changed

coderd/templateversions.go

Lines changed: 97 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,19 @@ func (api *API) templateVersion(rw http.ResponseWriter, r *http.Request) {
6262
return
6363
}
6464

65-
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user))
65+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
66+
if errors.Is(err, sql.ErrNoRows) {
67+
err = nil
68+
}
69+
if err != nil {
70+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
71+
Message: "Internal error listing parameter schemas.",
72+
Detail: err.Error(),
73+
})
74+
return
75+
}
76+
77+
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user, schemas))
6678
}
6779

6880
// @Summary Patch template version by ID
@@ -156,7 +168,19 @@ func (api *API) patchTemplateVersion(rw http.ResponseWriter, r *http.Request) {
156168
return
157169
}
158170

159-
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(updatedTemplateVersion, convertProvisionerJob(job), user))
171+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
172+
if errors.Is(err, sql.ErrNoRows) {
173+
err = nil
174+
}
175+
if err != nil {
176+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
177+
Message: "Internal error listing parameter schemas.",
178+
Detail: err.Error(),
179+
})
180+
return
181+
}
182+
183+
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(updatedTemplateVersion, convertProvisionerJob(job), user, schemas))
160184
}
161185

162186
// @Summary Cancel template version by ID
@@ -887,7 +911,18 @@ func (api *API) templateVersionsByTemplate(rw http.ResponseWriter, r *http.Reque
887911
})
888912
return err
889913
}
890-
apiVersions = append(apiVersions, convertTemplateVersion(version, convertProvisionerJob(job), user))
914+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
915+
if errors.Is(err, sql.ErrNoRows) {
916+
err = nil
917+
}
918+
if err != nil {
919+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
920+
Message: "Internal error listing parameter schemas.",
921+
Detail: err.Error(),
922+
})
923+
return err
924+
}
925+
apiVersions = append(apiVersions, convertTemplateVersion(version, convertProvisionerJob(job), user, schemas))
891926
}
892927

893928
return nil
@@ -951,7 +986,19 @@ func (api *API) templateVersionByName(rw http.ResponseWriter, r *http.Request) {
951986
return
952987
}
953988

954-
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user))
989+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
990+
if errors.Is(err, sql.ErrNoRows) {
991+
err = nil
992+
}
993+
if err != nil {
994+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
995+
Message: "Internal error listing parameter schemas.",
996+
Detail: err.Error(),
997+
})
998+
return
999+
}
1000+
1001+
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user, schemas))
9551002
}
9561003

9571004
// @Summary Get template version by organization, template, and name
@@ -1025,7 +1072,19 @@ func (api *API) templateVersionByOrganizationTemplateAndName(rw http.ResponseWri
10251072
return
10261073
}
10271074

1028-
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user))
1075+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
1076+
if errors.Is(err, sql.ErrNoRows) {
1077+
err = nil
1078+
}
1079+
if err != nil {
1080+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
1081+
Message: "Internal error listing parameter schemas.",
1082+
Detail: err.Error(),
1083+
})
1084+
return
1085+
}
1086+
1087+
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(templateVersion, convertProvisionerJob(job), user, schemas))
10291088
}
10301089

10311090
// @Summary Get previous template version by organization, template, and name
@@ -1120,7 +1179,19 @@ func (api *API) previousTemplateVersionByOrganizationTemplateAndName(rw http.Res
11201179
return
11211180
}
11221181

1123-
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(previousTemplateVersion, convertProvisionerJob(job), user))
1182+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, job.ID)
1183+
if errors.Is(err, sql.ErrNoRows) {
1184+
err = nil
1185+
}
1186+
if err != nil {
1187+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
1188+
Message: "Internal error listing parameter schemas.",
1189+
Detail: err.Error(),
1190+
})
1191+
return
1192+
}
1193+
1194+
httpapi.Write(ctx, rw, http.StatusOK, convertTemplateVersion(previousTemplateVersion, convertProvisionerJob(job), user, schemas))
11241195
}
11251196

11261197
// @Summary Update active template version by template ID
@@ -1494,7 +1565,19 @@ func (api *API) postTemplateVersionsByOrganization(rw http.ResponseWriter, r *ht
14941565
return
14951566
}
14961567

1497-
httpapi.Write(ctx, rw, http.StatusCreated, convertTemplateVersion(templateVersion, convertProvisionerJob(provisionerJob), user))
1568+
schemas, err := api.Database.GetParameterSchemasByJobID(ctx, provisionerJob.ID)
1569+
if errors.Is(err, sql.ErrNoRows) {
1570+
err = nil
1571+
}
1572+
if err != nil {
1573+
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
1574+
Message: "Internal error listing parameter schemas.",
1575+
Detail: err.Error(),
1576+
})
1577+
return
1578+
}
1579+
1580+
httpapi.Write(ctx, rw, http.StatusCreated, convertTemplateVersion(templateVersion, convertProvisionerJob(provisionerJob), user, schemas))
14981581
}
14991582

15001583
// templateVersionResources returns the workspace agent resources associated
@@ -1561,7 +1644,7 @@ func (api *API) templateVersionLogs(rw http.ResponseWriter, r *http.Request) {
15611644
api.provisionerJobLogs(rw, r, job)
15621645
}
15631646

1564-
func convertTemplateVersion(version database.TemplateVersion, job codersdk.ProvisionerJob, user database.User) codersdk.TemplateVersion {
1647+
func convertTemplateVersion(version database.TemplateVersion, job codersdk.ProvisionerJob, user database.User, schemas []database.ParameterSchema) codersdk.TemplateVersion {
15651648
createdBy := codersdk.User{
15661649
ID: user.ID,
15671650
Username: user.Username,
@@ -1572,6 +1655,11 @@ func convertTemplateVersion(version database.TemplateVersion, job codersdk.Provi
15721655
AvatarURL: user.AvatarURL.String,
15731656
}
15741657

1658+
var warnings []codersdk.TemplateVersionWarning
1659+
if len(schemas) > 0 {
1660+
warnings = append(warnings, codersdk.TemplateVersionWarningDeprecatedParameters)
1661+
}
1662+
15751663
return codersdk.TemplateVersion{
15761664
ID: version.ID,
15771665
TemplateID: &version.TemplateID.UUID,
@@ -1582,6 +1670,7 @@ func convertTemplateVersion(version database.TemplateVersion, job codersdk.Provi
15821670
Job: job,
15831671
Readme: version.Readme,
15841672
CreatedBy: createdBy,
1673+
Warnings: warnings,
15851674
}
15861675
}
15871676

codersdk/templateversions.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ import (
1111
"github.com/google/uuid"
1212
)
1313

14+
type TemplateVersionWarning string
15+
16+
const (
17+
TemplateVersionWarningDeprecatedParameters = "DEPRECATED_PARAMETERS"
18+
)
19+
1420
// TemplateVersion represents a single version of a template.
1521
type TemplateVersion struct {
1622
ID uuid.UUID `json:"id" format:"uuid"`
@@ -22,6 +28,8 @@ type TemplateVersion struct {
2228
Job ProvisionerJob `json:"job"`
2329
Readme string `json:"readme"`
2430
CreatedBy User `json:"created_by"`
31+
32+
Warnings []TemplateVersionWarning `json:"warnings,omitempty" enums:"DEPRECATED_PARAMETERS"`
2533
}
2634

2735
type TemplateVersionGitAuth struct {

site/src/api/typesGenerated.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,6 +899,7 @@ export interface TemplateVersion {
899899
readonly job: ProvisionerJob
900900
readonly readme: string
901901
readonly created_by: User
902+
readonly warnings?: TemplateVersionWarning[]
902903
}
903904

904905
// From codersdk/templateversions.go
@@ -1590,6 +1591,10 @@ export const ServerSentEventTypes: ServerSentEventType[] = [
15901591
export type TemplateRole = "" | "admin" | "use"
15911592
export const TemplateRoles: TemplateRole[] = ["", "admin", "use"]
15921593

1594+
// From codersdk/templateversions.go
1595+
export type TemplateVersionWarning = never
1596+
export const TemplateVersionWarnings: TemplateVersionWarning[] = []
1597+
15931598
// From codersdk/users.go
15941599
export type UserStatus = "active" | "suspended"
15951600
export const UserStatuses: UserStatus[] = ["active", "suspended"]

0 commit comments

Comments
 (0)