feat(coderd): add support for presets to the coder API (#16526)

This pull request builds on the existing migrations and queries to add
support for presets to the coder API.
This commit is contained in:
Sas Swart
2025-02-12 14:41:14 +02:00
committed by GitHub
parent ec50a35c08
commit 71cbf735e5
18 changed files with 447 additions and 47 deletions

View File

@ -5494,25 +5494,19 @@ func (q *sqlQuerier) GetPresetsByTemplateVersionID(ctx context.Context, template
const insertPreset = `-- name: InsertPreset :one
INSERT INTO
template_version_presets (id, template_version_id, name, created_at)
template_version_presets (template_version_id, name, created_at)
VALUES
($1, $2, $3, $4) RETURNING id, template_version_id, name, created_at
($1, $2, $3) RETURNING id, template_version_id, name, created_at
`
type InsertPresetParams struct {
ID uuid.UUID `db:"id" json:"id"`
TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"`
Name string `db:"name" json:"name"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
}
func (q *sqlQuerier) InsertPreset(ctx context.Context, arg InsertPresetParams) (TemplateVersionPreset, error) {
row := q.db.QueryRowContext(ctx, insertPreset,
arg.ID,
arg.TemplateVersionID,
arg.Name,
arg.CreatedAt,
)
row := q.db.QueryRowContext(ctx, insertPreset, arg.TemplateVersionID, arg.Name, arg.CreatedAt)
var i TemplateVersionPreset
err := row.Scan(
&i.ID,
@ -5525,29 +5519,22 @@ func (q *sqlQuerier) InsertPreset(ctx context.Context, arg InsertPresetParams) (
const insertPresetParameters = `-- name: InsertPresetParameters :many
INSERT INTO
template_version_preset_parameters (id, template_version_preset_id, name, value)
template_version_preset_parameters (template_version_preset_id, name, value)
SELECT
$1,
$2,
unnest($3 :: TEXT[]),
unnest($4 :: TEXT[])
unnest($2 :: TEXT[]),
unnest($3 :: TEXT[])
RETURNING id, template_version_preset_id, name, value
`
type InsertPresetParametersParams struct {
ID uuid.UUID `db:"id" json:"id"`
TemplateVersionPresetID uuid.UUID `db:"template_version_preset_id" json:"template_version_preset_id"`
Names []string `db:"names" json:"names"`
Values []string `db:"values" json:"values"`
}
func (q *sqlQuerier) InsertPresetParameters(ctx context.Context, arg InsertPresetParametersParams) ([]TemplateVersionPresetParameter, error) {
rows, err := q.db.QueryContext(ctx, insertPresetParameters,
arg.ID,
arg.TemplateVersionPresetID,
pq.Array(arg.Names),
pq.Array(arg.Values),
)
rows, err := q.db.QueryContext(ctx, insertPresetParameters, arg.TemplateVersionPresetID, pq.Array(arg.Names), pq.Array(arg.Values))
if err != nil {
return nil, err
}