diff --git a/pkg/config/cli.go b/pkg/config/cli.go index 26f6324..636800e 100644 --- a/pkg/config/cli.go +++ b/pkg/config/cli.go @@ -174,7 +174,7 @@ func (parser ConfigCLIParser) Parse() (*Config, error) { utils.OnCustomError(func(err types.RemoteConfigFileParseError) error { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( fmt.Sprintf("config-file[%d]", i), configFile, fmt.Errorf("parse error: %w", err), @@ -198,7 +198,7 @@ func (parser ConfigCLIParser) Parse() (*Config, error) { case "url", "u": urlParsed, err := url.Parse(urlInput) if err != nil { - fieldParseErrors = append(fieldParseErrors, *types.NewFieldParseError("url", urlInput, err)) + fieldParseErrors = append(fieldParseErrors, types.NewFieldParseError("url", urlInput, err)) } else { config.URL = urlParsed } @@ -224,7 +224,7 @@ func (parser ConfigCLIParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError(fmt.Sprintf("proxy[%d]", i), proxy, err), + types.NewFieldParseError(fmt.Sprintf("proxy[%d]", i), proxy, err), ) } } diff --git a/pkg/config/env.go b/pkg/config/env.go index d6d0d49..05d4eda 100644 --- a/pkg/config/env.go +++ b/pkg/config/env.go @@ -37,7 +37,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { utils.OnCustomError(func(err types.RemoteConfigFileParseError) error { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("CONFIG_FILE"), configFile, fmt.Errorf("parse error: %w", err), @@ -57,7 +57,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("YES"), yes, errors.New("invalid value for boolean, expected 'true' or 'false'"), @@ -73,7 +73,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("SKIP_VERIFY"), skipVerify, errors.New("invalid value for boolean, expected 'true' or 'false'"), @@ -93,7 +93,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError(parser.getFullEnvName("URL"), urlEnv, err), + types.NewFieldParseError(parser.getFullEnvName("URL"), urlEnv, err), ) } else { config.URL = urlEnvParsed @@ -105,7 +105,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("DODOS"), dodos, errors.New("invalid value for unsigned integer"), @@ -121,7 +121,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("REQUESTS"), requests, errors.New("invalid value for unsigned integer"), @@ -137,7 +137,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("DURATION"), duration, errors.New("invalid value duration, expected a duration string (e.g., '10s', '1h30m')"), @@ -153,7 +153,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("TIMEOUT"), timeout, errors.New("invalid value duration, expected a duration string (e.g., '10s', '1h30m')"), @@ -185,7 +185,7 @@ func (parser ConfigENVParser) Parse() (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( parser.getFullEnvName("PROXY"), proxy, err, diff --git a/pkg/config/file.go b/pkg/config/file.go index 382ab66..79c731b 100644 --- a/pkg/config/file.go +++ b/pkg/config/file.go @@ -141,7 +141,7 @@ func (parser ConfigFileParser) ParseYAML(data []byte) (*Config, error) { utils.OnCustomError(func(err types.RemoteConfigFileParseError) error { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError( + types.NewFieldParseError( fmt.Sprintf("config-file[%d]", i), configFile, fmt.Errorf("parse error: %w", err), @@ -160,7 +160,7 @@ func (parser ConfigFileParser) ParseYAML(data []byte) (*Config, error) { if parsedData.URL != nil { urlParsed, err := url.Parse(*parsedData.URL) if err != nil { - fieldParseErrors = append(fieldParseErrors, *types.NewFieldParseError("url", *parsedData.URL, err)) + fieldParseErrors = append(fieldParseErrors, types.NewFieldParseError("url", *parsedData.URL, err)) } else { config.URL = urlParsed } @@ -171,7 +171,7 @@ func (parser ConfigFileParser) ParseYAML(data []byte) (*Config, error) { if err != nil { fieldParseErrors = append( fieldParseErrors, - *types.NewFieldParseError(fmt.Sprintf("proxy[%d]", i), proxy, err), + types.NewFieldParseError(fmt.Sprintf("proxy[%d]", i), proxy, err), ) } } diff --git a/pkg/types/errors.go b/pkg/types/errors.go index 1271eee..66be7ce 100644 --- a/pkg/types/errors.go +++ b/pkg/types/errors.go @@ -23,11 +23,11 @@ type FieldParseError struct { Err error } -func NewFieldParseError(field string, value string, err error) *FieldParseError { +func NewFieldParseError(field string, value string, err error) FieldParseError { if err == nil { err = ErrNoError } - return &FieldParseError{field, value, err} + return FieldParseError{field, value, err} } func (e FieldParseError) Error() string { diff --git a/pkg/types/errors_test.go b/pkg/types/errors_test.go index ba5c0ec..2b9c257 100644 --- a/pkg/types/errors_test.go +++ b/pkg/types/errors_test.go @@ -74,7 +74,7 @@ func TestFieldParseErrors_Error(t *testing.T) { }) t.Run("Error with single error returns single error message", func(t *testing.T) { - fieldErr := *NewFieldParseError("field1", "value1", errors.New("error1")) + fieldErr := NewFieldParseError("field1", "value1", errors.New("error1")) fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr}) expected := "Field 'field1' parse failed: error1" @@ -82,9 +82,9 @@ func TestFieldParseErrors_Error(t *testing.T) { }) t.Run("Error with multiple errors returns concatenated messages", func(t *testing.T) { - fieldErr1 := *NewFieldParseError("field1", "value1", errors.New("error1")) - fieldErr2 := *NewFieldParseError("field2", "value2", errors.New("error2")) - fieldErr3 := *NewFieldParseError("field3", "value3", errors.New("error3")) + fieldErr1 := NewFieldParseError("field1", "value1", errors.New("error1")) + fieldErr2 := NewFieldParseError("field2", "value2", errors.New("error2")) + fieldErr3 := NewFieldParseError("field3", "value3", errors.New("error3")) fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2, fieldErr3}) expected := "Field 'field1' parse failed: error1\nField 'field2' parse failed: error2\nField 'field3' parse failed: error3" @@ -92,8 +92,8 @@ func TestFieldParseErrors_Error(t *testing.T) { }) t.Run("Error with two errors", func(t *testing.T) { - fieldErr1 := *NewFieldParseError("username", "john", errors.New("too short")) - fieldErr2 := *NewFieldParseError("email", "invalid", errors.New("invalid format")) + fieldErr1 := NewFieldParseError("username", "john", errors.New("too short")) + fieldErr2 := NewFieldParseError("email", "invalid", errors.New("invalid format")) fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2}) expected := "Field 'username' parse failed: too short\nField 'email' parse failed: invalid format" @@ -103,8 +103,8 @@ func TestFieldParseErrors_Error(t *testing.T) { func TestNewFieldParseErrors(t *testing.T) { t.Run("Creates FieldParseErrors with correct values", func(t *testing.T) { - fieldErr1 := *NewFieldParseError("field1", "value1", errors.New("error1")) - fieldErr2 := *NewFieldParseError("field2", "value2", errors.New("error2")) + fieldErr1 := NewFieldParseError("field1", "value1", errors.New("error1")) + fieldErr2 := NewFieldParseError("field2", "value2", errors.New("error2")) fieldErrors := NewFieldParseErrors([]FieldParseError{fieldErr1, fieldErr2}) assert.Len(t, fieldErrors.Errors, 2)