Essa será uma aplicação para gerenciar tarefas (todo's). Será permitida a criação de um usuário com name e username, bem como fazer o CRUD de todos:
- Criar um novo todo;
- Listar todos os todos;
- Alterar o
title
edeadline
de um todo existente; - Marcar um todo como feito;
- Excluir um todo;
Tudo isso para cada usuário em específico (o username será passado pelo header). A seguir veremos com mais detalhes o que e como precisa ser feito
Com o template já clonado e o arquivo index.js
aberto, você deve completar onde não possui código com o código para atingir os objetivos de cada teste.
A rota deve receber name
, e username
dentro do corpo da requisição. Ao cadastrar um novo usuário, ele deve ser armazenado dentro de um objeto no seguinte formato:
{
id: 'uuid', // precisa ser um uuid
name: 'Danilo Vieira',
username: 'danilo',
todos: []
}
Certifique-se que o ID seja um UUID, e de sempre iniciar a lista todos
como um array vazio.
O objeto do usuário deve ser retornado na resposta da requisição.
A rota deve receber, pelo header da requisição, uma propriedade username
contendo o username do usuário e retornar uma lista com todas as tarefas desse usuário.
A rota deve receber title
e deadline
dentro do corpo da requisição e, uma propriedade username
contendo o username do usuário dentro do header da requisição. Ao criar um novo todo, ele deve ser armazenada dentro da lista todos
do usuário que está criando essa tarefa. Cada tarefa deverá estar no seguinte formato: . Certifique-se que o ID seja um UUID.
{
id: 'uuid', // precisa ser um uuid
title: 'Nome da tarefa',
done: false,
deadline: '2021-02-27T00:00:00.000Z',
created_at: '2021-02-22T00:00:00.000Z'
}
Observação: Lembre-se de iniciar a propriedade done
sempre como false
ao criar um todo.
Dica: Ao fazer a requisição com o Insomnia ou Postman, preencha a data de deadline
com o formato ANO-MÊS-DIA
e ao salvar a tarefa pela rota, faça da seguinte forma:
{
id: 'uuid', // precisa ser um uuid
title: 'Nome da tarefa',
done: false,
deadline: new Date(deadline),
created_at: new Date()
}
Usar new Date(deadline)
irá realizar a transformação da string "ANO-MÊS-DIA" (por exemplo "2021-02-25") para uma data válida do JavaScript.
O objeto do todo
deve ser retornado na resposta da requisição.
A rota deve receber, pelo header da requisição, uma propriedade username
contendo o username do usuário e receber as propriedades title
e deadline
dentro do corpo. É preciso alterar apenas o title
e o deadline
da tarefa que possua o id
igual ao id
presente nos parâmetros da rota.
A rota deve receber, pelo header da requisição, uma propriedade username
contendo o username do usuário e alterar a propriedade done
para true
no todo que possuir um id
igual ao id
presente nos parâmetros da rota.
A rota deve receber, pelo header da requisição, uma propriedade username
contendo o username do usuário e excluir o todo que possuir um id
igual ao id
presente nos parâmetros da rota.