Atividade 4 desenvolvida em grupo com: Gabriel Donnantuoni, Gustavo Thirion e Rafael Greco.
O restante das atividades realizei em dupla com a Rosiele.
Rota: /login
Objetivo: Receber uma requisição que envie email/senha e receba um token como resposta. O formato desse token deve ser uma string aleatória com 12 caracteres. O email recebido deve ter o formato email@mail.com e a senha deve conter no mínimo 4 caracteres e no máximo 8, todos números. Caso algum desses campos seja enviado em formato incorreto, deve-se retornar uma mensagem de erro email or password is incorrect. e seu devido status code.
Rota: /btc/price
Objetivo: Receber uma requisição com um token e verificar se ele está correto. O formato do token deve ser uma string de 12 caracteres contendo letras e números. Caso o formato do token esteja incorreto, devolva o erro como resposta invalid token. Caso o formato do token esteja correto, faça um fetch em uma API externa de sua preferencia e retorne os dados da API como resposta. (sugestão de API: https://api.coindesk.com/v1/bpi/currentprice/BTC.json ) O token será passado pelo header da seguinte forma: Authorization: asd65asd5sd8
Rotas: /posts/:id e /posts
Objetivo: Deve receber uma requisição com o param id e verificar a existência do post com aquele id. Caso exista, retorne os dados daquele post. Caso não exista, retorne um status de erro com a mensagem id not found. A rota /posts deve trazer todos os posts cadastrados.
const posts = [
{
id: 2,
author: 'Antonio Neto',
comment: "Hoje o dia está maneiro!"
},
{
id: 3,
author: "Rodrigo Garga",
comment: "To aqui também"
}
]
Rota: /user/:name
Objetivo: Deve validar se o usuário existe e, caso exista, deve retornar os comentários feitos por ele. Caso não exista, deve retornar um status de erro com uma mensagem user not found.
const users = [
{
id: 2,
user: 'antonio',
comments: ["Hoje o dia está maneiro!", "Agora não está muito"]
},
{
id: 3,
user: "rodrigo",
comments: ["To aqui também", "Agora não tô"]
}
]
Rota: /:operacao/:numero1/:numero2
Objetivo: Deve validar a operação e retornar o resultado da mesma. As operações podem ser soma, subtração, divisão ou multiplicação. Regra: Um middleware deve ser usado para cada operação. A operação deve ser recebida como parâmetro na rota.
Rota: /recipe/:id
Objetivo: Deletar a receita no banco de dados e retornar a receita deletada. Caso o id fornecido não exista, retorne um erro recipe not found.
Use o array abaixo para simular o banco de dados:
const recipes = [
{
id:12345,
name:'farofa de bacon',
ingredientes:['farofa', 'bacon']
},
{
id:12346,
name:'ovo mexido',
ingredientes:['ovo']
}
]
Rota: /recipe/:id
Objetivo: Deve receber uma requisição com name e ingredientes de uma receita, e substituir no banco de dados a receita que possua o id passado na requisição. Caso o id fornecido não exista, retorne um erro recipe not found.
Use o array abaixo para simular o banco de dados:
const recipes = [
{
id:12345,
name:'farofa de bacon',
ingredientes:['farofa', 'bacon']
},
{
id:12346,
name:'ovo mexido',
ingredientes:['ovo']
}
]
Rota: /comments
Objetivo: Deve retornar todos os comentários. Se houver um query param filter na requisição, deve retornar apenas os comentários que incluem o filtro. Use o array abaixo para simular o banco de dados:
const users = [
{
id: 2,
user: 'antonio',
comments: ["Hoje o dia está maneiro!", "Agora não está muito"]
},
{
id: 3,
user: "rodrigo",
comments: ["To aqui também", "Agora não tô"]
}
]
Rota: /user/:id
Objetivo: Deve receber no campo status um boleano e alterar o status do usuário correspôndente. Se o campo status não for um boleano, deve retornar o error "status isn't a boolean". Caso nao exista usuário correspondente, deve rotornar o error "user isn't found".
Use o array abaixo para simular o banco de dados:
const users = [
{
id: 2,
user: 'marcos',
isActive:true
},
{
id: 3,
user: 'paulo',
isActive:true
},
{
id: 4,
user: 'roger',
isActive:false
}
]
Rota: /recipe/:id/ingredients
Objetivo: Deve receber uma requisição com os campos remove e/ou insert. O valor deve ser um array de ingredientes para remover ou adicionar na receita correspondente. Caso o id fornecido não exista, retorne um erro recipe not found.
Use o array abaixo para simular o banco de dados:
const recipes = [
{
id:12345,
name:'farofa de bacon',
ingredientes:['farofa', 'bacon']
},
{
id:12346,
name:'ovo mexido',
ingredientes:['ovo']
}
]