summaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
authorLibravatar Forest Johnson <forest.n.johnson@gmail.com>2022-02-07 11:04:31 +0000
committerLibravatar GitHub <noreply@github.com>2022-02-07 12:04:31 +0100
commit6ed368cbebcae087aec1f31ee8d69ac6c47ead9f (patch)
treeab3cd855aea308e2db719f2ac67a8e38cd6c920c /internal/db
parentdon't bother negotiating Accept for webfinger (#381) (diff)
downloadgotosocial-6ed368cbebcae087aec1f31ee8d69ac6c47ead9f.tar.xz
[feature] add authorization to the already-existing authentication (#365)
* add ensureUserIsAuthorizedOrRedirect to /oauth/authorize * adding authorization (email confirm, account approve, etc) to TokenCheck * revert un-needed changes to signin.go * oops what happened here * error css * add account.SuspendedAt check * remove redundant checks from oauth util Authed function * wip tests * tests passing * stop stripping useful information from ErrAlreadyExists * that feeling of scraping the dryer LINT off the screen * oops I didn't mean to get rid of this NewTestRouter function * make tests work with recorder * re-add ConfigureTemplatesWithGin to handle template path err Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
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}
+}