Skip to content

Commit 9d4e771

Browse files
committed
Fix setter pattern (use pointers).
1 parent 1c11f18 commit 9d4e771

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

codefresh/helper/validation/strings.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func StringMatchesRegExp(regex string, opts ...validationopts.OptionSetter) sche
4444
SetSeverity(diag.Error).
4545
SetSummary("Invalid value").
4646
SetDetailFormat("%s is invalid (must match %q)").
47+
SetRegexType(regexp2.RE2).
4748
Apply(opts)
4849

4950
return func(v any, p cty.Path) diag.Diagnostics {
@@ -53,7 +54,7 @@ func StringMatchesRegExp(regex string, opts ...validationopts.OptionSetter) sche
5354
if !re.MatchString(value) {
5455
diags = append(diags, diag.Diagnostic{
5556
Severity: options.GetSeverity(),
56-
Summary: fmt.Sprintf(options.GetSummary(), p),
57+
Summary: options.GetSummary(),
5758
Detail: fmt.Sprintf(options.GetDetailFormat(), value, re.String()),
5859
})
5960
}

codefresh/helper/validation/validationopts/base.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,47 +10,47 @@ type ValidationOptions struct {
1010
severity diag.Severity
1111
summary string
1212
detailFormat string
13-
CronValidationOptions CronValidationOptions
14-
StringValidationOptions StringValidationOptions
13+
CronValidationOptions *CronValidationOptions
14+
StringValidationOptions *StringValidationOptions
1515
}
1616

17-
type OptionSetter func(ValidationOptions)
17+
type OptionSetter func(*ValidationOptions)
1818

1919
func NewValidationOptions() *ValidationOptions {
2020
return &ValidationOptions{
2121
severity: diag.Error,
2222
summary: "",
2323
detailFormat: "",
24-
CronValidationOptions: CronValidationOptions{
24+
CronValidationOptions: &CronValidationOptions{
2525
Parser: cron.NewParser(cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow),
2626
},
27-
StringValidationOptions: StringValidationOptions{
27+
StringValidationOptions: &StringValidationOptions{
2828
regexp2.RE2,
2929
},
3030
}
3131
}
3232

3333
func WithSeverity(severity diag.Severity) OptionSetter {
34-
return func(o ValidationOptions) {
34+
return func(o *ValidationOptions) {
3535
o.SetSeverity(severity)
3636
}
3737
}
3838

3939
func WithSummary(summary string) OptionSetter {
40-
return func(o ValidationOptions) {
40+
return func(o *ValidationOptions) {
4141
o.SetSummary(summary)
4242
}
4343
}
4444

4545
func WithDetailFormat(detailFormat string) OptionSetter {
46-
return func(o ValidationOptions) {
46+
return func(o *ValidationOptions) {
4747
o.SetDetailFormat(detailFormat)
4848
}
4949
}
5050

5151
func (o *ValidationOptions) Apply(setters []OptionSetter) *ValidationOptions {
5252
for _, opt := range setters {
53-
opt(*o)
53+
opt(o)
5454
}
5555
return o
5656
}

codefresh/resource_pipeline_cron_trigger.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/codefresh-io/terraform-provider-codefresh/codefresh/cfclient"
1010
"github.com/codefresh-io/terraform-provider-codefresh/codefresh/helper/validation"
1111
"github.com/codefresh-io/terraform-provider-codefresh/codefresh/helper/validation/validationopts"
12+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1213
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
1314
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1415
)
@@ -51,9 +52,10 @@ func resourcePipelineCronTrigger() *schema.Resource {
5152
Type: schema.TypeString,
5253
Required: true,
5354
ValidateDiagFunc: validation.StringMatchesRegExp(
54-
// https://github.com/codefresh-io/hermes/blob/6d75b347cb8ff471ce970a766b2285788e5e19fe/pkg/backend/dev_compose_types.json#L226
55-
`^[a-zA-Z0-9_+\s-#?.:]{2,128}$`,
55+
validation.ValidCronMessageRegex,
56+
validationopts.WithSeverity(diag.Error),
5657
validationopts.WithSummary("Invalid cron trigger message"),
58+
validationopts.WithDetailFormat("The message %q is invalid (must match %q)."),
5759
),
5860
},
5961
},

0 commit comments

Comments
 (0)