Skip to content

Commit 95abf62

Browse files
committed
feat: add parameter resolution to workspace endpoint
1 parent 2dce415 commit 95abf62

File tree

13 files changed

+292
-20
lines changed

13 files changed

+292
-20
lines changed

coderd/database/db2sdk/db2sdk.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/google/uuid"
99
"golang.org/x/exp/slices"
10+
"golang.org/x/xerrors"
1011

1112
"github.com/coder/coder/v2/coderd/database"
1213
"github.com/coder/coder/v2/coderd/parameter"
@@ -25,11 +26,24 @@ func WorkspaceBuildParameters(params []database.WorkspaceBuildParameter) []coder
2526

2627
func WorkspaceBuildParameter(p database.WorkspaceBuildParameter) codersdk.WorkspaceBuildParameter {
2728
return codersdk.WorkspaceBuildParameter{
28-
Name: p.Name,
29-
Value: p.Value,
29+
BuildID: p.WorkspaceBuildID,
30+
Name: p.Name,
31+
Value: p.Value,
3032
}
3133
}
3234

35+
func TemplateVersionParameters(params []database.TemplateVersionParameter) ([]codersdk.TemplateVersionParameter, error) {
36+
out := make([]codersdk.TemplateVersionParameter, len(params))
37+
var err error
38+
for i, p := range params {
39+
out[i], err = TemplateVersionParameter(p)
40+
if err != nil {
41+
return nil, xerrors.Errorf("convert parameter %q: %w", p.Name, err)
42+
}
43+
}
44+
return out, nil
45+
}
46+
3347
func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk.TemplateVersionParameter, error) {
3448
options, err := templateVersionParameterOptions(param.Options)
3549
if err != nil {
@@ -68,6 +82,7 @@ func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk
6882
ValidationMonotonic: codersdk.ValidationMonotonicOrder(param.ValidationMonotonic),
6983
Required: param.Required,
7084
Ephemeral: param.Ephemeral,
85+
TemplateVersionID: param.TemplateVersionID,
7186
}, nil
7287
}
7388

coderd/database/dbauthz/dbauthz.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,6 +1428,10 @@ func (q *querier) GetTemplateVersionParameters(ctx context.Context, templateVers
14281428
return q.db.GetTemplateVersionParameters(ctx, templateVersionID)
14291429
}
14301430

1431+
func (q *querier) GetTemplateVersionParametersByVersionIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersionParameter, error) {
1432+
panic("not implemented")
1433+
}
1434+
14311435
func (q *querier) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
14321436
tv, err := q.db.GetTemplateVersionByID(ctx, templateVersionID)
14331437
if err != nil {
@@ -1781,6 +1785,10 @@ func (q *querier) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuil
17811785
return q.db.GetWorkspaceBuildParameters(ctx, workspaceBuildID)
17821786
}
17831787

1788+
func (q *querier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
1789+
panic("not implemented")
1790+
}
1791+
17841792
func (q *querier) GetWorkspaceBuildsByWorkspaceID(ctx context.Context, arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild, error) {
17851793
if _, err := q.GetWorkspaceByID(ctx, arg.WorkspaceID); err != nil {
17861794
return nil, err

coderd/database/dbmem/dbmem.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2906,6 +2906,10 @@ func (q *FakeQuerier) GetTemplateVersionParameters(_ context.Context, templateVe
29062906
return parameters, nil
29072907
}
29082908

2909+
func (q *FakeQuerier) GetTemplateVersionParametersByVersionIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersionParameter, error) {
2910+
panic("not implemented")
2911+
}
2912+
29092913
func (q *FakeQuerier) GetTemplateVersionVariables(_ context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
29102914
q.mutex.RLock()
29112915
defer q.mutex.RUnlock()
@@ -3959,6 +3963,10 @@ func (q *FakeQuerier) GetWorkspaceBuildParameters(_ context.Context, workspaceBu
39593963
return params, nil
39603964
}
39613965

3966+
func (q *FakeQuerier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
3967+
panic("not implemented")
3968+
}
3969+
39623970
func (q *FakeQuerier) GetWorkspaceBuildsByWorkspaceID(_ context.Context,
39633971
params database.GetWorkspaceBuildsByWorkspaceIDParams,
39643972
) ([]database.WorkspaceBuild, error) {

coderd/database/dbmetrics/dbmetrics.go

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

coderd/database/dbmock/dbmock.go

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

coderd/database/querier.go

Lines changed: 2 additions & 0 deletions
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: 77 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/templateversionparameters.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,6 @@ VALUES
4242

4343
-- name: GetTemplateVersionParameters :many
4444
SELECT * FROM template_version_parameters WHERE template_version_id = $1 ORDER BY display_order ASC, LOWER(name) ASC;
45+
46+
-- name: GetTemplateVersionParametersByVersionIDs :many
47+
SELECT * FROM template_version_parameters WHERE template_version_id = ANY(@ids :: uuid [ ]);

coderd/database/queries/workspacebuildparameters.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,11 @@ FROM
1414
workspace_build_parameters
1515
WHERE
1616
workspace_build_id = $1;
17+
18+
-- name: GetWorkspaceBuildParametersByBuildIDs :many
19+
SELECT
20+
*
21+
FROM
22+
workspace_build_parameters
23+
WHERE
24+
workspace_build_id = ANY(@ids :: uuid [ ]);

0 commit comments

Comments
 (0)