Back a friend service: used backer package/library
Build and run
make run
Or pull from docker registry and run
docker-compose up -d
- A several verifications of input attributes skipped due to complicating the task
- The project is used simplest
JSON
response without additional parameters like request attributes, totals and durations - The players and the tournaments could not be deleted
- The points/money are not in separate transactional entity. This feature is skipped due to complicating the task.
- The database handlers are not asynchronous. It should be in high load systems.
- The package
context
is skipped due to complicating the task.
Funds (add to balance) player with 300 points. If no player exist should create new player with given amount of points
PUT /api/v1alpha/players/:id/fund
{
"points": 300
}
Takes 300 points from player account
PUT /api/v1alpha/players/:id/take
{
"points": 300
}
Player balance
GET /api/v1alpha/players/:id
{
"player": "p1",
"balance": 456.00
}
Announce tournament specifying the entry deposit
POST /api/v1alpha/tournaments/:id/announce
{
"deposit": 1000
}
Join player into a tournament and is he backed by a set of backers
PUT /api/v1alpha/tournaments/:id/join
{
"player": "p1",
"backers": ["p2", "p3"]
}
Result tournament winners and prizes
POST /api/v1alpha/tournaments/:id
{
"winners": [
{
"player": "p1",
"prize": 2000.00
}
]
}
Get results of tournament winners and prizes
GET /api/v1alpha/tournaments/:id
{
"tournament": 1,
"bidders": [
{
"player": "p1",
"winner": true,
"prize": 2000.00,
"backers": ["b1", "b2"]
},
{
"player": "p2",
"winner": false,
"prize": 0.00,
"backers": []
}
]
}
Reset the engine (database)
PUT /api/v1alpha/engine/reset
Service info and current statuses
GET /info
{
"version": "v0.1.0",
"uptime": "1d 3h"
}
Service health
GET /healthz
Service readiness
GET /readyz
Using a special script to increase the release version
./bumper.sh
Current version v0.1.0.
Please enter new version [v0.1.1]:
See the contribution guidelines for information on how to participate in the project by submitting pull requests or issues.
All changes in the project located in changelog