Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devkayos/desafio-rocketseat-node
Esse e um desafio da rocketseat da formacao de node.js, no qual sera necessario fazer uma API usando node puro. Alem disso, essa e uma API que vai ser possivel fazer o controle de tasks
https://github.com/devkayos/desafio-rocketseat-node
Last synced: about 4 hours ago
JSON representation
Esse e um desafio da rocketseat da formacao de node.js, no qual sera necessario fazer uma API usando node puro. Alem disso, essa e uma API que vai ser possivel fazer o controle de tasks
- Host: GitHub
- URL: https://github.com/devkayos/desafio-rocketseat-node
- Owner: DevKayoS
- Created: 2024-07-19T03:33:11.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-07-20T02:23:50.000Z (4 months ago)
- Last Synced: 2024-07-20T20:49:00.921Z (4 months ago)
- Language: JavaScript
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Sobre o desafio
Nesse desafio você desenvolverá uma API para realizar o CRUD de suas *tasks* (tarefas).
A API deve conter as seguintes funcionalidades:
- 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
- E o verdadeiro desafio: Importação de tasks em massa por um arquivo CSV### Rotas e regras de negócio
Antes das rotas, vamos entender qual a estrutura (propriedades) que uma task deve ter:
- `id` - Identificador único de cada task
- `title` - Título da task
- `description` - Descrição detalhada da task
- `completed_at` - Data de quando a task foi concluída. O valor inicial deve ser `null`
- `created_at` - Data de quando a task foi criada.
- `updated_at` - Deve ser sempre alterado para a data de quando a task foi atualizada.Rotas:
- `POST - /tasks` (x)
Deve ser possível criar uma task no banco de dados, enviando os campos `title` e `description` por meio do `body` da requisição.
Ao criar uma task, os campos: `id`, `created_at`, `updated_at` e `completed_at` devem ser preenchidos automaticamente, conforme a orientação das propriedades acima.
- `GET - /tasks` (x)
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` e `description`
- `PUT - /tasks/:id` (x)
Deve ser possível atualizar uma task pelo `id`.
No `body` da requisição, deve receber somente o `title` e/ou `description` para serem atualizados.
Se for enviado somente o `title`, significa que o `description` não pode ser atualizado e vice-versa.
Antes de realizar a atualização, deve ser feito uma validação se o `id` pertence a uma task salva no banco de dados.
- `DELETE - /tasks/:id` (x)
Deve ser possível remover uma task pelo `id`.
Antes de realizar a remoção, deve ser feito uma validação se o `id` pertence a uma task salva no banco de dados.
- `PATCH - /tasks/:id/complete` (x)
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.