module
0.0.0-20241128231108-6ed9ba78d7e6
Repository: https://github.com/nehachuha1/wbtech-tasks.git
Documentation: pkg.go.dev
# README
WB Tech L0
В данном задании необходимо было реализовать сервис по загрузке JSON с данными о заказе и дальнейшей их обработке, а также получению данных о заказе по его полю order_uid
Структура
wb-tech/
├── cmd/
│ └── wb-tech/
│ └── main.go - исполняемый файл
├── internal/
│ ├── config/
│ │ └── config.go - в нём описаны структуры конфигов для хранилища кэша, базы данных и Kafka
│ ├── database/
│ │ ├── cacher/
│ │ │ ├── cacher.go - описана структура хранилища кэша с методами
│ │ │ └── implementation.go - интерфейс хранилища кэша
│ │ ├── kafka/
│ │ │ ├── consumer/
│ │ │ │ └── consumer.go - структура консьюмера с методами взаимодействия с Kafka
│ │ │ └── producer/
│ │ │ └── producer.go - структура отправителя с методами взаимодействия с Kafka
│ │ ├── postgres/
│ │ │ ├── implementation.go - интерфейс модуля управлеия БД PostgreSQL
│ │ │ └── postgres.go - структура для управления постгресом с методами
│ │ └── init.go - инициализация управления памятью (кэшем и постгресом + консьюмера Kafka)
│ ├── handlers/
│ │ ├── orders/
│ │ │ └── order.go - обработчики входящих запросов на создание/отображение заказа
│ │ └── abstractions.go - содержит в себе структуру JSON заказа
│ ├── migrations/
│ │ └── postgres/
│ │ ├── migrate.go - содержит в себе метод для запуска автоматических миграций через gorm в Postgres
│ │ └── models.go - содержит в себе структуры сущностей из Postgres
│ └── server/
│ └── build.go - сборка роутера с хэндлерами и менеджером данных
├── logs/
│ └── logs.log - файл с логами сервиса
├── pkg/
│ ├── database/
│ │ ├── clear.go - очищение базы данных
│ │ └── generate.go - генерация ID при декомпозиции входящей сущности на несколько сущностей
│ └── log/
│ └── logger.go - инициализация логгера
├── templates/
│ └── index.html - основная html-страничка
├── .gitignore
├── docker-compose.yml - запуск всех основных сервисов для работы проекта
├── task.md - описание задания
└── README.md