AvitoTest
Это сервис на языке Golang, хранящий пользователей и сегменты, в которых они состоят (создание, изменение, удаление сегментов, а также добавление и удаление пользователей в сегмент)
Требования
Установка и настройка
-
Склонируйте репозиторий:
git clone https://github.com/poggerr/avito.git
-
Установите зависимости:
go mod download
Запуск сервиса
- Запустите базу данных PostgreSQL и сервис с помощью Docker:
docker-compose up --build
Использование
REST API Запросы
-
Создание сегмента:
POST localhost:8080/api/segment/create
Content-Type: application/json
{
"segment": "AVITO_VOICE_MESSAGES"
}
-
Добавление пользователя в сегмент:
POST localhost:8080/api/user/segment
Content-Type: application/json
{
"add" : ["AVITO_VOICE_MESSAGES"],
"delete" : [],
"user" : "2376e110-e40d-41d0-85ba-22db804c4f51"
}
-
Удаление сегмента
POST localhost:8080/api/segment/delete
Content-Type: application/json
{
"segment": "AVITO_VOICE_MESSAGES"
}
-
Удаление пользователя из сегмента
POST localhost:8080/api/user/segment
Content-Type: application/json
{
"add" : [],
"delete" : ["AVITO_VOICE_MESSAGES"],
"user" : "2376e110-e40d-41d0-85ba-22db804c4f51"
}
-
Вывод сегментов пользователя
GET localhost:8080/api/segment/2376e110-e40d-41d0-85ba-22db804c4f51
Content-Type: text/plain
-
Создание отчета в формате CSV пользовательских сегментов
POST localhost:8080/api/segment/csv/2376e110-e40d-41d0-85ba-22db804c4f51
Content-Type: application/json
{
"period": "30-2023"
}
Тестирование
Вы можете запустить unit-тесты с помощью следующей команды:
go test
Вклад
Если вы нашли ошибку или хотите внести улучшения, пожалуйста, создайте issue или отправьте pull request.
Лицензия
Этот проект лицензирован под MIT License - подробности см. в файле LICENSE.