23 lines
395 B
Go
23 lines
395 B
Go
package api
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/jackc/pgx/v5/pgconn"
|
|
)
|
|
|
|
func HandleDBError(err error) (int, string) {
|
|
pgErr, ok := err.(*pgconn.PgError)
|
|
if !ok {
|
|
return 500, err.Error()
|
|
}
|
|
statusStr := pgErr.Message[:3]
|
|
message := pgErr.Message[4:]
|
|
status, err := strconv.ParseInt(statusStr, 10, 0)
|
|
if err == nil {
|
|
return int(status), message
|
|
} else {
|
|
return 400, pgErr.Message
|
|
}
|
|
}
|