Use npm install
para instalar todas as dependências.
Antes de rodar o projeto é necessário configurar o .env enviado como exemplo.
Use npm run dev
para rodar o projeto no modo dev.
Use npm run build
para fazer o build do projeto.
Use npm run start
para rodar o build gerado do projeto.
{{baseUrl}}/auth
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
username | Usuário | String | Sim |
password | Senha | String | Sim |
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjlhMmU2ZDkyLWY1YWEtNDNmNy1iMWZhLTg2ZmUxZmE0YTUyZCIsImlhdCI6MTY3MzQwMTg4OCwiZXhwIjoxNjczNDg4Mjg4LCJzdWIiOiI5YTJlNmQ5Mi1mNWFhLTQzZjctYjFmYS04NmZlMWZhNGE1MmQifQ.UfbKa0cg82IdO0eFfFnWC5j4OwGNTLXPMdGuSbtg0xs"
}
Este header deve conter nas rotas de deletar e atualizar usuário.
Parameter | Value |
---|---|
authorization | Bearer {token} |
Buscar apenas um usuário
{{ _.baseUrl }}/users/{id}
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
id | Id do usuário | Number | Sim |
{
"id": 1,
"username": "joao.oliveira",
"name": "João Oliveira",
"job": "Desenvolvedor",
"permission": "admin",
"accessCount": 1
}
Buscar todos os usuários
[
{
"id": 1,
"username": "joao.oliveira",
"name": "João Oliveira",
"job": "Desenvolvedor",
"permission": "admin",
"accessCount": 1
}
]
Criar usuário.
{{ _.baseUrl }}/users
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
username | Usuário | String | Sim |
name | Nome do usuário | String | Sim |
job | Cargo do usuário | String | Sim |
permission | Permissão do usuário | 'admin' ou 'user' | Sim |
password | Senha do usuário | String | Sim |
{
"id": 2,
"username": "pierre",
"name": "Pierre Oliveira",
"job": "Programador",
"permission": "admin",
"accessCount": 0
}
Atualizar usuário.
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
id | Id do usuário | Number | Sim |
{{ _.baseUrl }}/users/{id}
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
username | Usuário | String | Não |
name | Nome do usuário | String | Não |
job | Cargo do usuário | String | Não |
permission | Permissão do usuário | 'admin' ou 'user' | Não |
password | Senha do usuário | String | Não |
{
"id": 2,
"username": "pierre",
"name": "Pierre Oliveira",
"job": "Programador",
"permission": "admin"
}
Deletar usuário.
{{ _.baseUrl }}/users/{id}
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
id | Id do usuário | Number | Sim |
{
"success": true
}
Buscar quantas vezes um usuário foi acessado.
{{ _.baseUrl }}/users/access/{id}
PARÂMETRO | DESCRIÇÃO | TIPO | OBRIGATÓRIO |
---|---|---|---|
id | Id do usuário | Number | Sim |
{
"message": "Usuário Pierre Oliveira 3 foi lido undefined vezes."
}
Este projeto possui um banco de dados fake em fakeData.js com apenas um registro. A ideia é melhorar e o CRUD escrito nos 4 arquivos de teste abaixo.
Será a validada a forma de escrita de código. Escreva códigos que humanos consigam entender.
Fique a vontade para fazer modificaçoes nos serviços, comentários em código, estrutura, mas seja objetivo.
GET em /user
Possuimos neste arquivo um serviço que faz uma busca no banco fake e retorna um registro. Este código funciona, mas é possivel melhorar. Veja o que pode deixar ele melhor escrito e mais performatico.
POST em /users, descubra a intenção dele e o corrija.
Este procura um usuário e o deleta da base. Retorne sucesso para o client caso realmente tenha sido excluido e deixe o código mais performatico.
Atualiza os dados de um usuário especifico.
Retorne quantas vezes determinado usuário foi lido no teste1.
Definina uma forma de criar permissão para o usuario, defina se o usuário pode deletar ou atualizar usuários. Crie um middleware para validar essas permissões e adicione no teste4 e teste3.