diff --git a/backend/db/user.go b/backend/db/user.go index 8aae9f4..1070494 100644 --- a/backend/db/user.go +++ b/backend/db/user.go @@ -102,6 +102,10 @@ func (db *DB) DiscordUser(ctx context.Context, discordID string) (u User, err er var id xid.ID err = db.QueryRow(ctx, sql, args...).Scan(&id) if err != nil { + if errors.Cause(err) == pgx.ErrNoRows { + return u, ErrUserNotFound + } + return u, errors.Wrap(err, "executing id query") } diff --git a/backend/server/errors.go b/backend/server/errors.go index 6701268..ae4cf23 100644 --- a/backend/server/errors.go +++ b/backend/server/errors.go @@ -50,6 +50,14 @@ type APIError struct { } func (e APIError) Error() string { + if e.Message == "" { + e.Message = errCodeMessages[e.Code] + } + + if e.Details != "" { + return fmt.Sprintf("%s (code: %d) (%s)", e.Message, e.Code, e.Details) + } + return fmt.Sprintf("%s (code: %d)", e.Message, e.Code) }