26 lines
538 B
Go
26 lines
538 B
Go
package pg
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/go-pg/pg/v10"
|
|
"github.com/superseriousbusiness/gotosocial/internal/db"
|
|
)
|
|
|
|
// processErrorResponse parses the given error and returns an appropriate DBError.
|
|
func processErrorResponse(err error) db.Error {
|
|
switch err {
|
|
case nil:
|
|
return nil
|
|
case pg.ErrNoRows:
|
|
return db.ErrNoEntries
|
|
case pg.ErrMultiRows:
|
|
return db.ErrMultipleEntries
|
|
default:
|
|
if strings.Contains(err.Error(), "duplicate key value violates unique constraint") {
|
|
return db.ErrAlreadyExists
|
|
}
|
|
return err
|
|
}
|
|
}
|