pgutil/errors.go

36 lines
559 B
Go
Raw Normal View History

2024-10-29 07:45:49 +00:00
package pgutil
import (
"errors"
"github.com/lib/pq"
)
func ErrIsDuplicateKey(err error) bool {
return ErrHasCode(err, "23505")
}
func ErrIsForeignKey(err error) bool {
return ErrHasCode(err, "23503")
}
func ErrIsCheck(err error) bool {
return ErrHasCode(err, "23514")
}
func ErrIsSerializationFaiilure(err error) bool {
return ErrHasCode(err, "40001")
}
func ErrHasCode(err error, code string) bool {
if err == nil {
return false
}
var pErr *pq.Error
if errors.As(err, &pErr) {
return pErr.Code == pq.ErrorCode(code)
}
return false
}