style: applied styler
This commit is contained in:
parent
15cae34f69
commit
d975b8038b
@ -1,33 +0,0 @@
|
|||||||
package errtranslator
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
var mssqlErrCodes = map[string]int{
|
|
||||||
"uniqueConstraint": 2627,
|
|
||||||
}
|
|
||||||
|
|
||||||
type MssqlErrTranslator struct{}
|
|
||||||
|
|
||||||
type MssqlErr struct {
|
|
||||||
Number int `json:"Number"`
|
|
||||||
Message string `json:"Message"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *MssqlErrTranslator) Translate(err error) error {
|
|
||||||
parsedErr, marshalErr := json.Marshal(err)
|
|
||||||
if marshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var mssqlErr MssqlErr
|
|
||||||
unmarshalErr := json.Unmarshal(parsedErr, &mssqlErr)
|
|
||||||
if unmarshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if mssqlErr.Number == mssqlErrCodes["uniqueConstraint"] {
|
|
||||||
return ErrDuplicatedKey{Code: mssqlErr.Number, Message: mssqlErr.Message}
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package errtranslator
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
var mysqlErrCodes = map[string]int{
|
|
||||||
"uniqueConstraint": 1062,
|
|
||||||
}
|
|
||||||
|
|
||||||
type MysqlErrTranslator struct{}
|
|
||||||
|
|
||||||
type MysqlErr struct {
|
|
||||||
Number int `json:"Number"`
|
|
||||||
Message string `json:"Message"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *MysqlErrTranslator) Translate(err error) error {
|
|
||||||
parsedErr, marshalErr := json.Marshal(err)
|
|
||||||
if marshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var mysqlErr MysqlErr
|
|
||||||
unmarshalErr := json.Unmarshal(parsedErr, &mysqlErr)
|
|
||||||
if unmarshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if mysqlErr.Number == mysqlErrCodes["uniqueConstraint"] {
|
|
||||||
return ErrDuplicatedKey{Code: mysqlErr.Number, Message: mysqlErr.Message}
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package errtranslator
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
var postgresErrCodes = map[string]string{
|
|
||||||
"uniqueConstraint": "23505",
|
|
||||||
}
|
|
||||||
|
|
||||||
type PostgresErrTranslator struct{}
|
|
||||||
|
|
||||||
type PostgresErr struct {
|
|
||||||
Code string `json:"Code"`
|
|
||||||
Severity string `json:"Severity"`
|
|
||||||
Message string `json:"Message"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PostgresErrTranslator) Translate(err error) error {
|
|
||||||
parsedErr, marshalErr := json.Marshal(err)
|
|
||||||
if marshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var postgresErr PostgresErr
|
|
||||||
unmarshalErr := json.Unmarshal(parsedErr, &postgresErr)
|
|
||||||
if unmarshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if postgresErr.Code == postgresErrCodes["uniqueConstraint"] {
|
|
||||||
return ErrDuplicatedKey{Code: postgresErr.Code, Message: postgresErr.Message}
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package errtranslator
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
var sqliteErrCodes = map[string]int{
|
|
||||||
"uniqueConstraint": 2067,
|
|
||||||
}
|
|
||||||
|
|
||||||
type SqliteErrTranslator struct{}
|
|
||||||
|
|
||||||
type SqliteErr struct {
|
|
||||||
Code int `json:"Code"`
|
|
||||||
ExtendedCode int `json:"ExtendedCode"`
|
|
||||||
SystemErrno int `json:"SystemErrno"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *SqliteErrTranslator) Translate(err error) error {
|
|
||||||
parsedErr, marshalErr := json.Marshal(err)
|
|
||||||
if marshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var sqliteErr SqliteErr
|
|
||||||
unmarshalErr := json.Unmarshal(parsedErr, &sqliteErr)
|
|
||||||
if unmarshalErr != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if sqliteErr.ExtendedCode == sqliteErrCodes["uniqueConstraint"] {
|
|
||||||
return ErrDuplicatedKey{Code: sqliteErr.ExtendedCode, Message: ""}
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
package errtranslator
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
type ErrTranslator interface {
|
|
||||||
Translate(err error) error
|
|
||||||
}
|
|
||||||
|
|
||||||
type ErrDuplicatedKey struct {
|
|
||||||
Code interface{}
|
|
||||||
Message string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e ErrDuplicatedKey) Error() string {
|
|
||||||
return fmt.Sprintf("duplicated key not allowed, code: %v, message: %s", e.Code, e.Message)
|
|
||||||
}
|
|
@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
func TestDialectorWithErrorTranslatorSupport(t *testing.T) {
|
func TestDialectorWithErrorTranslatorSupport(t *testing.T) {
|
||||||
translatedErr := errors.New("translated error")
|
translatedErr := errors.New("translated error")
|
||||||
var db, _ = gorm.Open(tests.DummyDialector{TranslatedErr: translatedErr})
|
db, _ := gorm.Open(tests.DummyDialector{TranslatedErr: translatedErr})
|
||||||
|
|
||||||
err := db.AddError(errors.New("some random error"))
|
err := db.AddError(errors.New("some random error"))
|
||||||
if !errors.Is(err, translatedErr) {
|
if !errors.Is(err, translatedErr) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user