Documentation
¶
Index ¶
- func NewGrpcServer(port string, ps ProductsService) *grpc.Server
- func NewProductsServer(ps ProductsService) proto.ProductsServiceServer
- func NewSqlDb(dburl string) (*sql.DB, error)
- type AddProductRequest
- type ConsumerService
- type DetailedProduct
- type EventProducer
- type ProductsRepository
- type ProductsService
- type UpdateInventoryRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewGrpcServer ¶
func NewGrpcServer(port string, ps ProductsService) *grpc.Server
func NewProductsServer ¶
func NewProductsServer(ps ProductsService) proto.ProductsServiceServer
Types ¶
type AddProductRequest ¶
type ConsumerService ¶
func NewEventConsumer ¶
func NewEventConsumer(ch *amqp.Channel, exchangeName string, productsRepo ProductsRepository) ConsumerService
type DetailedProduct ¶
type EventProducer ¶
func NewEventProducer ¶
func NewEventProducer(exchange string, ch *amqp.Channel) EventProducer
type ProductsRepository ¶
type ProductsRepository interface {
FetchProduct(id uuid.UUID) (*DetailedProduct, error)
FetchAllProducts() ([]*DetailedProduct, error)
AddProduct(id uuid.UUID, name string, desc string, price int64, stock int64) error
UpdateInventoryAdd(id uuid.UUID, num int64) error
UpdateInventorySubtract(id uuid.UUID, num int64) error
UpdateInventoryDelete(id uuid.UUID) error
}
func NewProductsRepository ¶
func NewProductsRepository(db *sql.DB) ProductsRepository
type ProductsService ¶
type ProductsService interface {
GetProduct(id uuid.UUID) (*DetailedProduct, error)
GetProducts() ([]*DetailedProduct, error)
AddProduct(req AddProductRequest) (*uuid.UUID, error)
UpdateInventory(req UpdateInventoryRequest) error
}
func NewProductsService ¶
func NewProductsService(repo ProductsRepository, p EventProducer) ProductsService
Click to show internal directories.
Click to hide internal directories.