From 3a8a4ff67ddf95f0c03ccc77351f665a73cb7cf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Mon, 8 Nov 2021 14:50:29 +0100 Subject: [PATCH] Improve error handling further. --- database/error.go | 7 ++++++- graph/schema.resolvers.go | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/database/error.go b/database/error.go index a8a6360..74f820a 100644 --- a/database/error.go +++ b/database/error.go @@ -1,6 +1,7 @@ package database import ( + "database/sql" "errors" "github.com/lib/pq" @@ -10,10 +11,14 @@ import ( // that can be easier parsed and handled func CheckErrorCode(err error) error { // https://www.postgresql.org/docs/current/errcodes-appendix.html + if errors.Is(err, sql.ErrNoRows) { + return errors.New("no result") + } + if err, ok := err.(*pq.Error); ok { // duplicate key value violates unique constraint: 23505 unique_violation if err.Code == "23505" { - return errors.New("NotUnique") + return errors.New("not unique") } } return err diff --git a/graph/schema.resolvers.go b/graph/schema.resolvers.go index cbf4fb9..cd70579 100644 --- a/graph/schema.resolvers.go +++ b/graph/schema.resolvers.go @@ -401,7 +401,7 @@ func (r *queryResolver) UserBySteam(ctx context.Context, steamID string) (*model err := database.DB.QueryRow(query, steamID).Scan(&user.ID, &user.TeamspeakID, &user.Elo, &user.Admin, &user.Avatar, &user.Name) if err != nil { - return nil, err + return nil, database.CheckErrorCode(err) } return &user, nil @@ -418,7 +418,7 @@ func (r *queryResolver) UserByTs(ctx context.Context, teamspeakID string) (*mode err := database.DB.QueryRow(query, teamspeakID).Scan(&user.ID, &user.SteamID, &user.Elo, &user.Admin, &user.Avatar, &user.Name) if err != nil { - return nil, err + return nil, database.CheckErrorCode(err) } return &user, nil -- 2.44.0