29 lines
402 B
Go
29 lines
402 B
Go
package registry
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/go-sql-driver/mysql"
|
|
)
|
|
|
|
const (
|
|
mysqlErrDuplicateKey = 1062
|
|
mysqlErrFKConstraint = 1452
|
|
)
|
|
|
|
func classifyError(err error) error {
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
|
|
var mysqlErr *mysql.MySQLError
|
|
if errors.As(err, &mysqlErr) {
|
|
switch mysqlErr.Number {
|
|
case mysqlErrDuplicateKey, mysqlErrFKConstraint:
|
|
return ErrConflict
|
|
}
|
|
}
|
|
|
|
return err
|
|
}
|