-
Notifications
You must be signed in to change notification settings - Fork 0
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
base: master
Are you sure you want to change the base?
Conversation
Pizhlo
commented
Aug 28, 2023
- добавлены тесты на orders
- добавлены тесты на balance
- добавляются тесты на accrual
* 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 |
There was a problem hiding this comment.
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 { |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Название аргумента с 1-ой выглядит не очень информативно.