Skip to content

projetofinal-campeoes/nexus-gamestand-server

Repository files navigation

NEXUS GAMES STAND - API * DESATUALIZADO *

Este é o backend da aplicação Nexus Games Stand - um hub de plataformas de jogos para o usuário! O objetivo dessa aplicação é conseguir criar um frontend de qualidade, que mostrará ao usuário todos os jogos que ele possui em todas as plataformas, possibilitando busca por nome e outros filtros.

"Irineu, você não sabe nem eu! - Irineu?"

Endpoints      

Endpoints

A API tem um total de 4 endpoints, sendo em volta principalmente do usuário - podendo cadastrar seu perfil, e jogos custom de fora das plataformas que o site oferece suporte.

O url base da API é https://nexus-gamestand-server.herokuapp.com

Rotas que precisam de autenticação

Criação de usuário

POST /register - FORMATO DA REQUISIÇÃO

{
"email": "[email protected]",
"password": "123456"
"username": "user"
}

Caso dê tudo certo, a resposta será assim:

POST /register - FORMATO DA RESPOSTA - STATUS 201

{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImV4ZW1wbG9AbWFpbC5jb20iLCJpYXQiOjE2NjE4NzUyODMsImV4cCI6MTY2MTg3ODg4Mywic3ViIjoiNiJ9.IZLD9IX961fQ_FSDH34z7bAyKWLQ1VrXbG5sOHTTRXQ",
	"user": {
		"email": "[email protected]",
		"username": "user",
		"id": 1
	}
}

Possíveis erros

Email já cadastrado:

POST /register - FORMATO DA RESPOSTA - STATUS 400

{
  "status": "error",
  "message": "Email already exists"
}

Login

POST /login - FORMATO DA REQUISIÇÂO

{
"email": "[email protected]",
"password": "123456"
}

Caso dê tudo certo, a resposta será assim:

POST /login - FORMATO DA RESPOSTA - STATUS 201

{
	"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImV4ZW1wbG9AbWFpbC5jb20iLCJpYXQiOjE2NjE4NzUyODMsImV4cCI6MTY2MTg3ODg4Mywic3ViIjoiNiJ9.IZLD9IX961fQ_FSDH34z7bAyKWLQ1VrXbG5sOHTTRXQ",
	"user": {
		"email": "[email protected]",
		"username": "user",
		"id": 1,
	}
}

Com essa resposta, vemos que temos duas informações, o user e o token respectivo, dessa forma você pode guardar o token e o usuário logado no localStorage para fazer a gestão do usuário no seu frontend.

Custom Games

POST /custom_games - FORMATO DA REQUISIÇÃO

{
  "name": "Counter Strike Global Offensive",
  "platform": "steam",
  "image": "https://cdn.akamai.steamstatic.com/steam/apps/730/capsule_616x353.jpg?t=1641233427",
  "userId": 1
}

Caso dê tudo certo, a resposta será assim:

POST /custom_games - FORMATO DA RESPOSTA - STATUS 201

{
	"name": "Counter Strike Global Offensive",
	"platform": "steam",
	"image": "https://cdn.akamai.steamstatic.com/steam/apps/730/capsule_616x353.jpg?t=1641233427",
	"userId": 1,
	"id": 1
}

Para alterar um custom game já cadastrado:

PATCH /custom_games/gameId - FORMATO DA REQUISIÇÃO

{
	"name": "Battlefield 4",
	"platform": "Origin",
  "image": "https://cdn.mcr.ea.com/3/images/d9fd4861-517d-4941-a1b5-fc7d32ecd3ce/1587532055-0x0-0-0.jpg",
  "userId": 1
}

Caso dê tudo certo, a resposta será assim: PATCH /custom_games/gameId - FORMATO DA RESPOSTA - STATUS 200

{
	"name": "Battlefield 4",
	"platform": "Origin",
	"userId": 1,
	"id": 1,
	"image": "https://cdn.mcr.ea.com/3/images/d9fd4861-517d-4941-a1b5-fc7d32ecd3ce/1587532055-0x0-0-0.jpg"
}

Para deletar um custom game:

DELETE /custom_games/gameId - FORMATO DA REQUISIÇÃO

Não é necessário um corpo da requisição.

Atualizando os dados do perfil

Assim como o endpoint de custom games, nesse precisamos estar logados, com o token no cabeçalho da requisição. Estes endpoints são para atualizar seus dados como, foto de perfil, username, ou qualquer outra informação em relação ao que foi utilizado na criação do usuário.

Para atualizar a foto de perfil:

PATCH /users/userId - FORMATO DA REQUISIÇÃO

{
  "userImage": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTJcerX6FFwOsAN-fVC24kFXpz0dZNvAjFUazzeEoqEag&s"
}

Caso dê tudo certo, a resposta será assim: PATCH /users/userId - FORMATO DA RESPOSTA

{
	"email": "[email protected]",
	"password": "$2a$10$ptiiSlOM59oroae89eBVBuiAzX19xYzAs6tyz69maAGc0GSbuZDye",
	"username": "user",
	"id": 1,
	"userImage": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTJcerX6FFwOsAN-fVC24kFXpz0dZNvAjFUazzeEoqEag&s"
}

👥 Desenvolvedores responsáveis 👥

Foto do Adam
Adam Neves
Foto do Yan
Yan Carlo
Foto do Matheus
Matheus Sudré
Foto do Sidarta
Sidarta Kauã
Foto do Vagner
Vagner Mengali
Foto do Luan
Luan Marchi

About

Nexus GameStand | Server in NestJS and Prisma

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages