Nesse desafio durante o curso da Rocketseat, fui capaz de criar uma aplicaĆ§Ć£o para treinar o que aprendi sobre os conceitos do Node.js!
Essa serĆ” uma aplicaĆ§Ć£o para gerenciar tarefas (em inglĆŖs todos). 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 š
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.