Documentation
¶
Index ¶
- Variables
- type DB
- func (db DB) Commit(ctx context.Context) error
- func (db DB) CreateProduct(ctx context.Context, params inventory.CreateProductParams) error
- func (db DB) CreateProductReview(ctx context.Context, params inventory.CreateProductReviewDBParams) error
- func (db DB) DeleteProduct(ctx context.Context, id string) error
- func (db DB) DeleteProductReview(ctx context.Context, id string) error
- func (db DB) GetProduct(ctx context.Context, id string) (*inventory.Product, error)
- func (db DB) GetProductReview(ctx context.Context, id string) (*inventory.ProductReview, error)
- func (db DB) GetProductReviews(ctx context.Context, params inventory.ProductReviewsParams) (*inventory.ProductReviewsResponse, error)
- func (db DB) Release(ctx context.Context)
- func (db DB) Rollback(ctx context.Context) error
- func (db DB) SearchProducts(ctx context.Context, params inventory.SearchProductsParams) (*inventory.SearchProductsResponse, error)
- func (db DB) TransactionContext(ctx context.Context) (context.Context, error)
- func (db DB) UpdateProduct(ctx context.Context, params inventory.UpdateProductParams) error
- func (db DB) UpdateProductReview(ctx context.Context, params inventory.UpdateProductReviewParams) error
- func (db DB) WithAcquire(ctx context.Context) (dbCtx context.Context, err error)
Constants ¶
This section is empty.
Variables ¶
var ErrProductNotFound = errors.New("product not found")
ErrProductNotFound is returned when a product is not found.
var ErrReviewNotFound = errors.New("product review not found")
ErrReviewNotFound is returned when a review is not found.
Functions ¶
This section is empty.
Types ¶
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
DB handles database communication with PostgreSQL.
func (DB) CreateProduct ¶
CreateProduct creates a new product.
func (DB) CreateProductReview ¶
func (db DB) CreateProductReview(ctx context.Context, params inventory.CreateProductReviewDBParams) error
CreateProductReview for a given product.
func (DB) DeleteProduct ¶
DeleteProduct from the database.
func (DB) DeleteProductReview ¶
DeleteProductReview from the database.
func (DB) GetProduct ¶
GetProduct returns a product.
func (DB) GetProductReview ¶
GetProductReview gets a specific review.
func (DB) GetProductReviews ¶
func (db DB) GetProductReviews(ctx context.Context, params inventory.ProductReviewsParams) (*inventory.ProductReviewsResponse, error)
GetProductReviews gets reviews for a given product or from a given user.
func (DB) SearchProducts ¶
func (db DB) SearchProducts(ctx context.Context, params inventory.SearchProductsParams) (*inventory.SearchProductsResponse, error)
SearchProducts returns a list of products.
func (DB) TransactionContext ¶
TransactionContext returns a copy of the parent context which begins a transaction to PostgreSQL.
Once the transaction is over, you must call db.Commit(ctx) to make the changes effective. This might live in the go-pkg/postgres package later for the sake of code reuse.
func (DB) UpdateProduct ¶
UpdateProduct updates an existing product.
func (DB) UpdateProductReview ¶
func (db DB) UpdateProductReview(ctx context.Context, params inventory.UpdateProductReviewParams) error
UpdateProductReview for a given product.
func (DB) WithAcquire ¶
WithAcquire returns a copy of the parent context which acquires a connection to PostgreSQL from pgxpool to make sure commands executed in series reuse the same database connection.
To release the connection back to the pool, you must call postgres.Release(ctx).
Example: dbCtx := db.WithAcquire(ctx) defer postgres.Release(dbCtx)