Skip to content

Uma API feita em cima da API do PokeAPI, é a parte do back de um projeto full stack, nela o usuário poderá se cadastrar, consultar um pokemon, montar seu time e outros

Notifications You must be signed in to change notification settings

FernandoLuppo/PokeDex-API

Repository files navigation

🚀 PokeDex - API 🚀

Olá!! Este é um projeto full-stack que criei sendo esta a API do próprio, aqui o usuário poderá fazer as chamadas para obter algumas informações, desde se cadastrar até montar o seu time pokemon.
Esse projeto foi feito utilizando a API PokeAPI: https://pokeapi.co/

💻 As tecnologias usadas no projeto foram:

- TypeScript
- Node
- Express
- MongoDB
- Mongoose
- Jest
- Supertest
- Axios
- Eslint
- Dotenv
- Bcrypt
- Cookie Parser
- Cors
- Dayjs
- Jsonwebtoken
- Nodemailer
- Yup
- Ts-node-dev



Links

🖥️ Link do repositório do front do projeto: https://github.com/FernandoLuppo/PokeDex

📚 Link da documentação: https://documenter.getpostman.com/view/25854787/2s9YC1Xa23



Rotas

Rotas do Usuário


- Registro (post) - http://localhost:8080/user/register
- Login (post) - http://localhost:8080/user/login
- Logout (get) - http://localhost:8080/user/logout
- New User Infos (put) - http://localhost:8080/user/new-infos
- User Infos (get) - http://localhost:8080/user/infos

Rota do Token


- New Token (get) - http://localhost:8080/token/new-token

Rotas do Pokemon - Abertas


- One Pokemon - (post) - http://localhost:8080/pokemon/get-one
- Pokemon Evolution - (post) - http://localhost:8080/pokemon/get-evolution
- All Pokemon - (post) - http://localhost:8080/pokemon/get-all

Rotas do Pokemon - Fechadas


- Add Pokemon - (put) - http://localhost:8080/pokemon/add
- Get Team - (get) - http://localhost:8080/pokemon/team
- Remove Pokemon - (delete) - http://localhost:8080/pokemon/remove/(id)

Rota Para Mudar de Senha


- Check Email - (post) - http://localhost:8080/recover-password/check-email
- New Password - (put) - http://localhost:8080/recover-password/new-password



Rotas do Usuário

Register: Essa rota serve para o usuário se cadastrar no banco de dados, os valores usados para acessar essa rota é:

- name
- email
- password

Essa rota possui validação feita com YUP, todos os valores são obrigatórios, name precisa ter no mínimo 3 caracteres, valor email precisa ser preenchido com um email válido, password precisa ter no mínimo 5 caracteres, para a segurança do usuário a senha é criptografada e é salva assim no banco



Login: Essa rota serve para o usuário logar no aplicativo, com isso ele terá acesso a novas rotas, os valores dessa rota são:

- email
- password

Essa rota possui as mesmas validações que a rota de registro, e ao logar o usuário receberá um Access Token e um Refresh Token para fazer as validações de rotas.



Logout: Essa rota serve para o usuário deslogar da aplicação, com isso os tokens também são limpos



New User Infos: Essa rota serve para trocar algumas informações do usuário como nome e email, seu valores são:

- name
- email

Essa rota possui as mesmas validações referente aos mesmos campos das rotas register e login.



Get Infos: Essa rota serve para pegar algumas informações do usuário como nome e email



Rota do Token

New Token: Essa rota serve para quando o access token do usuário expirar, ele usa o refresh token para criar novos tokens, o refresh token é passado por uma validação caso ele seja autêntico são gerados novos tokens, um novo access token e um novo refresh token.



Rotas do Pokemon - Abertas

One Pokemon: Essa rota serve para pegar apenas um pokemon, a resposta desta rota vem com mais informações do uq a rota All Pokemon, o valor dessa rota é:

- id

Id pode ser tanto o nome quanto o próprio id do pokemon.



Pokemon Evolution: Essa rota serve para pegar a linha evolutiva de um pokemon escolhido pelo usuário, seus valores são:

- id

Id pode ser tanto o nome quanto o próprio id do pokemon.



All Pokemon: Essa rota serve para pegar mais de um pokemon, os valores são:

- {pokemonList: {"start": 0, "end": 20}}

O valor start é o inicio da lista de pokemon que irá retornar, o end é a quantidade de pokemon que irão retornar.



Rotas do Pokemon - Fechadas

Add Pokemon: Essa rota é protegida e o usuário tem acesso apenas se estiver logado, ela serve para adicionar um pokemon ao time do usuario, caso o usuário já tenha atingido o limite de pokemon em seu time que no caso são 6 ele irá retornar um erro, os valores são:

- id



Get Team: Essa rota serve para pegar o time do usuário e o próprio também precisa estar logado para ter acesso.



Remove Pokemon: Esta rota serve para remover um pokemon do time do usuário, ele precisa estar logado para ter acesso a essa rota, o valor é o id ou o nome do pokemon, porém diferente das outras rotas o valor tem que ser passado por parâmetro.



Rota Para Mudar de Senha

Check Email: Essa rota serve para enviar um email com o código para o usuário criar uma nova senha, o valor dessa rota é:

- email

Essa rota é validada com o YUP e em relação ao envio de emails é enviado o código apenas para os que já foram cadastrados.



New Password: Essa rota serve para criar uma nova senha para o usuário, o valor da rota é:

- password
- email

Essa rota também é validada com o YUP e em relação a senha ela tem a mesma validação da página de login e registro, precisa ter pelo menos 5 caracteres



Para mais informações da minha API consultar a documentação: https://documenter.getpostman.com/view/25854787/2s9YC1Xa23

About

Uma API feita em cima da API do PokeAPI, é a parte do back de um projeto full stack, nela o usuário poderá se cadastrar, consultar um pokemon, montar seu time e outros

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published