Documentation ¶
Index ¶
- Variables
- func WithRepository(cfg *config.Storage) service.Option
- type Repository
- func (r *Repository) Close() error
- func (r *Repository) ConvertToCommonErr(err error) error
- func (r *Repository) CreateReservation(ctx context.Context, data *dto.NumberDateStateProducts) error
- func (r *Repository) CreateSoldRecord(ctx context.Context, data *dto.ArticlePriceAmountDate) error
- func (r *Repository) CreateStock(ctx context.Context, data *dto.ArticlePriceNameAmount) error
- func (r *Repository) DB() *sql.DB
- func (r *Repository) DeleteReservation(ctx context.Context, data *dto.Number) error
- func (r *Repository) ReadReservation(ctx context.Context, data *dto.Number) (dto.NumberDateStateProducts, error)
- func (r *Repository) ReadSoldAmount(ctx context.Context, data *dto.Article) (uint, error)
- func (r *Repository) ReadSoldAmountInPeriod(ctx context.Context, data *dto.ArticleFromTo) (uint, error)
- func (r *Repository) ReadSoldRecords(ctx context.Context, data *dto.Article) ([]dto.ArticlePriceAmountDate, error)
- func (r *Repository) ReadSoldRecordsInPeriod(ctx context.Context, data *dto.ArticleFromTo) ([]dto.ArticlePriceAmountDate, error)
- func (r *Repository) ReadStock(ctx context.Context, data *dto.Article) (dto.ArticlePriceNameAmount, error)
- func (r *Repository) ReadStockAmount(ctx context.Context, data *dto.Article) (uint, error)
- func (r *Repository) ReadStockPrice(ctx context.Context, data *dto.Article) (float64, error)
- func (r *Repository) UpdateReservation(ctx context.Context, data *dto.NumberDateStateProducts) error
- func (r *Repository) UpdateStock(ctx context.Context, data *dto.ArticlePriceNameAmount) error
- func (r *Repository) UpdateStockAmount(ctx context.Context, data *dto.ArticleAmount) error
- func (r *Repository) UpdateStockPrice(ctx context.Context, data *dto.ArticlePrice) error
- func (r *Repository) WithinTransaction(ctx context.Context, tFunc func(ctx context.Context) error) error
Constants ¶
This section is empty.
Variables ¶
var (
ErrNilConfigPointer = mysqlErr("nil config pointer")
)
Functions ¶
Types ¶
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
func (*Repository) ConvertToCommonErr ¶
func (r *Repository) ConvertToCommonErr(err error) error
ConvertToCommonErr замещает ошибки конкретной реализации на подобные по смыслу ошибки из доступных в абстрактном репозитории. К примеру, меняет sql.ErrNoRows на repository.ErrNoRecord.
func (*Repository) CreateReservation ¶
func (r *Repository) CreateReservation(ctx context.Context, data *dto.NumberDateStateProducts) error
CreateReservation выполняет резервирование товаров в таблицу on_processing. Если в передаваемом контексте уже содержится транзакция, то запросы к БД выполняются в этой внешней транзакции. В противном случае создается новая транзакция и запросы выполняются в ней.
func (*Repository) CreateSoldRecord ¶
func (r *Repository) CreateSoldRecord(ctx context.Context, data *dto.ArticlePriceAmountDate) error
CreateSoldRecord сохраняет в БД запись об проданном товаре.
func (*Repository) CreateStock ¶
func (r *Repository) CreateStock(ctx context.Context, data *dto.ArticlePriceNameAmount) error
CreateStock сохраняет в БД запись о товаре.
func (*Repository) DeleteReservation ¶
DeleteReservation удаляет из БД записи с номером заказа, переданным в dto.Number.
func (*Repository) ReadReservation ¶
func (r *Repository) ReadReservation(ctx context.Context, data *dto.Number) (dto.NumberDateStateProducts, error)
ReadReservation возвращает в виде dto.NumberDateStateProducts данные о бронировании товаров с номером заказа, переданным в dto.Number.
func (*Repository) ReadSoldAmount ¶
ReadSoldAmount возвращает количество проданного товара с переданным в *dto.Article артикулом (за весь период).
func (*Repository) ReadSoldAmountInPeriod ¶
func (r *Repository) ReadSoldAmountInPeriod(ctx context.Context, data *dto.ArticleFromTo) (uint, error)
ReadSoldAmountInPeriod возвращает количество проданного товара за определенный период.
func (*Repository) ReadSoldRecords ¶
func (r *Repository) ReadSoldRecords(ctx context.Context, data *dto.Article) ([]dto.ArticlePriceAmountDate, error)
ReadSoldRecords возвращает все записи о продажах товара с переданным в dto.Article артикулом.
func (*Repository) ReadSoldRecordsInPeriod ¶
func (r *Repository) ReadSoldRecordsInPeriod(ctx context.Context, data *dto.ArticleFromTo) ([]dto.ArticlePriceAmountDate, error)
ReadSoldRecordsInPeriod возвращает все записи о продажах товара с переданным в dto.ArticleFromTo артикулом в период между датами From и To включительно.
func (*Repository) ReadStock ¶
func (r *Repository) ReadStock(ctx context.Context, data *dto.Article) (dto.ArticlePriceNameAmount, error)
ReadStock возвращает запись из БД о товаре, находящемся в продаже в виде dto.ArticlePriceNameAmount.
func (*Repository) ReadStockAmount ¶
ReadStockAmount возвращает количество товара с артикулом, переданным в dto.Article из находящегося в продаже.
func (*Repository) ReadStockPrice ¶
ReadStockPrice возвращает цену товара с артикулом, переданным в dto.Article, из находящегося в продаже.
func (*Repository) UpdateReservation ¶
func (r *Repository) UpdateReservation(ctx context.Context, data *dto.NumberDateStateProducts) error
UpdateReservation обновляет в БД записи о бронировании, в соответствии с переданными в dto.NumberDateStateProducts данными (кроме идентификатора записи в таблицы и времени бронирования).
func (*Repository) UpdateStock ¶
func (r *Repository) UpdateStock(ctx context.Context, data *dto.ArticlePriceNameAmount) error
UpdateStock обновляет запись о товаре в БД, в соответствии с переданными в dto.ArticlePriceNameAmount данными.
func (*Repository) UpdateStockAmount ¶
func (r *Repository) UpdateStockAmount(ctx context.Context, data *dto.ArticleAmount) error
UpdateStockAmount обновляет количество доступного для продажи товара в соответствии с переданными в dto.ArticleAmount данными.
func (*Repository) UpdateStockPrice ¶
func (r *Repository) UpdateStockPrice(ctx context.Context, data *dto.ArticlePrice) error
UpdateStockPrice обновляет цену доступного для продажи товара в соответствии с переданными в dto.ArticlePrice данными.
func (*Repository) WithinTransaction ¶
func (r *Repository) WithinTransaction(ctx context.Context, tFunc func(ctx context.Context) error) error
WithinTransaction запускает функцию tFunc с контекстом, содержащим внутри транзакционный объект. Транзакция завершается, если функция завершается без ошибок. Взял идею такой работы с транзакциями в этой статье: https://habr.com/ru/articles/651799/. Модифицировал предложенную в статье идею, добавив возможность внутри функции tFunc использовать вызов WithinTransaction. При этом вложенный вызов WithinTransaction будет использовать ту же транзакцию, что и внешний.