api que faz a conexão entre os microserviços e o cliente, com uma aplicação de rankings inteligentes para jogadores de Tennis
- Micro admin Back End (responsável pelos jogadores e suas categorias)
- Micro challenges (responsável pelos desafios e partidas)
- Micro rankings (responsável pela estruturação e criação de rankings de acordo com a categoria)
- Micro notifications (responsável por notificar o adversário do desafiante)
node: v18.12.1
nest: 9.1.4
RabbitMQ 3.11.6
- Crie uma arquivo .env seguindo o arquivo .env.example
- AWS_RABBITMQ= string de conexão com RabbitMQ
- JWT_PRIVATE_KEY= Chave privada JWT
- JWT_EXPERIATION_TIME_TOKEN= Tempo de expiração do token
- PORT_APP= Porta da aplicação
yarn start:dev or npm run start:dev
yarn build or npm run build
yarn test or npm run test
OBS: para funcionar é preciso que todos os microserviços estejam rodando(se utilizando do mesmo comando de iniciação citado acima)
- Post:
/auth/login
Autenticação
- Body:
{ "email": "email de um jogador registrado(criação de jogadores não precisa de autenticação)", "password": "Informe qualquer valor pois a feature de usuário ainda está sendo implementada" }
- Irá receber um token, passe-o nas rotas através do Bearer Token
-
Post:
/categories
Criação
- Body:
{ "category": "Nome da categoria", "description": "", "events": [{ "name": "VITORIA", "operetion": "+", "value": Pontos ganhos: Number }, { "name": "DERROTA", "operetion": "-", "value": Pontos perdidos: Number }] }
-
Get:
/categories?idCategory={ID da categoria}
Busca
- Se passado retorna a categoria desejada
- Se não retorna todas
-
Put:
/categories/{ID da categoria}
Atualização
- Body:
{ "category": "Nome da categoria", "description": "", "events": [{ "name": "VITORIA", "operetion": "+", "value": Pontos ganhos: Number }, { "name": "DERROTA", "operetion": "-", "value": Pontos perdidos: Number }] }
-
Delete:
/categories/{ID da categori}
Deleção
-
Post:
/players
Criação
- Body:
{ "phoneNumber": "", "email": "", "name": "", "category": "ID da categoria" }
-
Get:
/players?idplayer={ID do jogador}
Busca
- Se passado retorna o jogador desejado
- Se não retorna todos
-
Put:
/players/{ID do jogador}
Atualização
- Body
{ "phoneNumber": "", "email": "", "category": "ID da categoria" }
-
Delete:
/players/{ID do jogador}
Deleção
-
Post:
/players/{ID do jogador}/upload
Associar foto a usuários -Body:
File
-
Post:
/challenges
Criação
- Body:
{ "DateTimeChallenge": "2023-01-12T09:00:00", "requester": "ID do jogador que solicitou o desafio", "category": "ID da categoria", "players": [ { "_id": "ID do jogador" }, { "_id": "ID do jogador" }] }
-
Get:
/challenges/?idplayer={ID do jogador}
Busca
- Se passado retorna todos os desafios do usuário
- Se não retorna todos os desafios
-
Put:
/challenges/{ID do desafio}
Atualização
- Body:
{ "status": "Status da resposta, ACEITO ou NEGADO" }
-
Delete:
/challenges/{ID do desafio}
Deleção
-
Post:
/challenges/{ID do desafio}/match
Associar um partida um desafio
- Body:
{ "def": "ID do vencedor", "result": [{ "set": "6-4" },{ "set": "6-3" }] }
- Get:
/rankings/?idCategory={ID da categoria}&dataRef={Data de referência para consulta no ranking
Consulta
- idCategory é obrigatorio
- dataRef é opcional(se não informado a data atual será preenchida)