Template para iniciar o desafio
Sobre o desafio | Rotas da aplicação | Execute o projeto localmente | Licença
Nesse desafio, foi criado 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, além de permitir que os repositórios possam receber "likes".
-
POST /repositories: A rota recebetitle,urletechsdentro do corpo da requisição, sendo a URL o link para o github desse repositório. Ao cadastrar um novo projeto, ele deve é armazenado dentro de um objeto no seguinte formato:{ id: "uuid", title: 'Desafio Node.js', url: 'http://github.com/...', techs: ["Node.js", "..."], likes: 0 }; O ID é um UUID, e os likes sempre são iniciados como 0. -
GET /repositories: Rota que lista todos os repositórios; -
PUT /repositories/:id: A rota alterar apenas otitle, aurle astechsdo repositório que possue oidigual aoidpresente nos parâmetros da rota; -
DELETE /repositories/:id: A rota deleta o repositório com oidpresente nos parâmetros da rota; -
POST /repositories/:id/like: A rota aumenta o número de likes do repositório específico escolhido através doidpresente nos parâmetros da rota, a cada chamada dessa rota, o número de likes é aumentado em 1;
-
should be able to create a new repository: Para que esse teste passe, a 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, a 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, a aplicação deve permitir que sejam alterados apenas os camposurl,titleetechs. -
should not be able to update a repository that does not exist: Para que esse teste passe, deve ser validado na rota de update se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status400. -
should not be able to update repository likes manually: Para que esse teste passe, não deve ser permitido que a 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, deve ser permitido que a rota de delete exclua um projeto, e ao fazer a exclusão, ele retorne uma resposta vazia, com status204. -
should not be able to delete a repository that does not exist: Para que esse teste passe, deve ser verificado na rota de delete se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status400. -
should be able to give a like to the repository: Para que esse teste passe, a 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, deve ser verificado na rota de like se o id do repositório enviado pela url existe ou não. Caso não exista, retornar um erro com status400.
# Clone este repositório
$ git clone https://github.com/JonasCastro/conceitos-nodejs.git
# Acesse a pasta do projeto no terminal/cmd
$ cd conceitos-nodejs
# Instale as dependências
$ yarn
# Execute a aplicação em modo de desenvolvimento
$ yarn dev
# O servidor inciará na porta:3333
# Para executar os testes da aplicação
$ yarn test
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Feito com 💙 by Jonas Castro 👋 Stay in touch!
- Desafio Feito com 💜 by Rocketseat 👋 Entre na nossa comunidade!
