diff --git a/error_translator.go b/error_translator.go index c80b913..9c0ef25 100644 --- a/error_translator.go +++ b/error_translator.go @@ -11,12 +11,13 @@ import ( var errCodes = map[string]error{ "23505": gorm.ErrDuplicatedKey, "23503": gorm.ErrForeignKeyViolated, + "42703": gorm.ErrInvalidField, } type ErrMessage struct { - Code string `json:"Code"` - Severity string `json:"Severity"` - Message string `json:"Message"` + Code string + Severity string + Message string } // Translate it will translate the error to native gorm errors. diff --git a/error_translator_test.go b/error_translator_test.go index 130d41b..612cef1 100644 --- a/error_translator_test.go +++ b/error_translator_test.go @@ -2,9 +2,10 @@ package postgres import ( "errors" + "testing" + "github.com/jackc/pgx/v5/pgconn" "gorm.io/gorm" - "testing" ) func TestDialector_Translate(t *testing.T) { @@ -30,6 +31,11 @@ func TestDialector_Translate(t *testing.T) { args: args{err: &pgconn.PgError{Code: "23503"}}, want: gorm.ErrForeignKeyViolated, }, + { + name: "it should return gorm.ErrInvalidField error if the status code is 42703", + args: args{err: &pgconn.PgError{Code: "42703"}}, + want: gorm.ErrInvalidField, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {