Thanks to visit codestin.com
Credit goes to github.com

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)