usecases

package
v0.0.0-...-0e8bb44 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDecodePreProduct   = myerrors.NewErrorBadFormatRequest("Некорректный json объявления")
	ErrDecodePreOrder     = myerrors.NewErrorBadFormatRequest("Некорректный json заказа")
	ErrDecodeOrderChanges = myerrors.NewErrorBadFormatRequest("Некорректный json изменения заказа")
	ErrNotExistingStatus  = myerrors.NewErrorBadFormatRequest(
		"Статус заказа не может быть больше %d", models.OrderStatusClosed)
)

Functions

func ValidateOrderChangesCount

func ValidateOrderChangesCount(r io.Reader) (*models.OrderChanges, error)

func ValidateOrderChangesStatus

func ValidateOrderChangesStatus(r io.Reader) (*models.OrderChanges, error)

func ValidatePartOfPreProduct

func ValidatePartOfPreProduct(r io.Reader, userID uint64) (*models.PreProduct, error)

func ValidatePreOrder

func ValidatePreOrder(r io.Reader) (*models.PreOrder, error)

func ValidatePreProduct

func ValidatePreProduct(r io.Reader, userID uint64) (*models.PreProduct, error)

Types

type BasketService

type BasketService struct {
	// contains filtered or unexported fields
}

func NewBasketService

func NewBasketService(basketStorage IBasketStorage) (*BasketService, error)

func (BasketService) AddOrder

func (b BasketService) AddOrder(ctx context.Context, r io.Reader, userID uint64) (*models.OrderInBasket, error)

func (BasketService) BuyFullBasket

func (b BasketService) BuyFullBasket(ctx context.Context, userID uint64) error

func (BasketService) DeleteOrder

func (b BasketService) DeleteOrder(ctx context.Context, orderID uint64, ownerID uint64) error

func (BasketService) GetOrdersByUserID

func (b BasketService) GetOrdersByUserID(ctx context.Context, userID uint64) ([]*models.OrderInBasket, error)

func (BasketService) UpdateOrderCount

func (b BasketService) UpdateOrderCount(ctx context.Context, r io.Reader, userID uint64) error

func (BasketService) UpdateOrderStatus

func (b BasketService) UpdateOrderStatus(ctx context.Context, r io.Reader, userID uint64) error

type FavouriteService

type FavouriteService struct {
	// contains filtered or unexported fields
}

func NewFavouriteService

func NewFavouriteService(favouriteStorage IFavouriteStorage) (*FavouriteService, error)

func (FavouriteService) AddToFavourites

func (f FavouriteService) AddToFavourites(ctx context.Context, userID uint64, r io.Reader) error

func (FavouriteService) DeleteFromFavourites

func (f FavouriteService) DeleteFromFavourites(ctx context.Context, userID uint64, productID uint64) error

func (FavouriteService) GetUserFavourites

func (f FavouriteService) GetUserFavourites(ctx context.Context, userID uint64) ([]*models.ProductInFeed, error)

type IBasketStorage

type IBasketStorage interface {
	AddOrderInBasket(ctx context.Context, userID uint64, productID uint64, count uint32) (*models.OrderInBasket, error)
	GetOrdersInBasketByUserID(ctx context.Context, userID uint64) ([]*models.OrderInBasket, error)
	UpdateOrderCount(ctx context.Context, userID uint64, orderID uint64, newCount uint32) error
	UpdateOrderStatus(ctx context.Context, userID uint64, orderID uint64, newStatus uint8) error
	BuyFullBasket(ctx context.Context, userID uint64) error
	DeleteOrder(ctx context.Context, orderID uint64, ownerID uint64) error
}

type IFavouriteStorage

type IFavouriteStorage interface {
	GetUserFavourites(ctx context.Context, userID uint64) ([]*models.ProductInFeed, error)
	AddToFavourites(ctx context.Context, userID uint64, productID uint64) error
	DeleteFromFavourites(ctx context.Context, userID uint64, productID uint64) error
}

type IProductStorage

type IProductStorage interface {
	AddProduct(ctx context.Context, preProduct *models.PreProduct) (uint64, error)
	GetProduct(ctx context.Context, productID uint64, userID uint64) (*models.Product, error)
	GetOldProducts(ctx context.Context, lastProductID uint64, count uint64, userID uint64) ([]*models.ProductInFeed, error)
	GetProductsOfSaler(ctx context.Context, lastProductID uint64,
		count uint64, userID uint64, isMy bool) ([]*models.ProductInFeed, error)
	UpdateProduct(ctx context.Context, productID uint64, updateFields map[string]interface{}) error
	CloseProduct(ctx context.Context, productID uint64, userID uint64) error
	ActivateProduct(ctx context.Context, productID uint64, userID uint64) error
	DeleteProduct(ctx context.Context, productID uint64, userID uint64) error
	SearchProduct(ctx context.Context, searchInput string) ([]string, error)
	GetSearchProductFeed(ctx context.Context,
		searchInput string, lastNumber uint64, limit uint64, userID uint64,
	) ([]*models.ProductInFeed, error)
	IBasketStorage
	IFavouriteStorage
}

type ProductService

type ProductService struct {
	FavouriteService
	BasketService
	// contains filtered or unexported fields
}

func NewProductService

func NewProductService(productStorage IProductStorage, basketService *BasketService,
	favouriteService *FavouriteService, fileServiceClient fileservice.FileServiceClient,
) (*ProductService, error)

func (*ProductService) ActivateProduct

func (p *ProductService) ActivateProduct(ctx context.Context, productID uint64, userID uint64) error

func (*ProductService) AddProduct

func (p *ProductService) AddProduct(ctx context.Context, r io.Reader, userID uint64) (uint64, error)

func (*ProductService) CloseProduct

func (p *ProductService) CloseProduct(ctx context.Context, productID uint64, userID uint64) error

func (*ProductService) DeleteProduct

func (p *ProductService) DeleteProduct(ctx context.Context, productID uint64, userID uint64) error

func (*ProductService) GetProduct

func (p *ProductService) GetProduct(ctx context.Context,
	productID uint64, userID uint64,
) (*models.Product, error)

func (*ProductService) GetProductsList

func (p *ProductService) GetProductsList(ctx context.Context,
	lastProductID uint64, count uint64, userID uint64,
) ([]*models.ProductInFeed, error)

func (*ProductService) GetProductsOfSaler

func (p *ProductService) GetProductsOfSaler(ctx context.Context,
	lastProductID uint64, count uint64, userID uint64, isMy bool,
) ([]*models.ProductInFeed, error)

func (*ProductService) GetSearchProductFeed

func (p *ProductService) GetSearchProductFeed(ctx context.Context,
	searchInput string, lastNumber uint64, limit uint64, userID uint64,
) ([]*models.ProductInFeed, error)

func (*ProductService) SearchProduct

func (p *ProductService) SearchProduct(ctx context.Context, searchInput string) ([]string, error)

func (*ProductService) UpdateProduct

func (p *ProductService) UpdateProduct(ctx context.Context,
	r io.Reader, isPartialUpdate bool, productID uint64, userAuthID uint64,
) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL