Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit21ce54b

Browse files
committed
refactor TemplateVersionParameter to be a converter func
1 parentd2634e2 commit21ce54b

File tree

1 file changed

+84
-83
lines changed

1 file changed

+84
-83
lines changed

‎coderd/dynamicparameters/static.go

Lines changed: 84 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"golang.org/x/xerrors"
1010

1111
"github.com/coder/coder/v2/coderd/database"
12+
"github.com/coder/coder/v2/coderd/database/db2sdk"
1213
"github.com/coder/coder/v2/coderd/util/ptr"
1314
sdkproto"github.com/coder/coder/v2/provisionersdk/proto"
1415
"github.com/coder/preview"
@@ -26,89 +27,7 @@ func (r *loader) staticRender(ctx context.Context, db database.Store) (*staticRe
2627
returnnil,xerrors.Errorf("template version parameters: %w",err)
2728
}
2829

29-
params:=make([]previewtypes.Parameter,0,len(dbTemplateVersionParameters))
30-
for_,it:=rangedbTemplateVersionParameters {
31-
param:= previewtypes.Parameter{
32-
ParameterData: previewtypes.ParameterData{
33-
Name:it.Name,
34-
DisplayName:it.DisplayName,
35-
Description:it.Description,
36-
Type:previewtypes.ParameterType(it.Type),
37-
FormType:provider.ParameterFormType(it.FormType),
38-
Styling: previewtypes.ParameterStyling{},
39-
Mutable:it.Mutable,
40-
DefaultValue:previewtypes.StringLiteral(it.DefaultValue),
41-
Icon:it.Icon,
42-
Options:make([]*previewtypes.ParameterOption,0),
43-
Validations:make([]*previewtypes.ParameterValidation,0),
44-
Required:it.Required,
45-
Order:int64(it.DisplayOrder),
46-
Ephemeral:it.Ephemeral,
47-
Source:nil,
48-
},
49-
// Always use the default, since we used to assume the empty string
50-
Value:previewtypes.StringLiteral(it.DefaultValue),
51-
Diagnostics:make(previewtypes.Diagnostics,0),
52-
}
53-
54-
ifit.ValidationError!=""||it.ValidationRegex!=""||it.ValidationMonotonic!="" {
55-
varreg*string
56-
ifit.ValidationRegex!="" {
57-
reg=ptr.Ref(it.ValidationRegex)
58-
}
59-
60-
varvMin*int64
61-
ifit.ValidationMin.Valid {
62-
vMin=ptr.Ref(int64(it.ValidationMin.Int32))
63-
}
64-
65-
varvMax*int64
66-
ifit.ValidationMax.Valid {
67-
vMax=ptr.Ref(int64(it.ValidationMax.Int32))
68-
}
69-
70-
varmonotonic*string
71-
ifit.ValidationMonotonic!="" {
72-
monotonic=ptr.Ref(it.ValidationMonotonic)
73-
}
74-
75-
param.Validations=append(param.Validations,&previewtypes.ParameterValidation{
76-
Error:it.ValidationError,
77-
Regex:reg,
78-
Min:vMin,
79-
Max:vMax,
80-
Monotonic:monotonic,
81-
})
82-
}
83-
84-
varprotoOptions []*sdkproto.RichParameterOption
85-
err:=json.Unmarshal(it.Options,&protoOptions)
86-
iferr!=nil {
87-
param.Diagnostics=append(param.Diagnostics,&hcl.Diagnostic{
88-
Severity:hcl.DiagError,
89-
Summary:"Failed to parse json parameter options",
90-
Detail:err.Error(),
91-
})
92-
}
93-
94-
for_,opt:=rangeprotoOptions {
95-
param.Options=append(param.Options,&previewtypes.ParameterOption{
96-
Name:opt.Name,
97-
Description:opt.Description,
98-
Value:previewtypes.StringLiteral(opt.Value),
99-
Icon:opt.Icon,
100-
})
101-
}
102-
103-
// Take the form type from the ValidateFormType function. This is a bit
104-
// unfortunate we have to do this, but it will return the default form_type
105-
// for a given set of conditions.
106-
_,param.FormType,_=provider.ValidateFormType(provider.OptionType(param.Type),len(param.Options),param.FormType)
107-
108-
param.Diagnostics=append(param.Diagnostics,previewtypes.Diagnostics(param.Valid(param.Value))...)
109-
params=append(params,param)
110-
}
111-
30+
params:=db2sdk.List(dbTemplateVersionParameters,TemplateVersionParameter)
11231
return&staticRender{
11332
staticParams:params,
11433
},nil
@@ -140,3 +59,85 @@ func (r *staticRender) Render(_ context.Context, _ uuid.UUID, values map[string]
14059
}
14160

14261
func (*staticRender)Close() {}
62+
63+
funcTemplateVersionParameter(it database.TemplateVersionParameter) previewtypes.Parameter {
64+
param:= previewtypes.Parameter{
65+
ParameterData: previewtypes.ParameterData{
66+
Name:it.Name,
67+
DisplayName:it.DisplayName,
68+
Description:it.Description,
69+
Type:previewtypes.ParameterType(it.Type),
70+
FormType:provider.ParameterFormType(it.FormType),
71+
Styling: previewtypes.ParameterStyling{},
72+
Mutable:it.Mutable,
73+
DefaultValue:previewtypes.StringLiteral(it.DefaultValue),
74+
Icon:it.Icon,
75+
Options:make([]*previewtypes.ParameterOption,0),
76+
Validations:make([]*previewtypes.ParameterValidation,0),
77+
Required:it.Required,
78+
Order:int64(it.DisplayOrder),
79+
Ephemeral:it.Ephemeral,
80+
Source:nil,
81+
},
82+
// Always use the default, since we used to assume the empty string
83+
Value:previewtypes.StringLiteral(it.DefaultValue),
84+
Diagnostics:make(previewtypes.Diagnostics,0),
85+
}
86+
87+
ifit.ValidationError!=""||it.ValidationRegex!=""||it.ValidationMonotonic!="" {
88+
varreg*string
89+
ifit.ValidationRegex!="" {
90+
reg=ptr.Ref(it.ValidationRegex)
91+
}
92+
93+
varvMin*int64
94+
ifit.ValidationMin.Valid {
95+
vMin=ptr.Ref(int64(it.ValidationMin.Int32))
96+
}
97+
98+
varvMax*int64
99+
ifit.ValidationMax.Valid {
100+
vMax=ptr.Ref(int64(it.ValidationMax.Int32))
101+
}
102+
103+
varmonotonic*string
104+
ifit.ValidationMonotonic!="" {
105+
monotonic=ptr.Ref(it.ValidationMonotonic)
106+
}
107+
108+
param.Validations=append(param.Validations,&previewtypes.ParameterValidation{
109+
Error:it.ValidationError,
110+
Regex:reg,
111+
Min:vMin,
112+
Max:vMax,
113+
Monotonic:monotonic,
114+
})
115+
}
116+
117+
varprotoOptions []*sdkproto.RichParameterOption
118+
err:=json.Unmarshal(it.Options,&protoOptions)
119+
iferr!=nil {
120+
param.Diagnostics=append(param.Diagnostics,&hcl.Diagnostic{
121+
Severity:hcl.DiagError,
122+
Summary:"Failed to parse json parameter options",
123+
Detail:err.Error(),
124+
})
125+
}
126+
127+
for_,opt:=rangeprotoOptions {
128+
param.Options=append(param.Options,&previewtypes.ParameterOption{
129+
Name:opt.Name,
130+
Description:opt.Description,
131+
Value:previewtypes.StringLiteral(opt.Value),
132+
Icon:opt.Icon,
133+
})
134+
}
135+
136+
// Take the form type from the ValidateFormType function. This is a bit
137+
// unfortunate we have to do this, but it will return the default form_type
138+
// for a given set of conditions.
139+
_,param.FormType,_=provider.ValidateFormType(provider.OptionType(param.Type),len(param.Options),param.FormType)
140+
141+
param.Diagnostics=append(param.Diagnostics,previewtypes.Diagnostics(param.Valid(param.Value))...)
142+
returnparam
143+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp