- Descrição
- Pré-requisitos
- Documentação
- Verifica o estado da Api
- Registrar usuário
- Login
- Lista um usuário
- Editar um usuário
- Deleta um usuário
- Cria uma tarefa
- Lista todas as tarefas criadas
- Lista uma tarefa especifica
- Listar todas as tarefas de acordo com a categoria
- Atualizar uma tarefa
- Atualizar a categoria de uma tarefa
- Deletar uma tarefa
Objetivo: O objetivo dessa aplicação, é manipular um banco de dados. Os conhecimentos aplicados foram:
- Arquitetura REST;
- Autenticações e Permissões com JWT;
- Modelagem de Dados e Migrations;
- Banco de Dados SQL (PostgreSQL);
- Uso de containers (Docker).
docker
npm version 6.14.13
node version 14.17.0
Um banco de dados postgreSQL
- Clone o repositório
git clone git@github.com:esdrasoliveira5/to-do-list-backend.git
- Vá para a pasta da aplicação
cd to-do-list-backend
- Configure o arquivo .env (use o arquivo .env.example como guia)
- Comando para iniciar
docker image build -t todobackend .
- Comando para inserir as tabelas no banco de dados
npx sequelize db:migrate
- Comando para inserir as categorias na tabela
npx sequelize db:seed:all
Esse endpoint verifica se a Api esta online e retorna um objeto com a mensagem Api to-do list online!!
- Exemplo
response body
{ "message": "Api to-do list online!!" }
Esse endpoint registra um usuário e retorna um objeto com a menssagem.
-
Exemplo
request body
{ "name": "name", "lastName": "lastname", "email": "exemple@email.com", "password": "12345678" }
-
Exemplo
response body
{ "message": "User created" }
Esse endpoint valida o login do usuário e retorna um objeto com o id do usuario e o token de acesso dele.
-
Exemplo
request body
{ "email": "exemple@email.com", "password": "12345678" }
-
Exemplo
response body
{ "userId": 26, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoiZXhlbXBsZUBlbWFpbC5jb20iLCJpYXQiOjE2NDUxNDI0NzksImV4cCI6MTY0NTc0NzI3OX0.sRZtnLnkGYHjhFBXJISTcX41QbvpGxll-wUnU-kGxyE" }
Esse endpoint busca um usuario cadastrado pelo id.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
response body
{ "id": 26, "name": "name", "lastName": "lastname", "email": "exemple@email.com", "password": "12345678", "created": "2022-02-17T23:53:25.727Z", "tasks": [] }
Esse endpoint atualiza um usuario com o ID fornecido na rota e retorna um objeto com os dados atualizados.
Obs: Apenas o usuário que criou o usuario pode atualizar.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
request body
{ "name": "name", "lastName": "lastname", "password": "12345678" }
-
Exemplo
response body
{ "name": "name", "lastName": "lastname", "password": "12345678" }
Esse endpoint deleta um usuario com o ID fornecido na rota e retorna um objeto com a mensagem User deleted
.
Obs: Apenas o usuário que criou o usuario pode deletar.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
response body
{ "message": "User deleted" }
Esse endpoint cria uma tarefa e retorna um objeto com a tarefa criada.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
request body
{ "title": "title exemple", "description": "description exemple", "priority": "Alta", "dateLimit": "2022-10-02" }
-
Exemplo
response body
{ "id": 71, "title": "title exemple", "description": "description exemple", "priority": "Alta", "dateLimit": "2022-10-02", "userId": 26, "created": "2022-02-18T00:44:02.803Z", "categoryId": 1 }
Esse endpoint retorna todas as tarefas relacionadas a um usuario.
Obs: Apenas o usuario que criou as tarefas pode pegar as tarefas.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
response body
[ { "id": 71, "title": "title exemple", "description": "description exemple", "priority": "Alta", "dateLimit": "2022-10-02", "userId": 26, "created": "2022-02-18T00:44:02.803Z", "categoryId": 1, "categories": { "id": 1, "name": "Não iniciado" } } ]
Esse endpoint retorna uma terefa relacionada ao ID passado na rota.
Obs: Apenas o usuário que criou a tarefa pode pegá-la .
- Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
- Exemplo
response body
{ "id": 71, "title": "title exemple", "description": "description exemple", "priority": "Alta", "dateLimit": "2022-10-02", "userId": 26, "created": "2022-02-18T00:44:02.803Z", "categoryId": 1, "categories": { "id": 1, "name": "Não iniciado" } }
Esse endpoint retorna todas as tarefas criadas pelo usuário relacionadas ao ID da categoria passado na rota.
Obs: Apenas o usuário que criou as tarefas pode visualizar.
- Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
- Exemplo
response body
[ { "id": 71, "title": "title exemple", "description": "description exemple", "priority": "Alta", "dateLimit": "2022-10-02", "userId": 26, "created": "2022-02-18T00:44:02.803Z", "categoryId": 1, "categories": { "id": 1, "name": "Não iniciado" } } ]
Esse endpoint é responsável por atualizar uma tarefa com o ID fornecido na rota e retorna um objeto com as informacoes atualizadas.
Obs: Apenas o usuário que criou as tarefas pode atualizar.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
request body
{ "title": "title exemple", "description": "description exemple", "priority": "Baixa", "dateLimit": "2022-10-02" }
-
Exemplo
response body
{ "title": "title exemple", "description": "description exemple", "priority": "baixa", "dateLimit": "2022-10-02" }
Esse endpoint é responsável por atualizar a categoria de uma tarefa com o ID fornecido na rota e retorna um objeto com a mensagem Task updated
.
Obs: Apenas o usuário que criou as tarefas pode atualizar.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
request body
{ "categoryId": 1, }
-
Exemplo
response body
{ "message": "Task updated" }
Esse endpoint é responsável por deletar uma tarefa com o ID fornecido na rota e retorna um objeto com a mensagem Task deleted
.
Obs: Apenas o usuário que criou a tarefa pode deletar.
-
Exemplo
request headers
{ "Authorization": "(Bearer Token)" }
-
Exemplo
response body
{ "message": "Task deleted" }