gorm/error_translator.go

28 lines
649 B
Go

package gorm
import "gorm.io/gorm/errtranslator"
func TranslateErr(dialect string, err error) error {
var errTranslator errtranslator.ErrTranslator
switch dialect {
case "sqlite":
errTranslator = &errtranslator.SqliteErrTranslator{}
case "postgres":
errTranslator = &errtranslator.PostgresErrTranslator{}
case "mysql":
errTranslator = &errtranslator.MysqlErrTranslator{}
case "mssql":
errTranslator = &errtranslator.MssqlErrTranslator{}
}
if errTranslator != nil {
translatedErr := errTranslator.Translate(err)
if _, ok := translatedErr.(errtranslator.ErrDuplicatedKey); ok {
return ErrDuplicatedKey
}
}
return err
}