Бот для создания и управления голосованиями в Mattermost с использованием Tarantool в качестве хранилища данных.
- Клонирование репозитория:
git clone https://github.com/Snake1-1eyes/mattermost_voting_bot.git
cd mattermost_voting_bot- Настройка конфигурации:
cp .env.example .env- Пример
.env:
TARANTOOL_USER=storage
TARANTOOL_PASSWORD=passw0rd
TARANTOOL_HOST=tarantool
TARANTOOL_PORT=3301
APP_PORT=8080
APP_HOST=0.0.0.0- Запуск:
docker-compose up -dcurl -X POST http://localhost:8080/polls \
-H "Content-Type: application/json" \
-H "X-User-ID: user123" \
-d '{
"title": "Выбор места для встречи",
"options": ["Офис", "Кафе", "Онлайн"],
"expires_at": "2026-03-29T15:00:00Z"
}'curl -X POST http://localhost:8080/polls \
-H "Content-Type: application/json" \
-H "X-User-ID: user2" \
-d '{
"title": "Любимый футбольный клуб?",
"options": ["Спартак", "ЦСКА", "Краснодар", "Динамо"],
"expires_at": "2026-01-29T15:00:00Z"
}'curl -X POST http://localhost:8080/polls/{poll_id_1}/vote \
-H "Content-Type: application/json" \
-H "X-User-ID: user459" \
-d '{
"option_index": 2
}'curl -X POST http://localhost:8080/polls/{poll_id_2}/vote \
-H "Content-Type: application/json" \
-H "X-User-ID: user22" \
-d '{
"option_index": 0
}'curl -X POST http://localhost:8080/polls/{poll_id_2}/vote \
-H "Content-Type: application/json" \
-H "X-User-ID: user33" \
-d '{
"option_index": 1
}'curl -X GET http://localhost:8080/polls/{poll_id_1}/results \
-H "X-User-ID: user123"curl -X GET http://localhost:8080/polls/{poll_id_2}/results \
-H "X-User-ID: user2"curl -X POST http://localhost:8080/polls/{poll_id_2}/end \
-H "X-User-ID: user2"curl -X DELETE http://localhost:8080/polls/{poll_id_1} \
-H "X-User-ID: user123"curl -X GET http://localhost:8080/polls/{poll_id_1}/results \
-H "X-User-ID: user123"curl -X GET http://localhost:8080/polls/{poll_id_2}/results \
-H "X-User-ID: user2"curl -X POST http://localhost:8080/polls/{poll_id_2}/vote \
-H "Content-Type: application/json" \
-H "X-User-ID: user44" \
-d '{
"option_index": 1
}'Примечание: Замените {poll_id_1} и {poll_id_2} на реальные ID, полученные после создания опросов.(В коллекции постман для этого есть отдельные скрипты для добавления в глобальные перменные)