- Criação de uma task
- Listagem de todas as tasks
- Atualização de uma task pelo
id
- Remover uma task pelo
id
- Marcar pelo
id
uma task como completa - Importação de tasks em massa por um arquivo CSV
POST - /tasks
Deve ser possível criar uma task no banco de dados, enviando os campos
title
edescription
por meio dobody
da requisição. Ao criar uma task, os campos:id
,created_at
,updated_at
ecompleted_at
devem ser preenchidos automaticamente, conforme a orientação das propriedades acima.GET - /tasks
Deve ser possível listar todas as tasks salvas no banco de dados. Também deve ser possível realizar uma busca, filtrando as tasks pelo
title
edescription
PUT - /tasks/:id
Deve ser possível atualizar uma task pelo
id
. Nobody
da requisição, deve receber somente otitle
e/oudescription
para serem atualizados. Se for enviado somente otitle
, significa que odescription
não pode ser atualizado e vice-versa. Antes de realizar a atualização, deve ser feito uma validação se oid
pertence a uma task salva no banco de dados.DELETE - /tasks/:id
Deve ser possível remover uma task pelo
id
. Antes de realizar a remoção, deve ser feito uma validação se oid
pertence a uma task salva no banco de dados.PATCH - /tasks/:id/complete
Deve ser possível marcar a task como completa ou não. Isso significa que se a task estiver concluída, deve voltar ao seu estado “normal”. Antes da alteração, deve ser feito uma validação se o
id
pertence a uma task salva no banco de dados.
Esse projeto foi desenvolvido com as seguintes tecnologias:
- JavaScript
- NodeJS
- csv-parser
- servidor: npm run dev
- import csv: node streams/csv-import.js