+
Skip to content

Tests #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open

Tests #8

wants to merge 45 commits into from

Conversation

Pizhlo
Copy link
Collaborator

@Pizhlo Pizhlo commented Aug 28, 2023

  • добавлены тесты на orders
  • добавлены тесты на balance
  • добавляются тесты на accrual

Zagir2000 and others added 30 commits August 13, 2023 21:23
* flag.go опечатка
* main.go создали структуру хранения токенов
* ../../go.mod новые зависимости
* ../../go.sum новые зависимости
+ ../../internal/gofermart/auth/cache/cache.go добавляем и храним токены
+ ../../internal/gofermart/auth/hashpassword.go хешируем пароль
+ ../../internal/gofermart/auth/jwt.go создаем токены
+ ../../internal/gofermart/handlers/auth.go аутентификация
+ ../../internal/gofermart/handlers/hadnlestruct.go  структуры
- ../../internal/gofermart/handlers/handlers.go регистарция и авторизация(надо сделать перенаправление)
* ../../internal/gofermart/handlers/router.go новые хенделры
* ../../internal/gofermart/migrations/0001_init.up.sql изменили наименование для корректности
+ ../../internal/gofermart/models/models.go для удобавста данные юзера будем хранить в отедльном пакете
+ ../../internal/gofermart/pkg/errors.go пакет для ошибок для удобства
+ ../../internal/gofermart/storage/auth.go добавление и чтение из бд
* ../../internal/gofermart/storage/db.go операции с бд(миграции, соединение и тд)
* ../../internal/gofermart/storage/interfacestorage.go интерфейс логики для работы с бд
* internal/gofermart/auth/jwt.go поправлено
* internal/gofermart/handlers/auth.go поправлено
+ internal/gofermart/handlers/orders.go добавили новый хэндер для
  загрузки заказов
  * internal/gofermart/handlers/router.go новый пост хэндлер
  + internal/gofermart/migrations/0002_orders.up.sql
  * internal/gofermart/models/models.go структура заказа
  * internal/gofermart/storage/auth.go поправлено
  * internal/gofermart/storage/interfacestorage.go новая функция
  + internal/gofermart/storage/order.go добавление заказов в бд
  + internal/luna/luna.go алгоритм луна
  * pkg/errors.go ошибки
* ../../internal/gofermart/handlers/orders.go поправлено на инт64
* ../../internal/gofermart/migrations/0002_orders.up.sql новые поля
* ../../internal/gofermart/models/models.go новые поля
* ../../internal/gofermart/storage/auth.go проверяем только логин
* ../../internal/gofermart/storage/order.go добавляем статус
* ../../internal/luna/luna.go поправлено на инт64
* main.go поправлено
* ../../internal/gofermart/handlers/auth.go нулевой баланс при авторизации
+ ../../internal/gofermart/handlers/balance.go хэндлер баланс
* ../../internal/gofermart/handlers/hadnlestruct.go поправлено
* ../../internal/gofermart/handlers/orders.go поправлено
* ../../internal/gofermart/handlers/router.go новые хэгдлеры
* ../../internal/gofermart/migrations/0002_orders.up.sql поправлены миграции: дата и убрали уникальный номер с логина
+ ../../internal/gofermart/migrations/0003_balance.up.sql миграции для баланса
* ../../internal/gofermart/models/models.go новые структуры для баланса
+ ../../internal/gofermart/storage/balance.go бд баланса
* ../../internal/gofermart/storage/db.go поправлено
* ../../internal/gofermart/storage/interfacestorage.go вз-е с бд
* ../../internal/gofermart/storage/order.go логика при списании и начислении
* internal/gofermart/handlers/balance.go Получение информации о выводе средств
* internal/gofermart/handlers/orders.go поправлено
* internal/gofermart/handlers/router.go новый гет
* internal/gofermart/models/models.go поправлено
* internal/gofermart/storage/balance.go поправлено
* internal/gofermart/storage/interfacestorage.go добавлен новый гет
* internal/gofermart/storage/order.go Получение информации о выводе средств из бд
+ cmd/accrual/flag.go флаги для сервиса
* cmd/accrual/main.go запуск
* go.mod новые зависимости
* go.sum новые зависимости
+ internal/accrual/handlers/goods.go апи для товаров
+ internal/accrual/handlers/hadnlestruct.go структура хэгдера
+ internal/accrual/handlers/orders.go апи для заказов
+ internal/accrual/handlers/router.go роутер
+ internal/accrual/migrations/0001_ordersaccrual.up.sql миграции для заказов
+ internal/accrual/migrations/0002_goods.up.sql миграции для товаров
+ internal/accrual/models/modles.go модели
+ internal/accrual/storage/db.go инициализация бд и миграции
+ internal/accrual/storage/goods.go запись товаров в бд
+ internal/accrual/storage/interfacestorage.go интерфейс для взам-е с бд
+ internal/accrual/storage/orders.go запись заказов в бд
* internal/accrual/handlers/goods.go регистрация вознаграждений
* internal/accrual/handlers/orders.go добавление товаров при регистрации заказа
* internal/accrual/models/modles.go поправлено
* internal/accrual/storage/goods.go добавление товаров и вознаграждений
* internal/accrual/storage/interfacestorage.go новые функции
* internal/accrual/storage/orders.go поправлено
* cmd/accrual/flag.go количество воркеров
* cmd/accrual/main.go новая горутина
+ internal/accrual/accrualcalculate/calc.go подсчет баллов и запись их в бд
* internal/accrual/handlers/orders.go удалили ненужное
* nternal/accrual/handlers/goods.go -> internal/accrual/handlers/rewards.go переименовано
- internal/accrual/migrations/0002_goods.up.sql удалили таблицу
+ internal/accrual/migrations/0002_rewards.up.sql новая таблица
* internal/accrual/models/modles.go поправлено
- internal/accrual/storage/goods.go удалили
* internal/accrual/storage/interfacestorage.go новые методы
* internal/accrual/storage/orders.go новые запросы к бд
+ internal/accrual/storage/rewards.go регситрация новых вознаграждений
* flag.go для количества воркеров
* main.go добавлена горутина
* ../../go.mod новые зав-ти
* ../../internal/accrual/accrualcalculate/calc.go поправлено
* ../../internal/accrual/handlers/router.go добавлен логер
* ../../internal/accrual/storage/db.go убрали миграции в accrual, потому что одна бд, все миграции будут совершаться в гофермарте
* ../../internal/gofermart/handlers/orders.go поправлено
* ../../internal/gofermart/handlers/router.go добавлен логер
+ ../../internal/gofermart/interactionwithaccrual/interection.go вз-е с начислительной системой
* ./../internal/accrual/migrations/0002_rewards.up.sql -> ../../internal/gofermart/migrations/0004_rewards.up.sql миграции в одном месте, так как 1 бд
*../../internal/accrual/migrations/0001_ordersaccrual.up.sql -> ../../internal/gofermart/migrations/ordersaccrual.up.sql миграции в одном месте, так как 1 бд
* ../../internal/gofermart/models/models.go новые структуры
* ../../internal/gofermart/storage/auth.go поправлено
* ../../internal/gofermart/storage/balance.go изменение accrual в balance
* ../../internal/gofermart/storage/interfacestorage.go новые методы
* ../../internal/gofermart/storage/order.go получить все заказы
@@ -0,0 +1,33 @@
package storage
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно убрать слово interface в названии файла.

log "github.com/sirupsen/logrus"
)

type DBInterface interface {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы разделил интерфейс по сущностям.

type DBInterface interface {
RegisterUser(ctx context.Context, userData models.UserData) error
GetUser(ctx context.Context, userData *models.UserData) error
LoadOrderInDB(ctx context.Context, userData *models.Orders) error
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем DB в имени функции. Плюс название аргумента userData - а там структура заказа.

"errors"
"fmt"

"github.com/golang-migrate/migrate/v4"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Смешались в блоке импорты внешних и внутренних пакетов.

"github.com/jackc/pgx/v5/pgconn"
"github.com/jackc/pgx/v5/pgxpool"
_ "github.com/jackc/pgx/v5/stdlib"
log "github.com/sirupsen/logrus"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Использование внешнего пакета лога стоит скрыть за внутренним пакетом.


for _, order := range rewards {
ordersChan <- order
err = s.EditStatusAndAccrualOrder(ctx, models.ProcessingOrder, 0, order.OrderNumber)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы в начале фиксировал факт начала обработки заказа, а потом размещал его на обработку в нужном канале. Потому что эта строчка кода сработает, только после фактической обработки и отправки заказа. См. на строчку 73.

@@ -0,0 +1,115 @@
package handlers
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для удобства я бы еще разделил на папки с обработчиками по каждой сущности

}
}

func findMatch(ctx context.Context, orderAndReward1 chan models.GoodsWithReward, s storage.DBInterfaceOrdersAccrual) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Название аргумента с 1-ой выглядит не очень информативно.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载