Skip to content

Commit

Permalink
fix review
Browse files Browse the repository at this point in the history
  • Loading branch information
Otake0114 committed Mar 3, 2025
1 parent 8e0446c commit 14057cb
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type PostgreSQLInputOption struct {
DefaultTimeZone string `json:"default_time_zone"`
InputOptionColumns []PostgreSQLInputOptionColumn `json:"input_option_columns"`
CustomVariableSettings *[]entity.CustomVariableSetting `json:"custom_variable_settings"`
InputOptionColumnOptions *[]InputOptionColumnOptions `json:"input_option_column_options"`
InputOptionColumnOptions []InputOptionColumnOptions `json:"input_option_column_options"`
}

type PostgreSQLInputOptionColumn struct {
Expand Down
60 changes: 30 additions & 30 deletions internal/client/parameter/job_definition/input_option/postgresql.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,39 @@ import (
)

type PostgreSQLInputOptionInput struct {
Database string `json:"database"`
Schema *parameter.NullableString `json:"schema,omitempty"`
Table *parameter.NullableString `json:"table,omitempty"`
Query *parameter.NullableString `json:"query,omitempty"`
IncrementalColumns *parameter.NullableString `json:"incremental_columns,omitempty"`
LastRecord *parameter.NullableString `json:"last_record,omitempty"`
IncrementalLoadingEnabled *parameter.NullableBool `json:"incremental_loading_enabled,omitempty"`
FetchRows *parameter.NullableInt64 `json:"fetch_rows,omitempty"`
ConnectTimeout *parameter.NullableInt64 `json:"connect_timeout,omitempty"`
SocketTimeout *parameter.NullableInt64 `json:"socket_timeout,omitempty"`
DefaultTimeZone *parameter.NullableString `json:"default_time_zone,omitempty"`
PostgreSQLConnectionID int64 `json:"postgresql_connection_id"`
InputOptionColumns []PostgreSQLInputOptionColumn `json:"input_option_columns"`
CustomVariableSettings *[]parameter.CustomVariableSettingInput `json:"custom_variable_settings,omitempty"`
InputOptionColumnOptions *[]InputOptionColumnOptions `json:"input_option_column_options,omitempty"`
Database string `json:"database"`
Schema *parameter.NullableString `json:"schema,omitempty"`
Table *parameter.NullableString `json:"table,omitempty"`
Query *parameter.NullableString `json:"query,omitempty"`
IncrementalColumns *parameter.NullableString `json:"incremental_columns,omitempty"`
LastRecord *parameter.NullableString `json:"last_record,omitempty"`
IncrementalLoadingEnabled *parameter.NullableBool `json:"incremental_loading_enabled,omitempty"`
FetchRows *parameter.NullableInt64 `json:"fetch_rows,omitempty"`
ConnectTimeout *parameter.NullableInt64 `json:"connect_timeout,omitempty"`
SocketTimeout *parameter.NullableInt64 `json:"socket_timeout,omitempty"`
DefaultTimeZone *parameter.NullableString `json:"default_time_zone,omitempty"`
PostgreSQLConnectionID int64 `json:"postgresql_connection_id"`
InputOptionColumns []PostgreSQLInputOptionColumn `json:"input_option_columns"`
CustomVariableSettings *[]parameter.CustomVariableSettingInput `json:"custom_variable_settings,omitempty"`
InputOptionColumnOptions *parameter.NullableObjectList[InputOptionColumnOptions] `json:"input_option_column_options,omitempty"`
}

type UpdatePostgreSQLInputOptionInput struct {
Database *string `json:"database,omitempty"`
Schema *parameter.NullableString `json:"schema,omitempty"`
Table *parameter.NullableString `json:"table,omitempty"`
Query *parameter.NullableString `json:"query,omitempty"`
IncrementalColumns *parameter.NullableString `json:"incremental_columns,omitempty"`
LastRecord *parameter.NullableString `json:"last_record,omitempty"`
IncrementalLoadingEnabled *bool `json:"incremental_loading_enabled,omitempty"`
FetchRows *parameter.NullableInt64 `json:"fetch_rows,omitempty"`
ConnectTimeout *parameter.NullableInt64 `json:"connect_timeout,omitempty"`
SocketTimeout *parameter.NullableInt64 `json:"socket_timeout,omitempty"`
DefaultTimeZone *parameter.NullableString `json:"default_time_zone,omitempty"`
PostgreSQLConnectionID *int64 `json:"postgresql_connection_id,omitempty"`
InputOptionColumns []PostgreSQLInputOptionColumn `json:"input_option_columns,omitempty"`
CustomVariableSettings *[]parameter.CustomVariableSettingInput `json:"custom_variable_settings,omitempty"`
InputOptionColumnOptions *[]InputOptionColumnOptions `json:"input_option_column_options,omitempty"`
Database *string `json:"database,omitempty"`
Schema *parameter.NullableString `json:"schema,omitempty"`
Table *parameter.NullableString `json:"table,omitempty"`
Query *parameter.NullableString `json:"query,omitempty"`
IncrementalColumns *parameter.NullableString `json:"incremental_columns,omitempty"`
LastRecord *parameter.NullableString `json:"last_record,omitempty"`
IncrementalLoadingEnabled *bool `json:"incremental_loading_enabled,omitempty"`
FetchRows *parameter.NullableInt64 `json:"fetch_rows,omitempty"`
ConnectTimeout *parameter.NullableInt64 `json:"connect_timeout,omitempty"`
SocketTimeout *parameter.NullableInt64 `json:"socket_timeout,omitempty"`
DefaultTimeZone *parameter.NullableString `json:"default_time_zone,omitempty"`
PostgreSQLConnectionID *int64 `json:"postgresql_connection_id,omitempty"`
InputOptionColumns []PostgreSQLInputOptionColumn `json:"input_option_columns,omitempty"`
CustomVariableSettings *[]parameter.CustomVariableSettingInput `json:"custom_variable_settings,omitempty"`
InputOptionColumnOptions *parameter.NullableObjectList[InputOptionColumnOptions] `json:"input_option_column_options,omitempty"`
}

type PostgreSQLInputOptionColumn struct {
Expand Down
34 changes: 16 additions & 18 deletions internal/provider/model/job_definition/input_option/postgresql.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type PostgreSQLInputOption struct {
DefaultTimeZone types.String `tfsdk:"default_time_zone"`
InputOptionColumns []PostgreSQLInputOptionColumn `tfsdk:"input_option_columns"`
CustomVariableSettings *[]model.CustomVariableSetting `tfsdk:"custom_variable_settings"`
InputOptionColumnOptions *[]InputOptionColumnOptions `tfsdk:"input_option_column_options"`
InputOptionColumnOptions []InputOptionColumnOptions `tfsdk:"input_option_column_options"`
}

type InputOptionColumnOptions struct {
Expand Down Expand Up @@ -75,19 +75,16 @@ func newPostgresqlInputOptionColumns(inputOptionColumns []input_option.PostgreSQ
return columns
}

func newInputOptionColumnOptions(InputOptions *[]input_option.InputOptionColumnOptions) *[]InputOptionColumnOptions {
if InputOptions == nil {
return nil
}
columns := make([]InputOptionColumnOptions, 0, len(*InputOptions))
for _, input := range *InputOptions {
func newInputOptionColumnOptions(InputOptions []input_option.InputOptionColumnOptions) []InputOptionColumnOptions {
columns := make([]InputOptionColumnOptions, 0, len(InputOptions))
for _, input := range InputOptions {
column := InputOptionColumnOptions{
ColumnName: types.StringValue(input.ColumnName),
ColumnValueType: types.StringValue(input.ColumnValueType),
}
columns = append(columns, column)
}
return &columns
return columns
}

func (postgresqlInputOption *PostgreSQLInputOption) ToInput() *param.PostgreSQLInputOptionInput {
Expand All @@ -109,7 +106,7 @@ func (postgresqlInputOption *PostgreSQLInputOption) ToInput() *param.PostgreSQLI
DefaultTimeZone: model.NewNullableString(postgresqlInputOption.DefaultTimeZone),
PostgreSQLConnectionID: postgresqlInputOption.PostgreSQLConnectionID.ValueInt64(),
InputOptionColumns: toPostgresqlInputOptionColumnsInput(postgresqlInputOption.InputOptionColumns),
InputOptionColumnOptions: toInputOptionColumnOptions(postgresqlInputOption.InputOptionColumnOptions),
InputOptionColumnOptions: model.WrapObjectList(toInputOptionColumnOptions(postgresqlInputOption.InputOptionColumnOptions)),
CustomVariableSettings: model.ToCustomVariableSettingInputs(postgresqlInputOption.CustomVariableSettings),
}
}
Expand All @@ -132,7 +129,7 @@ func (postgresqlInputOption *PostgreSQLInputOption) ToUpdateInput() *param.Updat
DefaultTimeZone: model.NewNullableString(postgresqlInputOption.DefaultTimeZone),
PostgreSQLConnectionID: postgresqlInputOption.PostgreSQLConnectionID.ValueInt64Pointer(),
InputOptionColumns: toPostgresqlInputOptionColumnsInput(postgresqlInputOption.InputOptionColumns),
InputOptionColumnOptions: toInputOptionColumnOptions(postgresqlInputOption.InputOptionColumnOptions),
InputOptionColumnOptions: model.WrapObjectList(toInputOptionColumnOptions(postgresqlInputOption.InputOptionColumnOptions)),
CustomVariableSettings: model.ToCustomVariableSettingInputs(postgresqlInputOption.CustomVariableSettings),
}
}
Expand All @@ -152,17 +149,18 @@ func toPostgresqlInputOptionColumnsInput(columns []PostgreSQLInputOptionColumn)
return inputs
}

func toInputOptionColumnOptions(columns *[]InputOptionColumnOptions) *[]param.InputOptionColumnOptions {
if columns == nil {
func toInputOptionColumnOptions(options []InputOptionColumnOptions) *[]param.InputOptionColumnOptions {
if options == nil {
return nil
}

inputs := make([]param.InputOptionColumnOptions, 0, len(*columns))
for _, column := range *columns {
inputs = append(inputs, param.InputOptionColumnOptions{
ColumnName: column.ColumnName.ValueString(),
ColumnValueType: column.ColumnValueType.ValueString(),
})
inputs := make([]param.InputOptionColumnOptions, len(options))
for i, option := range options {
inputs[i] = param.InputOptionColumnOptions{
ColumnName: option.ColumnName.ValueString(),
ColumnValueType: option.ColumnValueType.ValueString(),
}
}

return &inputs
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"fmt"

"github.com/hashicorp/terraform-plugin-framework/path"
"github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
"github.com/hashicorp/terraform-plugin-framework/types"
)
Expand All @@ -21,6 +22,16 @@ func (d *PostgresqlInputOptionPlanModifier) MarkdownDescription(ctx context.Cont
}

func (d *PostgresqlInputOptionPlanModifier) PlanModifyObject(ctx context.Context, req planmodifier.ObjectRequest, resp *planmodifier.ObjectResponse) {

var inputOptionType types.String
resp.Diagnostics.Append(req.Plan.GetAttribute(ctx, path.Root("input_option_type"), &inputOptionType)...)
if resp.Diagnostics.HasError() {
return
}
if inputOptionType.ValueString() != "postgresql" {
return
}

var incrementalLoadingEnabled types.Bool
resp.Diagnostics.Append(req.Plan.GetAttribute(ctx, req.Path.AtName("incremental_loading_enabled"), &incrementalLoadingEnabled)...)
if resp.Diagnostics.HasError() {
Expand Down

0 comments on commit 14057cb

Please sign in to comment.