Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User README #62

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,115 @@ Após instalar as dependências com `bundle install`, você pode iniciar o servi

```bash
rails server
```

# Sign in

Requisitos para logar. (A criação de uma conta só pode ser feita por meio de um administrador.)

- **email**
- **password**

Após o sign in ele irá gerar um token de acesso no Headers.
```
Authorization | Bearer {token que é gerado}
```

# User

Este controlador lida com operações CRUD para o recurso `User`, implementando verificações de autorização usando o Pundit.

## Ações (OBS: É necessário o token de acesso para poder utilizar o CRUD)

- **Index**: Retorna uma lista de usuários, ordenada por `created_at`, serializada usando `UserSerializer` (http://127.0.0.1:3000/users).

```json
[
{
"name": "Teste",
"email": "[email protected]",
"role": "user",
"admin": false,
"created_at": "21/11/2024 23:51",
"updated_at": "21/11/2024 23:51"
}, ...
]
```

- **show**: Busca e retorna um usuário específico por ID, serializado usando `UserSerializer` (http://127.0.0.1:3000/users/:id).

```json
{
"name": "Cleytinho",
"email": "[email protected]",
"role": "user",
"admin": false,
"created_at": "16/11/2024 18:46",
"updated_at": "16/11/2024 18:46"
}
```

- **create**: Cria um novo usuário a partir de parâmetros permitidos e retorna o usuário serializado.
### 1° - No body irá colocar o json do usuário:
```json
{
"user": {
"name": "Teste2",
"email": "[email protected]",
"password": "Password123@",
"role": "user",
"admin": false,
"company_id": 40
}
}
```

### 2° - Após a requisição será retornado o status de 200 e o json do usuário criado:

```json
{
"name": "Teste2",
"email": "[email protected]",
"role": "user",
"admin": false,
"created_at": "23/11/2024 18:09",
"updated_at": "23/11/2024 18:09"
}
```

- **update**: Atualiza as informações de um usuário existente e retorna o usuário serializado (http://127.0.0.1:3000/users/67).
### 1° - Para alterar é necessário colocar o campo que deseja alterar e em seguida deve colocar o que vai ser enviado.
```json
{
"user": {
"role": "admin"
}
}
```
### 2° - Após a alteração retornará um json com status 200 junto com os dados atualizados.
```json
{
"name": "Rafael",
"email": "[email protected]",
"role": "admin",
"admin": true,
"created_at": "25/10/2024 01:08",
"updated_at": "23/11/2024 19:44"
}
```

- **destroy**: Exclui um usuário e não retorna nenhum conteúdo.

### 1° - Ao colocar na rota da requisição o ID ele irá deletar o user. Assim exibindo o status 204.
```json
204 No Content
```



## Autorização

O controlador usa o Pundit para garantir que os usuários tenham permissões apropriadas para executar ações. O método `authorize` garante que o usuário atual esteja autorizado para a ação solicitada.