Users Crud API

Introdução

Esse projeto é um simples crud de usuários com autorização e testes automatizados. Gems utilizadas no projeto:

  • Discart - Usada para fazer soft-delete
  • ffaker - Usada para criar dados aleátorios em cada teste realizado
  • database_cleaner - Usada para limpar a base de dados a cada teste realizado
  • factory_bot_rails - Usada para automatizar a criação de usuários nos testes
  • capybara - Disponibiliza uma série de comandos para usar durante o desenvolvimento dos testes
  • rspec-json_expectations - Disponibiliza comandos utéis para respostas em JSON

Para usar a API, utilize o endereço:

https://users-crud-ror.herokuapp.com/[command]

Onde [command] pode ser um dos serviços listados abaixo:


Criar usuário

Comando: POST auth

Body Type: JSON

{
  "first_name": "João",
  "last_name": "da Silva",
  "email": "joao@email.com",
  "password": "12345678",
  "password_confirmation": "12345678"
}

Retorno: Um JSON com as informações do usuário cadastrado.


Se autenticar com um usuário

Comando: POST auth/sign_in

Body Type: JSON

{
  "email": "joao@email.com",
  "password": "12345678"
}

Retorno: JSON com as informações do usuário auntenticado.


Guarde os seguintes campos do Header para usar nas próximas requisições

Content-Type, access-token, token-type, client, expiry, uid


Listar Usuários

Comando: GET users

Headers: Content-Type, access-token, token-type, client, expiry, uid

Permissão necessária: Usuário autenticado deve ser administrador.

Retorno: Um JSON com a lista de Usuários cadastrados.


Mostrar perfil de um usuário

Comando GET users/:id

Headers: Content-Type, access-token, token-type, client, expiry, uid

Permissão necessária: Usuário autenticado deve ser administrador ou dono do perfil acessado.

Retorno: Um JSON com as informações do usuário selecionado.


Editar um usuário

Comando: PUT users/:id

Headers: Content-Type, access-token, token-type, client, expiry, uid

Permissão necessária: Usuário autenticado deve ser administrador ou dono do perfil acessado.

Escolha quais campos do usuário você quer atualizar: first_name, last_name, email, password, role

Exemplo:

{
  "last_name": "da Silva Santos"
}

Retorno: Um JSON com os novos valores do usuário


Deletar um usuário

Comando: DELETE users/:id

Headers: Content-Type, access-token, token-type, client, expiry, uid

Permissão necessária: Usuário autenticado deve ser administrador ou dono do perfil acessado.

Retorno: Nenhum retorno