From bc1b0ff7310fea264df9b6569ea240ff569fddb8 Mon Sep 17 00:00:00 2001 From: Piotr Biernat Date: Tue, 21 Oct 2025 13:26:50 +0200 Subject: [PATCH] Added database package --- database/connect.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 database/connect.go diff --git a/database/connect.go b/database/connect.go new file mode 100644 index 0000000..408f9d1 --- /dev/null +++ b/database/connect.go @@ -0,0 +1,43 @@ +package database + +import ( + "context" + "errors" + + "github.com/jackc/pgx/v5/pgconn" + "github.com/jackc/pgx/v5/pgxpool" +) + +func Connect(connStr string) (*pgxpool.Pool, error) { + pool, err := pgxpool.New(context.Background(), connStr) + if err != nil { + return nil, err + } + + return pool, nil +} + +func IsDuplicatedRow(err error) error { + var pgErr *pgconn.PgError + + if errors.As(err, &pgErr) && pgErr.Code == "23505" { + return errors.New("duplicated row found") + } + + return nil +} + +// FIXME get an idea how this func should work +// func NoRowsInQuerySet(err error) error { +// var pgErr *pgconn.PgError + +// if errors.As(err, &pgErr) { +// fmt.Println("pgerr:", pgErr.Code) +// return errors.New("no rows selected") +// } +// // if err == pgconn. { +// // fmt.Println("No rows were found.") +// // } + +// return nil +// }