From a1f7113520f377de2b289a14ea4ddeb49e2bfbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 28 Nov 2024 14:59:57 +0100 Subject: [PATCH 1/9] fix newlines after runnnig generator and missing reference operator for pointer fileds --- .../templates/sub_templates/to_opts_mapping.tmpl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl b/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl index d304292cc5..039110202b 100644 --- a/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl +++ b/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl @@ -14,8 +14,8 @@ if r{{ .Path }} != nil { {{ end }} - {{- if not .IsSlice }} - opts{{ .Path }} = {{ template "toOptsMapping" . -}}{{/* Recursive call */}} + {{- if not .IsSlice -}} + opts{{ .Path }} = {{ if .IsPointer }}&{{else}}{{end}}{{ template "toOptsMapping" . -}}{{/* Recursive call */}} {{- else }} s := make({{ .Kind }}, len(r{{ .Path }})) for i, v := range r{{ .Path }} { @@ -28,9 +28,9 @@ opts{{ .Path }} = s {{ end -}} - {{ if or .IsPointer .IsSlice }} + {{ if or .IsPointer .IsSlice -}} } - {{ end }} + {{- end -}} {{- end -}} {{ end -}} {{ end }} From 23a4deb79eebc3aae18392f10969a457f82eec1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Mon, 2 Dec 2024 11:01:44 +0100 Subject: [PATCH 2/9] optional query structs generation example --- .../example/to_opts_optional_example_def.go | 30 ++++++++++++++++ .../to_opts_optional_example_dto_gen.go | 22 ++++++++++++ .../example/to_opts_optional_example_gen.go | 22 ++++++++++++ .../to_opts_optional_example_impl_gen.go | 34 +++++++++++++++++++ ...o_opts_optional_example_validations_gen.go | 13 +++++++ pkg/sdk/poc/main.go | 1 + 6 files changed, 122 insertions(+) create mode 100644 pkg/sdk/poc/example/to_opts_optional_example_def.go create mode 100644 pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go create mode 100644 pkg/sdk/poc/example/to_opts_optional_example_gen.go create mode 100644 pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go create mode 100644 pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go diff --git a/pkg/sdk/poc/example/to_opts_optional_example_def.go b/pkg/sdk/poc/example/to_opts_optional_example_def.go new file mode 100644 index 0000000000..4c951cc95c --- /dev/null +++ b/pkg/sdk/poc/example/to_opts_optional_example_def.go @@ -0,0 +1,30 @@ +package example + +import ( + g "github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk/poc/generator" +) + +//go:generate go run ../main.go + +var ToOptsOptionalExample = g.NewInterface( + "ToOptsOptionalExamples", + "ToOptsOptionalExample", + g.KindOfT[DatabaseObjectIdentifier](), +).AlterOperation("https://example.com", + g.NewQueryStruct("Alter"). + Alter(). + IfExists(). + Name(). + OptionalQueryStructField( + "OptionalField", + g.NewQueryStruct("OptionalField"). + List("SomeList", "DatabaseObjectIdentifier", g.ListOptions()), + g.KeywordOptions(), + ). + QueryStructField( + "RequiredField", + g.NewQueryStruct("RequiredField"). + List("SomeRequiredList", "DatabaseObjectIdentifier", g.ListOptions()), + g.KeywordOptions(), + ), +) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go new file mode 100644 index 0000000000..d194d39b18 --- /dev/null +++ b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go @@ -0,0 +1,22 @@ +package example + +//go:generate go run ./dto-builder-generator/main.go + +var ( + _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) +) + +type AlterToOptsOptionalExampleRequest struct { + IfExists *bool + name DatabaseObjectIdentifier // required + OptionalField *OptionalFieldRequest + RequiredField RequiredFieldRequest +} + +type OptionalFieldRequest struct { + SomeList []DatabaseObjectIdentifier +} + +type RequiredFieldRequest struct { + SomeRequiredList []DatabaseObjectIdentifier +} diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_gen.go new file mode 100644 index 0000000000..96698a209e --- /dev/null +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen.go @@ -0,0 +1,22 @@ +package example + +import "context" + +type ToOptsOptionalExamples interface { + Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error +} + +// AlterToOptsOptionalExampleOptions is based on https://example.com. +type AlterToOptsOptionalExampleOptions struct { + alter bool `ddl:"static" sql:"ALTER"` + IfExists *bool `ddl:"keyword" sql:"IF EXISTS"` + name DatabaseObjectIdentifier `ddl:"identifier"` + OptionalField *OptionalField `ddl:"keyword"` + RequiredField RequiredField `ddl:"keyword"` +} +type OptionalField struct { + SomeList []DatabaseObjectIdentifier `ddl:"list"` +} +type RequiredField struct { + SomeRequiredList []DatabaseObjectIdentifier `ddl:"list"` +} diff --git a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go new file mode 100644 index 0000000000..877b6f0701 --- /dev/null +++ b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go @@ -0,0 +1,34 @@ +package example + +import ( + "context" +) + +var _ ToOptsOptionalExamples = (*toOptsOptionalExamples)(nil) + +type toOptsOptionalExamples struct { + client *Client +} + +func (v *toOptsOptionalExamples) Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error { + opts := request.toOpts() + return validateAndExec(v.client, ctx, opts) +} + +func (r *AlterToOptsOptionalExampleRequest) toOpts() *AlterToOptsOptionalExampleOptions { + opts := &AlterToOptsOptionalExampleOptions{ + IfExists: r.IfExists, + name: r.name, + } + + if r.OptionalField != nil { + opts.OptionalField = &OptionalField{ + SomeList: r.OptionalField.SomeList, + } + } + opts.RequiredField = RequiredField{ + SomeRequiredList: r.RequiredField.SomeRequiredList, + } + + return opts +} diff --git a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go new file mode 100644 index 0000000000..1f091f7d5f --- /dev/null +++ b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go @@ -0,0 +1,13 @@ +package example + +import "errors" + +var _ validatable = new(AlterToOptsOptionalExampleOptions) + +func (opts *AlterToOptsOptionalExampleOptions) validate() error { + if opts == nil { + return ErrNilOptions + } + var errs []error + return errors.Join(errs...) +} diff --git a/pkg/sdk/poc/main.go b/pkg/sdk/poc/main.go index 6787167c25..588c75cbb1 100644 --- a/pkg/sdk/poc/main.go +++ b/pkg/sdk/poc/main.go @@ -18,6 +18,7 @@ import ( var definitionMapping = map[string]*generator.Interface{ "database_role_def.go": example.DatabaseRole, + "to_opts_optional_example_def.go": example.ToOptsOptionalExample, "network_policies_def.go": sdk.NetworkPoliciesDef, "session_policies_def.go": sdk.SessionPoliciesDef, "tasks_def.go": sdk.TasksDef, From a3961d548f1e5c1c1d5ab3a150a162e810d732ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Mon, 2 Dec 2024 11:08:11 +0100 Subject: [PATCH 3/9] linter adjustemnts --- pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go | 4 +--- pkg/sdk/poc/main.go | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go index d194d39b18..c6fb54173a 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go @@ -2,9 +2,7 @@ package example //go:generate go run ./dto-builder-generator/main.go -var ( - _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) -) +var _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) type AlterToOptsOptionalExampleRequest struct { IfExists *bool diff --git a/pkg/sdk/poc/main.go b/pkg/sdk/poc/main.go index 588c75cbb1..d7fd8c094a 100644 --- a/pkg/sdk/poc/main.go +++ b/pkg/sdk/poc/main.go @@ -18,7 +18,7 @@ import ( var definitionMapping = map[string]*generator.Interface{ "database_role_def.go": example.DatabaseRole, - "to_opts_optional_example_def.go": example.ToOptsOptionalExample, + "to_opts_optional_example_def.go": example.ToOptsOptionalExample, "network_policies_def.go": sdk.NetworkPoliciesDef, "session_policies_def.go": sdk.SessionPoliciesDef, "tasks_def.go": sdk.TasksDef, From 17469b580f4416e17688faf0f11ef980f0e27b53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Tue, 3 Dec 2024 17:37:35 +0100 Subject: [PATCH 4/9] naming fixes, spaces between struct, removed {{else}} and added required do keywordOptions --- ...f.go => generator_features_example_def.go} | 10 +++---- ... => generator_features_example_dto_gen.go} | 10 ++++--- ...n.go => generator_features_example_gen.go} | 10 ++++--- ...r_features_example_gen_integration_test.go | 11 +++++++ .../generator_features_example_gen_test.go | 30 +++++++++++++++++++ ...=> generator_features_example_impl_gen.go} | 10 +++---- ...rator_features_example_validations_gen.go} | 4 +-- pkg/sdk/poc/generator/templates/struct.tmpl | 1 + .../sub_templates/to_opts_mapping.tmpl | 2 +- pkg/sdk/poc/main.go | 2 +- 10 files changed, 68 insertions(+), 22 deletions(-) rename pkg/sdk/poc/example/{to_opts_optional_example_def.go => generator_features_example_def.go} (81%) rename pkg/sdk/poc/example/{to_opts_optional_example_dto_gen.go => generator_features_example_dto_gen.go} (55%) rename pkg/sdk/poc/example/{to_opts_optional_example_gen.go => generator_features_example_gen.go} (68%) create mode 100644 pkg/sdk/poc/example/generator_features_example_gen_integration_test.go create mode 100644 pkg/sdk/poc/example/generator_features_example_gen_test.go rename pkg/sdk/poc/example/{to_opts_optional_example_impl_gen.go => generator_features_example_impl_gen.go} (53%) rename pkg/sdk/poc/example/{to_opts_optional_example_validations_gen.go => generator_features_example_validations_gen.go} (50%) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_def.go b/pkg/sdk/poc/example/generator_features_example_def.go similarity index 81% rename from pkg/sdk/poc/example/to_opts_optional_example_def.go rename to pkg/sdk/poc/example/generator_features_example_def.go index 4c951cc95c..145a4ebf4c 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_def.go +++ b/pkg/sdk/poc/example/generator_features_example_def.go @@ -6,9 +6,9 @@ import ( //go:generate go run ../main.go -var ToOptsOptionalExample = g.NewInterface( - "ToOptsOptionalExamples", - "ToOptsOptionalExample", +var GeneratorFeaturesExample = g.NewInterface( + "FeaturesExample", + "FeaturesExamples", g.KindOfT[DatabaseObjectIdentifier](), ).AlterOperation("https://example.com", g.NewQueryStruct("Alter"). @@ -24,7 +24,7 @@ var ToOptsOptionalExample = g.NewInterface( QueryStructField( "RequiredField", g.NewQueryStruct("RequiredField"). - List("SomeRequiredList", "DatabaseObjectIdentifier", g.ListOptions()), - g.KeywordOptions(), + List("SomeRequiredList", "DatabaseObjectIdentifier", g.ListOptions().Required()), + g.KeywordOptions().Required(), ), ) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/generator_features_example_dto_gen.go similarity index 55% rename from pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go rename to pkg/sdk/poc/example/generator_features_example_dto_gen.go index c6fb54173a..7fc23e8f2c 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go +++ b/pkg/sdk/poc/example/generator_features_example_dto_gen.go @@ -2,13 +2,15 @@ package example //go:generate go run ./dto-builder-generator/main.go -var _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) +var ( + _ optionsProvider[AlterFeaturesExamplesOptions] = new(AlterFeaturesExamplesRequest) +) -type AlterToOptsOptionalExampleRequest struct { +type AlterFeaturesExamplesRequest struct { IfExists *bool name DatabaseObjectIdentifier // required OptionalField *OptionalFieldRequest - RequiredField RequiredFieldRequest + RequiredField RequiredFieldRequest // required } type OptionalFieldRequest struct { @@ -16,5 +18,5 @@ type OptionalFieldRequest struct { } type RequiredFieldRequest struct { - SomeRequiredList []DatabaseObjectIdentifier + SomeRequiredList []DatabaseObjectIdentifier // required } diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen.go b/pkg/sdk/poc/example/generator_features_example_gen.go similarity index 68% rename from pkg/sdk/poc/example/to_opts_optional_example_gen.go rename to pkg/sdk/poc/example/generator_features_example_gen.go index 96698a209e..1a4766b9b9 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen.go +++ b/pkg/sdk/poc/example/generator_features_example_gen.go @@ -2,21 +2,23 @@ package example import "context" -type ToOptsOptionalExamples interface { - Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error +type FeaturesExample interface { + Alter(ctx context.Context, request *AlterFeaturesExamplesRequest) error } -// AlterToOptsOptionalExampleOptions is based on https://example.com. -type AlterToOptsOptionalExampleOptions struct { +// AlterFeaturesExamplesOptions is based on https://example.com. +type AlterFeaturesExamplesOptions struct { alter bool `ddl:"static" sql:"ALTER"` IfExists *bool `ddl:"keyword" sql:"IF EXISTS"` name DatabaseObjectIdentifier `ddl:"identifier"` OptionalField *OptionalField `ddl:"keyword"` RequiredField RequiredField `ddl:"keyword"` } + type OptionalField struct { SomeList []DatabaseObjectIdentifier `ddl:"list"` } + type RequiredField struct { SomeRequiredList []DatabaseObjectIdentifier `ddl:"list"` } diff --git a/pkg/sdk/poc/example/generator_features_example_gen_integration_test.go b/pkg/sdk/poc/example/generator_features_example_gen_integration_test.go new file mode 100644 index 0000000000..356cc00c68 --- /dev/null +++ b/pkg/sdk/poc/example/generator_features_example_gen_integration_test.go @@ -0,0 +1,11 @@ +package example + +import "testing" + +func TestInt_FeaturesExample(t *testing.T) { + // TODO: prepare common resources + + t.Run("Alter", func(t *testing.T) { + // TODO: fill me + }) +} diff --git a/pkg/sdk/poc/example/generator_features_example_gen_test.go b/pkg/sdk/poc/example/generator_features_example_gen_test.go new file mode 100644 index 0000000000..527d1026e7 --- /dev/null +++ b/pkg/sdk/poc/example/generator_features_example_gen_test.go @@ -0,0 +1,30 @@ +package example + +import "testing" + +func TestFeaturesExample_Alter(t *testing.T) { + id := RandomDatabaseObjectIdentifier(t) + // Minimal valid AlterFeaturesExamplesOptions + defaultOpts := func() *AlterFeaturesExamplesOptions { + return &AlterFeaturesExamplesOptions{ + name: id, + } + } + + t.Run("validation: nil options", func(t *testing.T) { + var opts *AlterFeaturesExamplesOptions = nil + assertOptsInvalidJoinedErrors(t, opts, ErrNilOptions) + }) + + t.Run("basic", func(t *testing.T) { + opts := defaultOpts() + // TODO: fill me + assertOptsValidAndSQLEquals(t, opts, "TODO: fill me") + }) + + t.Run("all options", func(t *testing.T) { + opts := defaultOpts() + // TODO: fill me + assertOptsValidAndSQLEquals(t, opts, "TODO: fill me") + }) +} diff --git a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go b/pkg/sdk/poc/example/generator_features_example_impl_gen.go similarity index 53% rename from pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go rename to pkg/sdk/poc/example/generator_features_example_impl_gen.go index 877b6f0701..a348348cbb 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go +++ b/pkg/sdk/poc/example/generator_features_example_impl_gen.go @@ -4,19 +4,19 @@ import ( "context" ) -var _ ToOptsOptionalExamples = (*toOptsOptionalExamples)(nil) +var _ FeaturesExample = (*featuresExample)(nil) -type toOptsOptionalExamples struct { +type featuresExample struct { client *Client } -func (v *toOptsOptionalExamples) Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error { +func (v *featuresExample) Alter(ctx context.Context, request *AlterFeaturesExamplesRequest) error { opts := request.toOpts() return validateAndExec(v.client, ctx, opts) } -func (r *AlterToOptsOptionalExampleRequest) toOpts() *AlterToOptsOptionalExampleOptions { - opts := &AlterToOptsOptionalExampleOptions{ +func (r *AlterFeaturesExamplesRequest) toOpts() *AlterFeaturesExamplesOptions { + opts := &AlterFeaturesExamplesOptions{ IfExists: r.IfExists, name: r.name, } diff --git a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go b/pkg/sdk/poc/example/generator_features_example_validations_gen.go similarity index 50% rename from pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go rename to pkg/sdk/poc/example/generator_features_example_validations_gen.go index 1f091f7d5f..b1c59ed91b 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go +++ b/pkg/sdk/poc/example/generator_features_example_validations_gen.go @@ -2,9 +2,9 @@ package example import "errors" -var _ validatable = new(AlterToOptsOptionalExampleOptions) +var _ validatable = new(AlterFeaturesExamplesOptions) -func (opts *AlterToOptsOptionalExampleOptions) validate() error { +func (opts *AlterFeaturesExamplesOptions) validate() error { if opts == nil { return ErrNilOptions } diff --git a/pkg/sdk/poc/generator/templates/struct.tmpl b/pkg/sdk/poc/generator/templates/struct.tmpl index b4ebac53c0..d2e3cb22b5 100644 --- a/pkg/sdk/poc/generator/templates/struct.tmpl +++ b/pkg/sdk/poc/generator/templates/struct.tmpl @@ -1,5 +1,6 @@ {{- /*gotype: github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk/poc/generator.Field*/ -}} +// type {{ .KindNoPtr }} struct { {{- range .Fields }} {{ .Name }} {{ .Kind }} {{ .TagsPrintable }} diff --git a/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl b/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl index 039110202b..57bf0ec3bb 100644 --- a/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl +++ b/pkg/sdk/poc/generator/templates/sub_templates/to_opts_mapping.tmpl @@ -15,7 +15,7 @@ {{ end }} {{- if not .IsSlice -}} - opts{{ .Path }} = {{ if .IsPointer }}&{{else}}{{end}}{{ template "toOptsMapping" . -}}{{/* Recursive call */}} + opts{{ .Path }} = {{ if .IsPointer }}&{{end}}{{ template "toOptsMapping" . -}}{{/* Recursive call */}} {{- else }} s := make({{ .Kind }}, len(r{{ .Path }})) for i, v := range r{{ .Path }} { diff --git a/pkg/sdk/poc/main.go b/pkg/sdk/poc/main.go index d7fd8c094a..652d6d8df2 100644 --- a/pkg/sdk/poc/main.go +++ b/pkg/sdk/poc/main.go @@ -18,7 +18,7 @@ import ( var definitionMapping = map[string]*generator.Interface{ "database_role_def.go": example.DatabaseRole, - "to_opts_optional_example_def.go": example.ToOptsOptionalExample, + "generator_features_example_def.go": example.GeneratorFeaturesExample, "network_policies_def.go": sdk.NetworkPoliciesDef, "session_policies_def.go": sdk.SessionPoliciesDef, "tasks_def.go": sdk.TasksDef, From c269c66aac4dde61ae2355bbad8b252cb7067c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 5 Dec 2024 09:21:20 +0100 Subject: [PATCH 5/9] name change --- ...r_features_example_def.go => optional_struct_example_def.go} | 2 +- ...es_example_dto_gen.go => optional_struct_example_dto_gen.go} | 0 ...r_features_example_gen.go => optional_struct_example_gen.go} | 0 ..._test.go => optional_struct_example_gen_integration_test.go} | 0 ..._example_gen_test.go => optional_struct_example_gen_test.go} | 0 ..._example_impl_gen.go => optional_struct_example_impl_gen.go} | 0 ...ations_gen.go => optional_struct_example_validations_gen.go} | 0 pkg/sdk/poc/main.go | 2 +- 8 files changed, 2 insertions(+), 2 deletions(-) rename pkg/sdk/poc/example/{generator_features_example_def.go => optional_struct_example_def.go} (93%) rename pkg/sdk/poc/example/{generator_features_example_dto_gen.go => optional_struct_example_dto_gen.go} (100%) rename pkg/sdk/poc/example/{generator_features_example_gen.go => optional_struct_example_gen.go} (100%) rename pkg/sdk/poc/example/{generator_features_example_gen_integration_test.go => optional_struct_example_gen_integration_test.go} (100%) rename pkg/sdk/poc/example/{generator_features_example_gen_test.go => optional_struct_example_gen_test.go} (100%) rename pkg/sdk/poc/example/{generator_features_example_impl_gen.go => optional_struct_example_impl_gen.go} (100%) rename pkg/sdk/poc/example/{generator_features_example_validations_gen.go => optional_struct_example_validations_gen.go} (100%) diff --git a/pkg/sdk/poc/example/generator_features_example_def.go b/pkg/sdk/poc/example/optional_struct_example_def.go similarity index 93% rename from pkg/sdk/poc/example/generator_features_example_def.go rename to pkg/sdk/poc/example/optional_struct_example_def.go index 145a4ebf4c..05b48e2269 100644 --- a/pkg/sdk/poc/example/generator_features_example_def.go +++ b/pkg/sdk/poc/example/optional_struct_example_def.go @@ -6,7 +6,7 @@ import ( //go:generate go run ../main.go -var GeneratorFeaturesExample = g.NewInterface( +var ToOptsOptionalExample = g.NewInterface( "FeaturesExample", "FeaturesExamples", g.KindOfT[DatabaseObjectIdentifier](), diff --git a/pkg/sdk/poc/example/generator_features_example_dto_gen.go b/pkg/sdk/poc/example/optional_struct_example_dto_gen.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_dto_gen.go rename to pkg/sdk/poc/example/optional_struct_example_dto_gen.go diff --git a/pkg/sdk/poc/example/generator_features_example_gen.go b/pkg/sdk/poc/example/optional_struct_example_gen.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_gen.go rename to pkg/sdk/poc/example/optional_struct_example_gen.go diff --git a/pkg/sdk/poc/example/generator_features_example_gen_integration_test.go b/pkg/sdk/poc/example/optional_struct_example_gen_integration_test.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_gen_integration_test.go rename to pkg/sdk/poc/example/optional_struct_example_gen_integration_test.go diff --git a/pkg/sdk/poc/example/generator_features_example_gen_test.go b/pkg/sdk/poc/example/optional_struct_example_gen_test.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_gen_test.go rename to pkg/sdk/poc/example/optional_struct_example_gen_test.go diff --git a/pkg/sdk/poc/example/generator_features_example_impl_gen.go b/pkg/sdk/poc/example/optional_struct_example_impl_gen.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_impl_gen.go rename to pkg/sdk/poc/example/optional_struct_example_impl_gen.go diff --git a/pkg/sdk/poc/example/generator_features_example_validations_gen.go b/pkg/sdk/poc/example/optional_struct_example_validations_gen.go similarity index 100% rename from pkg/sdk/poc/example/generator_features_example_validations_gen.go rename to pkg/sdk/poc/example/optional_struct_example_validations_gen.go diff --git a/pkg/sdk/poc/main.go b/pkg/sdk/poc/main.go index 652d6d8df2..9e2341eac4 100644 --- a/pkg/sdk/poc/main.go +++ b/pkg/sdk/poc/main.go @@ -18,7 +18,7 @@ import ( var definitionMapping = map[string]*generator.Interface{ "database_role_def.go": example.DatabaseRole, - "generator_features_example_def.go": example.GeneratorFeaturesExample, + "optional_struct_example_def.go": example.ToOptsOptionalExample, "network_policies_def.go": sdk.NetworkPoliciesDef, "session_policies_def.go": sdk.SessionPoliciesDef, "tasks_def.go": sdk.TasksDef, From 4b8c9efdfc3afceefe40ac8932edf81833df94e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 5 Dec 2024 09:25:59 +0100 Subject: [PATCH 6/9] name change --- ...al_struct_example_def.go => to_opts_optional_example_def.go} | 0 ...t_example_dto_gen.go => to_opts_optional_example_dto_gen.go} | 0 ...al_struct_example_gen.go => to_opts_optional_example_gen.go} | 0 ...test.go => to_opts_optional_example_gen_integration_test.go} | 0 ...example_gen_test.go => to_opts_optional_example_gen_test.go} | 0 ...example_impl_gen.go => to_opts_optional_example_impl_gen.go} | 0 ...tions_gen.go => to_opts_optional_example_validations_gen.go} | 0 pkg/sdk/poc/main.go | 2 +- 8 files changed, 1 insertion(+), 1 deletion(-) rename pkg/sdk/poc/example/{optional_struct_example_def.go => to_opts_optional_example_def.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_dto_gen.go => to_opts_optional_example_dto_gen.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_gen.go => to_opts_optional_example_gen.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_gen_integration_test.go => to_opts_optional_example_gen_integration_test.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_gen_test.go => to_opts_optional_example_gen_test.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_impl_gen.go => to_opts_optional_example_impl_gen.go} (100%) rename pkg/sdk/poc/example/{optional_struct_example_validations_gen.go => to_opts_optional_example_validations_gen.go} (100%) diff --git a/pkg/sdk/poc/example/optional_struct_example_def.go b/pkg/sdk/poc/example/to_opts_optional_example_def.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_def.go rename to pkg/sdk/poc/example/to_opts_optional_example_def.go diff --git a/pkg/sdk/poc/example/optional_struct_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_dto_gen.go rename to pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go diff --git a/pkg/sdk/poc/example/optional_struct_example_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_gen.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_gen.go rename to pkg/sdk/poc/example/to_opts_optional_example_gen.go diff --git a/pkg/sdk/poc/example/optional_struct_example_gen_integration_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_gen_integration_test.go rename to pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go diff --git a/pkg/sdk/poc/example/optional_struct_example_gen_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_gen_test.go rename to pkg/sdk/poc/example/to_opts_optional_example_gen_test.go diff --git a/pkg/sdk/poc/example/optional_struct_example_impl_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_impl_gen.go rename to pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go diff --git a/pkg/sdk/poc/example/optional_struct_example_validations_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go similarity index 100% rename from pkg/sdk/poc/example/optional_struct_example_validations_gen.go rename to pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go diff --git a/pkg/sdk/poc/main.go b/pkg/sdk/poc/main.go index 9e2341eac4..d7fd8c094a 100644 --- a/pkg/sdk/poc/main.go +++ b/pkg/sdk/poc/main.go @@ -18,7 +18,7 @@ import ( var definitionMapping = map[string]*generator.Interface{ "database_role_def.go": example.DatabaseRole, - "optional_struct_example_def.go": example.ToOptsOptionalExample, + "to_opts_optional_example_def.go": example.ToOptsOptionalExample, "network_policies_def.go": sdk.NetworkPoliciesDef, "session_policies_def.go": sdk.SessionPoliciesDef, "tasks_def.go": sdk.TasksDef, From 613763278a5bceeb9fd8a12fcdaf70f4b17c1848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 5 Dec 2024 09:28:01 +0100 Subject: [PATCH 7/9] linter adjustemnts --- pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go index 7fc23e8f2c..9e87f3e93f 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go @@ -2,9 +2,7 @@ package example //go:generate go run ./dto-builder-generator/main.go -var ( - _ optionsProvider[AlterFeaturesExamplesOptions] = new(AlterFeaturesExamplesRequest) -) +var _ optionsProvider[AlterFeaturesExamplesOptions] = new(AlterFeaturesExamplesRequest) type AlterFeaturesExamplesRequest struct { IfExists *bool From d37fd13fe2e204f4fdb44d58247d1ad0e694ddc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 5 Dec 2024 09:58:23 +0100 Subject: [PATCH 8/9] naming... --- pkg/sdk/poc/example/to_opts_optional_example_def.go | 4 ++-- .../poc/example/to_opts_optional_example_dto_gen.go | 4 ++-- pkg/sdk/poc/example/to_opts_optional_example_gen.go | 8 ++++---- .../to_opts_optional_example_gen_integration_test.go | 2 +- .../poc/example/to_opts_optional_example_gen_test.go | 10 +++++----- .../poc/example/to_opts_optional_example_impl_gen.go | 10 +++++----- .../to_opts_optional_example_validations_gen.go | 4 ++-- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_def.go b/pkg/sdk/poc/example/to_opts_optional_example_def.go index 05b48e2269..857d91a75f 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_def.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_def.go @@ -7,8 +7,8 @@ import ( //go:generate go run ../main.go var ToOptsOptionalExample = g.NewInterface( - "FeaturesExample", - "FeaturesExamples", + "ToOptsOptionalExamples", + "ToOptsOptionalExample", g.KindOfT[DatabaseObjectIdentifier](), ).AlterOperation("https://example.com", g.NewQueryStruct("Alter"). diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go index 9e87f3e93f..f1dbf79358 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go @@ -2,9 +2,9 @@ package example //go:generate go run ./dto-builder-generator/main.go -var _ optionsProvider[AlterFeaturesExamplesOptions] = new(AlterFeaturesExamplesRequest) +var _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) -type AlterFeaturesExamplesRequest struct { +type AlterToOptsOptionalExampleRequest struct { IfExists *bool name DatabaseObjectIdentifier // required OptionalField *OptionalFieldRequest diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_gen.go index 1a4766b9b9..be4184c3e7 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen.go @@ -2,12 +2,12 @@ package example import "context" -type FeaturesExample interface { - Alter(ctx context.Context, request *AlterFeaturesExamplesRequest) error +type ToOptsOptionalExamples interface { + Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error } -// AlterFeaturesExamplesOptions is based on https://example.com. -type AlterFeaturesExamplesOptions struct { +// AlterToOptsOptionalExampleOptions is based on https://example.com. +type AlterToOptsOptionalExampleOptions struct { alter bool `ddl:"static" sql:"ALTER"` IfExists *bool `ddl:"keyword" sql:"IF EXISTS"` name DatabaseObjectIdentifier `ddl:"identifier"` diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go index 356cc00c68..e45246dca6 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go @@ -2,7 +2,7 @@ package example import "testing" -func TestInt_FeaturesExample(t *testing.T) { +func TestInt_ToOptsOptionalExamples(t *testing.T) { // TODO: prepare common resources t.Run("Alter", func(t *testing.T) { diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go index 527d1026e7..0eaa774101 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go @@ -2,17 +2,17 @@ package example import "testing" -func TestFeaturesExample_Alter(t *testing.T) { +func TestToOptsOptionalExamples_Alter(t *testing.T) { id := RandomDatabaseObjectIdentifier(t) - // Minimal valid AlterFeaturesExamplesOptions - defaultOpts := func() *AlterFeaturesExamplesOptions { - return &AlterFeaturesExamplesOptions{ + // Minimal valid AlterToOptsOptionalExampleOptions + defaultOpts := func() *AlterToOptsOptionalExampleOptions { + return &AlterToOptsOptionalExampleOptions{ name: id, } } t.Run("validation: nil options", func(t *testing.T) { - var opts *AlterFeaturesExamplesOptions = nil + var opts *AlterToOptsOptionalExampleOptions = nil assertOptsInvalidJoinedErrors(t, opts, ErrNilOptions) }) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go index a348348cbb..877b6f0701 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go @@ -4,19 +4,19 @@ import ( "context" ) -var _ FeaturesExample = (*featuresExample)(nil) +var _ ToOptsOptionalExamples = (*toOptsOptionalExamples)(nil) -type featuresExample struct { +type toOptsOptionalExamples struct { client *Client } -func (v *featuresExample) Alter(ctx context.Context, request *AlterFeaturesExamplesRequest) error { +func (v *toOptsOptionalExamples) Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error { opts := request.toOpts() return validateAndExec(v.client, ctx, opts) } -func (r *AlterFeaturesExamplesRequest) toOpts() *AlterFeaturesExamplesOptions { - opts := &AlterFeaturesExamplesOptions{ +func (r *AlterToOptsOptionalExampleRequest) toOpts() *AlterToOptsOptionalExampleOptions { + opts := &AlterToOptsOptionalExampleOptions{ IfExists: r.IfExists, name: r.name, } diff --git a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go index b1c59ed91b..1f091f7d5f 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go @@ -2,9 +2,9 @@ package example import "errors" -var _ validatable = new(AlterFeaturesExamplesOptions) +var _ validatable = new(AlterToOptsOptionalExampleOptions) -func (opts *AlterFeaturesExamplesOptions) validate() error { +func (opts *AlterToOptsOptionalExampleOptions) validate() error { if opts == nil { return ErrNilOptions } From 5b497aef582ab30bf2bd4018b66c137ee1225492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Budzy=C5=84ski?= Date: Thu, 5 Dec 2024 12:48:58 +0100 Subject: [PATCH 9/9] newlines after structs --- .../example/to_opts_optional_example_def.go | 5 ++++ .../to_opts_optional_example_dto_gen.go | 10 ++++++- .../example/to_opts_optional_example_gen.go | 8 ++++++ ...s_optional_example_gen_integration_test.go | 4 +++ .../to_opts_optional_example_gen_test.go | 27 +++++++++++++++++++ .../to_opts_optional_example_impl_gen.go | 13 +++++++++ ...o_opts_optional_example_validations_gen.go | 13 ++++++++- .../generator/templates/operation_struct.tmpl | 1 + pkg/sdk/poc/generator/templates/struct.tmpl | 2 +- 9 files changed, 80 insertions(+), 3 deletions(-) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_def.go b/pkg/sdk/poc/example/to_opts_optional_example_def.go index 857d91a75f..2278bf93ca 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_def.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_def.go @@ -10,6 +10,11 @@ var ToOptsOptionalExample = g.NewInterface( "ToOptsOptionalExamples", "ToOptsOptionalExample", g.KindOfT[DatabaseObjectIdentifier](), +).CreateOperation("https://example.com", + g.NewQueryStruct("Alter"). + Alter(). + IfExists(). + Name(), ).AlterOperation("https://example.com", g.NewQueryStruct("Alter"). Alter(). diff --git a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go index f1dbf79358..840182049e 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_dto_gen.go @@ -2,7 +2,15 @@ package example //go:generate go run ./dto-builder-generator/main.go -var _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) +var ( + _ optionsProvider[CreateToOptsOptionalExampleOptions] = new(CreateToOptsOptionalExampleRequest) + _ optionsProvider[AlterToOptsOptionalExampleOptions] = new(AlterToOptsOptionalExampleRequest) +) + +type CreateToOptsOptionalExampleRequest struct { + IfExists *bool + name DatabaseObjectIdentifier // required +} type AlterToOptsOptionalExampleRequest struct { IfExists *bool diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_gen.go index be4184c3e7..94fa3e262c 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen.go @@ -3,9 +3,17 @@ package example import "context" type ToOptsOptionalExamples interface { + Create(ctx context.Context, request *CreateToOptsOptionalExampleRequest) error Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error } +// CreateToOptsOptionalExampleOptions is based on https://example.com. +type CreateToOptsOptionalExampleOptions struct { + alter bool `ddl:"static" sql:"ALTER"` + IfExists *bool `ddl:"keyword" sql:"IF EXISTS"` + name DatabaseObjectIdentifier `ddl:"identifier"` +} + // AlterToOptsOptionalExampleOptions is based on https://example.com. type AlterToOptsOptionalExampleOptions struct { alter bool `ddl:"static" sql:"ALTER"` diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go index e45246dca6..87aabad9f4 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen_integration_test.go @@ -5,6 +5,10 @@ import "testing" func TestInt_ToOptsOptionalExamples(t *testing.T) { // TODO: prepare common resources + t.Run("Create", func(t *testing.T) { + // TODO: fill me + }) + t.Run("Alter", func(t *testing.T) { // TODO: fill me }) diff --git a/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go b/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go index 0eaa774101..758241a08c 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_gen_test.go @@ -2,6 +2,33 @@ package example import "testing" +func TestToOptsOptionalExamples_Create(t *testing.T) { + id := RandomDatabaseObjectIdentifier(t) + // Minimal valid CreateToOptsOptionalExampleOptions + defaultOpts := func() *CreateToOptsOptionalExampleOptions { + return &CreateToOptsOptionalExampleOptions{ + name: id, + } + } + + t.Run("validation: nil options", func(t *testing.T) { + var opts *CreateToOptsOptionalExampleOptions = nil + assertOptsInvalidJoinedErrors(t, opts, ErrNilOptions) + }) + + t.Run("basic", func(t *testing.T) { + opts := defaultOpts() + // TODO: fill me + assertOptsValidAndSQLEquals(t, opts, "TODO: fill me") + }) + + t.Run("all options", func(t *testing.T) { + opts := defaultOpts() + // TODO: fill me + assertOptsValidAndSQLEquals(t, opts, "TODO: fill me") + }) +} + func TestToOptsOptionalExamples_Alter(t *testing.T) { id := RandomDatabaseObjectIdentifier(t) // Minimal valid AlterToOptsOptionalExampleOptions diff --git a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go index 877b6f0701..f696c2dac9 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_impl_gen.go @@ -10,11 +10,24 @@ type toOptsOptionalExamples struct { client *Client } +func (v *toOptsOptionalExamples) Create(ctx context.Context, request *CreateToOptsOptionalExampleRequest) error { + opts := request.toOpts() + return validateAndExec(v.client, ctx, opts) +} + func (v *toOptsOptionalExamples) Alter(ctx context.Context, request *AlterToOptsOptionalExampleRequest) error { opts := request.toOpts() return validateAndExec(v.client, ctx, opts) } +func (r *CreateToOptsOptionalExampleRequest) toOpts() *CreateToOptsOptionalExampleOptions { + opts := &CreateToOptsOptionalExampleOptions{ + IfExists: r.IfExists, + name: r.name, + } + return opts +} + func (r *AlterToOptsOptionalExampleRequest) toOpts() *AlterToOptsOptionalExampleOptions { opts := &AlterToOptsOptionalExampleOptions{ IfExists: r.IfExists, diff --git a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go index 1f091f7d5f..a2b99f1ddd 100644 --- a/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go +++ b/pkg/sdk/poc/example/to_opts_optional_example_validations_gen.go @@ -2,7 +2,18 @@ package example import "errors" -var _ validatable = new(AlterToOptsOptionalExampleOptions) +var ( + _ validatable = new(CreateToOptsOptionalExampleOptions) + _ validatable = new(AlterToOptsOptionalExampleOptions) +) + +func (opts *CreateToOptsOptionalExampleOptions) validate() error { + if opts == nil { + return ErrNilOptions + } + var errs []error + return errors.Join(errs...) +} func (opts *AlterToOptsOptionalExampleOptions) validate() error { if opts == nil { diff --git a/pkg/sdk/poc/generator/templates/operation_struct.tmpl b/pkg/sdk/poc/generator/templates/operation_struct.tmpl index 4bb00b891a..2d80492437 100644 --- a/pkg/sdk/poc/generator/templates/operation_struct.tmpl +++ b/pkg/sdk/poc/generator/templates/operation_struct.tmpl @@ -6,3 +6,4 @@ type {{ .OptsField.KindNoPtr }} struct { {{ .Name }} {{ .Kind }} {{ .TagsPrintable }} {{- end }} } + diff --git a/pkg/sdk/poc/generator/templates/struct.tmpl b/pkg/sdk/poc/generator/templates/struct.tmpl index d2e3cb22b5..5c485c361b 100644 --- a/pkg/sdk/poc/generator/templates/struct.tmpl +++ b/pkg/sdk/poc/generator/templates/struct.tmpl @@ -1,8 +1,8 @@ {{- /*gotype: github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk/poc/generator.Field*/ -}} -// type {{ .KindNoPtr }} struct { {{- range .Fields }} {{ .Name }} {{ .Kind }} {{ .TagsPrintable }} {{- end }} } +