O projeto Trybets consiste no backend de um site de apostas. Nesse projeto a aplicação já veio pronta no formato monolítica, minha participação no projeto foi dividir essa aplicação em microsserviços com determinadas especificidades.
5502.
/teamRota utilizada para obter a lista de times.
| Request | Token? | Status | Response |
|---|---|---|---|
| (em branco) | Não | 200 |
[
{
"teamId": 1,
"teamName": "Sharks"
}, /*...*/
]
|
/match/{finished}Rota utilizada para obter a lista de partidas. Parâmetro {finished} varia entre true e false para listar partidas finalizadas ou não.
| Request | Token? | Status | Response |
|---|---|---|---|
| (em branco) | Não | 200 |
[
{
"matchId": 1,
"matchDate": "2023-07-23T15:00:00",
"matchTeamAId": 1,
"matchTeamBId": 8,
"teamAName": "Sharks",
"teamBName": "Bulls",
"matchTeamAOdds": "3,33",
"matchTeamBOdds": "1,43",
"matchFinished": true,
"matchWinnerId": 1
}, /*...*/
]
|
/user/signupRota utilizada para cadastrar uma nova pessoa usuária. Ao cadastrar com sucesso, retorna um token. Não permitido adicionar duas pessoas usuárias com o mesmo e-mail.
| Request | Token? | Status | Response | Observações |
|---|---|---|---|---|
{
"Name": "Isabel Santos",
"Email": "[email protected]",
"Password": "123456"
} |
Não | 201 |
{
"token": "eyJhbG..."
} |
|
{
"Name": "Isabel Santos",
"Email": "[email protected]",
"Password": "123456"
} |
Não | 400 |
{
"message": "E-mail already used"
} |
Caso o e-mail da pessoa usuária já tenha sido cadastrado no banco de dados. |
/user/loginRota utilizada para realizar o login de uma pessoa usuária.
| Request | Token? | Status | Response | Observações |
|---|---|---|---|---|
{
"Email": "[email protected]",
"Password": "123456"
}
|
Não | 200 |
{
"token": "eyJhbG..."
}
|
|
{
"Email": "[email protected]",
"Password": "1234567"
}
|
Não | 400 |
{
"message": "Authentication failed"
}
|
Caso a pessoa usuária não tenha os dados autenticados ou não informe algum dos parâmetros corretamente. |
/betRota utilizada para realizar uma nova aposta
| Request | Token? | Status | Response | Observações |
|---|---|---|---|---|
{
"MatchId": 5,
"TeamId": 2,
"BetValue": 550.65
}
|
Sim | 201 |
{
"betId": 1,
"matchId": 5,
"teamId": 2,
"betValue": 550.65,
"matchDate": "2024-03-15T14:00:00",
"teamName": "Eagles",
"email": "[email protected]"
}
|
|
{
"MatchId": 5,
"TeamId": 2,
"BetValue": 550.65
}
|
Não | 401 | Caso o token não tenha sido informado ou esteja errado | |
{
"MatchId": 5,
"TeamId": 6,
"BetValue": 550.65
}
|
Sim | 400 |
{
"message": "Team is not in this match"
}
|
Caso o time não esteja na partida correta |
{
"MatchId": 5,
"TeamId": 60,
"BetValue": 550.65
}
|
Sim | 400 |
{
"message": "Team not founded"
}
|
Caso o time não exista |
{
"MatchId": 50,
"TeamId": 6,
"BetValue": 550.65
}
|
Sim | 400 |
{
"message": "Match not founded"
}
|
Caso a partida não exista |
{
"MatchId": 1,
"TeamId": 6,
"BetValue": 550.65
}
|
Sim | 400 |
{
"message": "Match finished"
}
|
Caso a partida já tenha sido finalizada |
/bet/{BetId}Rota utilizada para visualizar uma aposta criada. Uma aposta só pode ser visualizada pela pessoa que a criou.
| Request | Token? | Status | Response | Observações |
|---|---|---|---|---|
| Sim | 200 |
{
"betId": 1,
"matchId": 5,
"teamId": 2,
"betValue": 550.65,
"matchDate": "2024-03-15T14:00:00",
"teamName": "Eagles",
"email": "[email protected]"
}
|
||
| Sim | 400 | (Indiferente) | Caso a aposta não pertencer à pessoa usuária do token. | |
| Sim | 400 |
{
"message": "Bet not founded"
}
|
Caso a aposta não exista. | |
| Não | 401 | Caso não seja informado um token. |
Este microsserviço será responsável pela atualização das odds de cada partida. Este microsserviço é novo e não é acessível ao site. Ele será utilizado pelo microsserviço TryBets.Bets e será chamado por este toda vez que uma nova aposta for cadastrada.
Este microsserviço funciona na porta 5504.
A rota necessária nesse microsserviço é:
PATCH/odd/{matchId}/{TeamId}/{BetValue}# Clone o projeto
$ git clone [email protected]:wesleymktd/project-trybets.git
# Acesse
$ cd ./project-trybets/src
# Instale as dependencias
$ dotnet restore
# Acesse o diretório TrybeHotel
$ cd TrybeHotel
# Inicie o projeto
$ dotnet run