summaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db')
-rw-r--r--internal/db/bundb/errors.go4
-rw-r--r--internal/db/error.go15
2 files changed, 15 insertions, 4 deletions
diff --git a/internal/db/bundb/errors.go b/internal/db/bundb/errors.go
index 7602d5e1d..d01720731 100644
--- a/internal/db/bundb/errors.go
+++ b/internal/db/bundb/errors.go
@@ -19,7 +19,7 @@ func processPostgresError(err error) db.Error {
// (https://www.postgresql.org/docs/10/errcodes-appendix.html)
switch pgErr.Code {
case "23505" /* unique_violation */ :
- return db.ErrAlreadyExists
+ return db.NewErrAlreadyExists(pgErr.Message)
default:
return err
}
@@ -36,7 +36,7 @@ func processSQLiteError(err error) db.Error {
// Handle supplied error code:
switch sqliteErr.Code() {
case sqlite3.SQLITE_CONSTRAINT_UNIQUE:
- return db.ErrAlreadyExists
+ return db.NewErrAlreadyExists(err.Error())
default:
return err
}
diff --git a/internal/db/error.go b/internal/db/error.go
index 984f96401..9ac0b6aa0 100644
--- a/internal/db/error.go
+++ b/internal/db/error.go
@@ -28,8 +28,19 @@ var (
ErrNoEntries Error = fmt.Errorf("no entries")
// ErrMultipleEntries is returned when a caller expected ONE entry for a query, but multiples were found.
ErrMultipleEntries Error = fmt.Errorf("multiple entries")
- // ErrAlreadyExists is returned when a caller tries to insert a database entry that already exists in the db.
- ErrAlreadyExists Error = fmt.Errorf("already exists")
// ErrUnknown denotes an unknown database error.
ErrUnknown Error = fmt.Errorf("unknown error")
)
+
+// ErrAlreadyExists is returned when a caller tries to insert a database entry that already exists in the db.
+type ErrAlreadyExists struct {
+ message string
+}
+
+func (e *ErrAlreadyExists) Error() string {
+ return e.message
+}
+
+func NewErrAlreadyExists(msg string) error {
+ return &ErrAlreadyExists{message: msg}
+}