Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leonardotoniolo/conceitos-do-nodejs
Desafio sobre conceitos do Node.JS aplicado no Bootcamp GoStack
https://github.com/leonardotoniolo/conceitos-do-nodejs
nodejs typescript
Last synced: 10 days ago
JSON representation
Desafio sobre conceitos do Node.JS aplicado no Bootcamp GoStack
- Host: GitHub
- URL: https://github.com/leonardotoniolo/conceitos-do-nodejs
- Owner: LeonardoToniolo
- License: mit
- Created: 2020-10-26T23:20:09.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T04:24:17.000Z (almost 2 years ago)
- Last Synced: 2023-03-04T10:29:54.128Z (over 1 year ago)
- Topics: nodejs, typescript
- Language: JavaScript
- Homepage:
- Size: 1.33 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Desafio 02: Conceitos do Node.js
Sobre o desafio |
Entrega |
Licença## :rocket: Sobre
Essa é uma aplicação para armazenar repositórios do seu portfólio, que irá permitir a criação, listagem, atualização e remoção dos repositórios, e além disso permitir que os repositórios possam receber "likes".
### Rotas da aplicação
- **`POST /repositories`**: A rota deve receber `title`, `url` e `techs` dentro do corpo da requisição, sendo a URL o link para o github desse repositório. Ao cadastrar um novo projeto,
ele deve ser armazenado dentro de um objeto no seguinte formato: `{ id: "uuid", title: 'Desafio Node.js', url: 'http://github.com/...', techs: ["Node.js", "..."], likes: 0 }`;- **`GET /repositories`**: Rota vai listar todos os repositórios;
- **`PUT /repositories/:id`**: A rota vai alterar apenas o `title`, a `url` e as `techs` do repositório que possua o `id` igual ao `id` presente nos parâmetros da rota;
- **`DELETE /repositories/:id`**: A rota vai deletar o repositório com o `id` presente nos parâmetros da rota;
- **`POST /repositories/:id/like`**: A rota vai aumentar o número de likes do repositório específico escolhido através do `id` presente nos parâmetros da rota.
### Específicação dos testes
- **`should be able to create a new repository`**: Para que esse teste passe, sua aplicação deve permitir que um repositório seja criado, e retorne um json com o projeto criado.
- **`should be able to list the repositories`**: Para que esse teste passe, sua aplicação deve permitir que seja retornado um array com todos os repositórios que foram criados até o momento.
- **`should be able to update repository`**: Para que esse teste passe, sua aplicação deve permitir que sejam alterados apenas os campos `url`, `title` e `techs`.
- **`should not be able to update a repository that does not exist`**: Para que esse teste passe, você deve validar na sua rota de update se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status `400`.
- **`should not be able to update repository likes manually`**: Para que esse teste passe, você não deve permitir que sua rota de update altere diretamente os likes desse repositório, mantendo o mesmo número de likes que o repositório já possuia antes da atualização. Isso porque o único lugar que deve atualizar essa informação é a rota responsável por aumentar o número de likes.
- **`should be able to delete the repository`**: Para que esse teste passe, você deve permitir que a sua rota de delete exclua um projeto, e ao fazer a exclusão, ele retorne uma resposta vazia, com status `204`.
- **`should not be able to delete a repository that does not exist`**: Para que esse teste passe, você deve validar na sua rota de delete se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status `400`.
- **`should be able to give a like to the repository`**: Para que esse teste passe, sua aplicação deve permitir que um repositório com o id informado possa receber likes. O valor de likes deve ser incrementado em 1 a cada requisição, e como resultado, retornar um json contendo o repositório com o número de likes atualizado.
- **`should not be able to like a repository that does not exist`**: Para que esse teste passe, você deve validar na sua rota de like se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status `400`.
## :memo: Licença
Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](../LICENSE) para mais detalhes.