Простой сервис для работы с игровыми слотами. Поддерживает загрузку конфигурации для катушек, линий и выплат, а также расчет комбинаций.
Клонировать репозиторий выполнив команду:
git clone https://github.com/DrrBurger/game-slots
Для запуска сервиса:
- В docker: выполнить команду
make dc
- Локально: выполнить команду
make run
Для запуска тестов необходимо выполнить одну из команд:
make test
запуск всех тестовmake cover
для запуска тестов с покрытиемmake cover-html
для запуска тестов с покрытием и получения отчёта в html формате
Для запуска линтера необходимо выполнить команду make lint
Список всех команд можно получить выполнив команду make help
curl -X POST
-H "Content-Type: application/json" \
-d '[
["A", "B", "C", "D", "E"],
["F", "A", "F", "B", "C"],
["D", "E", "A", "G", "A"]
]' \
"http://localhost:8080/upload?type=reels&name=default"
curl -X POST \
-H "Content-Type: application/json" \
-d '[
{
"line": 1,
"positions": [
{"row": 0, "col": 0},
{"row": 1, "col": 1},
{"row": 2, "col": 2},
{"row": 1, "col": 3},
{"row": 0, "col": 4}
]
},
{
"line": 2,
"positions": [
{"row": 2, "col": 0},
{"row": 1, "col": 1},
{"row": 0, "col": 2},
{"row": 1, "col": 3},
{"row": 2, "col": 4}
]
},
{
"line": 3,
"positions": [
{"row": 1, "col": 0},
{"row": 2, "col": 1},
{"row": 1, "col": 2},
{"row": 0, "col": 3},
{"row": 1, "col": 4}
]
}
]' \
"http://localhost:8080/upload?type=lines&name=default"
curl -X POST \
-H "Content-Type: application/json" \
-d '[
{
"symbol": "A",
"payout": [0, 0, 50, 100, 200]
},
{
"symbol": "B",
"payout": [0, 0, 40, 80, 160]
},
{
"symbol": "C",
"payout": [0, 0, 30, 60, 120]
},
{
"symbol": "D",
"payout": [0, 0, 20, 40, 80]
},
{
"symbol": "E",
"payout": [0, 0, 10, 20, 40]
},
{
"symbol": "F",
"payout": [0, 0, 5, 10, 20]
},
{
"symbol": "G",
"payout": [0, 0, 2, 5, 10]
}
]' \
"http://localhost:8080/upload?type=payouts&name=default"
После загрузки всех конфигураций (катушки, линии, выплаты)
curl "http://localhost:8080/calculate?reels=default&lines=default&payouts=default"
Вы можете просмотреть метрики Prometheus, отправив GET запрос на:
http://localhost:8080/metrics
- В качестве хранилища использовано inmemory хранилище. Для реального проекта заменить на Postgres или иное.
- Конфигурации не вынесены в отдельный файл.
- Не реализован Graceful shutdown