mysql

package
v0.0.0-...-5a20165 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNilConfigPointer = mysqlErr("nil config pointer")
)

Functions

func WithRepository

func WithRepository(cfg *config.Storage) service.Option

WithRepository служит для инициализации репозитория и внедрение его в сервис, используя паттерн Options.

Types

type Repository

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

func (*Repository) Close

func (r *Repository) Close() error

Close закрывает пул подключений к БД.

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) DB

func (r *Repository) DB() *sql.DB

DB возвращает структуру DB репозитория.

func (*Repository) DeleteReservation

func (r *Repository) DeleteReservation(ctx context.Context, data *dto.Number) error

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

func (r *Repository) ReadSoldAmount(ctx context.Context, data *dto.Article) (uint, error)

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

func (r *Repository) ReadStockAmount(ctx context.Context, data *dto.Article) (uint, error)

ReadStockAmount возвращает количество товара с артикулом, переданным в dto.Article из находящегося в продаже.

func (*Repository) ReadStockPrice

func (r *Repository) ReadStockPrice(ctx context.Context, data *dto.Article) (float64, error)

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 будет использовать ту же транзакцию, что и внешний.

Jump to

Keyboard shortcuts

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