Skip to content

Commit 758cd26

Browse files
committed
refactor loader
1 parent ea4aa7d commit 758cd26

File tree

2 files changed

+8
-20
lines changed

2 files changed

+8
-20
lines changed

coderd/dynamicparameters/render.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type Loader struct {
4545
terraformValues *database.TemplateVersionTerraformValue
4646
}
4747

48-
func New(versionID uuid.UUID) *Loader {
48+
func Prepare(versionID uuid.UUID) *Loader {
4949
return &Loader{
5050
templateVersionID: versionID,
5151
}
@@ -73,7 +73,7 @@ func (r *Loader) WithTerraformValues(values database.TemplateVersionTerraformVal
7373
return r
7474
}
7575

76-
func (r *Loader) Load(ctx context.Context, db database.Store) error {
76+
func (r *Loader) loadData(ctx context.Context, db database.Store) error {
7777
if r.templateVersion == nil {
7878
tv, err := db.GetTemplateVersionByID(ctx, r.templateVersionID)
7979
if err != nil {
@@ -105,10 +105,6 @@ func (r *Loader) Load(ctx context.Context, db database.Store) error {
105105
return nil
106106
}
107107

108-
func (r *Loader) isReady() bool {
109-
return r.templateVersion != nil && r.job != nil && r.terraformValues != nil
110-
}
111-
112108
// Renderer returns a Renderer that can be used to render the template version's
113109
// parameters. It automatically determines whether to use a static or dynamic
114110
// renderer based on the template version's state.
@@ -117,8 +113,9 @@ func (r *Loader) isReady() bool {
117113
// do not have the database state to support dynamic parameters. A constant
118114
// warning will be displayed for these template versions.
119115
func (r *Loader) Renderer(ctx context.Context, db database.Store, cache *files.Cache) (Renderer, error) {
120-
if !r.isReady() {
121-
return nil, xerrors.New("Load() must be called before Renderer()")
116+
err := r.loadData(ctx, db)
117+
if err != nil {
118+
return nil, xerrors.Errorf("load data: %w", err)
122119
}
123120

124121
if !ProvisionerVersionSupportsDynamicParameters(r.terraformValues.ProvisionerdVersion) {

coderd/parameters.go

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ func (api *API) templateVersionDynamicParameters(listen bool, initial codersdk.D
7474
ctx := r.Context()
7575
templateVersion := httpmw.TemplateVersionParam(r)
7676

77-
loader := dynamicparameters.New(templateVersion.ID).
78-
WithTemplateVersion(templateVersion)
77+
renderer, err := dynamicparameters.Prepare(templateVersion.ID).
78+
WithTemplateVersion(templateVersion).
79+
Renderer(ctx, api.Database, api.FileCache)
7980

80-
err := loader.Load(ctx, api.Database)
8181
if err != nil {
8282
if httpapi.Is404Error(err) {
8383
httpapi.ResourceNotFound(rw)
@@ -97,15 +97,6 @@ func (api *API) templateVersionDynamicParameters(listen bool, initial codersdk.D
9797
})
9898
return
9999
}
100-
101-
renderer, err := loader.Renderer(ctx, api.Database, api.FileCache)
102-
if err != nil {
103-
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
104-
Message: "Internal error creating renderer for template version.",
105-
Detail: err.Error(),
106-
})
107-
return
108-
}
109100
defer renderer.Close()
110101

111102
if listen {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy