handling special errors in postgresql
This commit is contained in:
parent
26845b5c82
commit
d16cc65a44
|
@ -2,9 +2,12 @@ package postgresql
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"recipes/internal/domain/models"
|
"recipes/internal/domain/models"
|
||||||
|
"recipes/internal/storage"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgxpool"
|
"github.com/jackc/pgx/v5/pgxpool"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,10 +15,6 @@ type Storage struct {
|
||||||
db *pgxpool.Pool
|
db *pgxpool.Pool
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
// handling special errors
|
|
||||||
// AddRecipeInformation
|
|
||||||
|
|
||||||
func New(ctx context.Context, user, password, addr, dbname string) (*Storage, error) {
|
func New(ctx context.Context, user, password, addr, dbname string) (*Storage, error) {
|
||||||
const op = "storage.postgresql.New"
|
const op = "storage.postgresql.New"
|
||||||
|
|
||||||
|
@ -188,6 +187,9 @@ func (s *Storage) GetRecipe(ctx context.Context, r_id uint) (models.Recipe, erro
|
||||||
).Scan(&recipe)
|
).Scan(&recipe)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, pgx.ErrNoRows) {
|
||||||
|
return models.Recipe{}, storage.ErrRecipeNotFound
|
||||||
|
}
|
||||||
return models.Recipe{}, fmt.Errorf("%s: %w", op, err)
|
return models.Recipe{}, fmt.Errorf("%s: %w", op, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,6 +329,9 @@ func (s *Storage) GetRecipesByCategory(ctx context.Context, offset, limit int, c
|
||||||
category, limit, offset,
|
category, limit, offset,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, pgx.ErrNoRows) {
|
||||||
|
return nil, storage.ErrCategoryNotFound
|
||||||
|
}
|
||||||
return nil, fmt.Errorf("%s: %w", op, err)
|
return nil, fmt.Errorf("%s: %w", op, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,5 +5,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrNotFound = errors.New("not found")
|
ErrRecipeNotFound = errors.New("recipe not found")
|
||||||
|
ErrCategoryNotFound = errors.New("category not found")
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue