Oddbean new post about | logout
 2021-06-24
========================================

Aplicação de Pessoas Físicas
----------------------------


Nos últimos anos, a formação do cadastro da pessoa física foi realizada por meio de um documento chamado "CPF", que poderia ser criado apenas uma vez por pessoa. Após o CPF ser criado, o usuário poderia obter diversos documentos como o RG, passaporte ou driver's license (carteira de habilitação).

Através deste projeto, a nossa equipe pretende criar um sistema que facilite a criação de cadastro de pessoas físicas. Além disso, nossa equipe quer criar uma forma de controle de dados de pessoas físicas através de um BD.

Além disso, nos próximos anos temos planos de adição de novos recursos no sistema como:
- O cadastro de empresas
- Controle da entrada e saída do funcionário
- Criação de relatórios
- Atualização dos dados do funcionário
- Criação de usuários com acesso limitado




## 🔧 Instalação

Antes de começar a utilizar nossa API, é necessário instalar o `axios` que será utilizado para fazer requisições HTTP.

```bash
npm install axios
```

## 📝 Requisitos

### Pessoa física
- Nome completo
- Data de nascimento
- Sexo
- RG
- CPF
- CEP
- Logradouro
- Bairro
- Município
- Estado
- País
- Telefone celular
- Telefone residencial
- E-mail

### Endereço
- Data de criação do endereço
- Logradouro
- Número
- CEP
- Bairro
- Município
- Estado
- País

## 📝 Respostas

A API responde com uma mensagem JSON, conterá o seguinte campo:

- `status` - Indica se a requisição foi sucessa ou não (0 = ok; 1 = error);
- `message` - Mensagem explicativa do resultado da requisição;
- `data` - Dados retornados na resposta da requisição.

## 🌐 API Endpoints

### POST - Cadastrar pessoa física
```bash
POST /pessoas/cadastrar
```

#### Requisição
```json
{
  "nome": "John Doe",
  "data_de_nascimento": "2021-06-24",
  "sexo": "Masculino",
  "rg": "123456789",
  "cpf": "1234567890",
  "cep": "12345678",
  "logradouro": "Rua A",
  "bairro": "Centro",
  "município": "São Paulo",
  "estado": "SP",
  "pais": "Brasil",
  "telefone_celular": "1234567890",
  "telefone_residencial": "1234567890",
  "email": "johndoe@gmail.com"
}
```
#### Resposta
```json
{
  "status": 0,
  "message": "Pessoa cadastrada com sucesso",
  "data": {
    "id": 1,
    "nome": "John Doe",
    "data_de_nascimento": "2021-06-24",
    "sexo": "Masculino",
    "rg": "123456789",
    "cpf": "1234567890",
    "cep": "12345678",
    "logradouro": "Rua A",
    "bairro": "Centro",
    "município": "São Paulo",
    "estado": "SP",
    "pais": "Brasil",
    "telefone_celular": "1234567890",
    "telefone_residencial": "1234567890",
    "email": "johndoe@gmail.com"
  }
}
```
### GET - Listar pessoas físicas
```bash
GET /pessoas/listar
```
#### Resposta
```json
{
  "status": 0,
  "message": "Listagem de pessoas cadastradas",
  "data": [
    {
      "id": 1,
      "nome": "John Doe",
      "data_de_nascimento": "2021-06-24",
      "sexo": "Masculino",
      "rg": "123456789",
      "cpf": "1234567890",
      "cep": "12345678",
      "logradouro": "Rua A",
      "bairro": "Centro",
      "município": "São Paulo",
      "estado": "SP",
      "pais": "Brasil",
      "telefone_celular": "1234567890",
      "telefone_residencial": "1234567890",
      "email": "johndoe@gmail.com"
    },
  ]
}
```
### GET - Buscar pessoa física pelo CPF
```bash
GET /pessoas/buscar_cpf/{CPF}
```
#### Requisição
```json
{
  "CPF": "1234567890"
}
```
#### Resposta
```json
{
  "status": 0,
  "message": "Busca de pessoa pelo CPF",
  "data": {
    "id": 1,
    "nome": "John Doe",
    "data_de_nascimento": "2021-06-24",
    "sexo": "Masculino",
    "rg": "123456789",
    "cpf": "1234567890",
    "cep": "12345678",
    "logradouro": "Rua A",
    "bairro": "Centro",
    "município": "São Paulo",
    "estado": "SP",
    "pais": "Brasil",
    "telefone_celular": "1234567890",
    "telefone_residencial": "1234567890",
    "email": "johndoe@gmail.com"
  }
}
```
### POST - Atualizar pessoa física
```bash
PUT /pessoas/atualizar/{id}
```
#### Requisição
```json
{
  "nome": "John Doe",
  "data_de_nascimento": "2021-06-24",
  "sexo": "Masculino",
  "rg": "123456789",
  "cpf": "1234567890",
  "cep": "12345678",
  "logradouro": "Rua A",
  "bairro": "Centro",
  "município": "São Paulo",
  "estado": "SP",
  "pais": "Brasil",
  "telefone_celular": "1234567890",
  "telefone_residencial": "1234567890",
  "email": "johndoe@gmail.com"
}
```
#### Resposta
```json
{
  "status": 0,
  "message": "Atualização de pessoa",
  "data": {
    "id": 1,
    "nome": "John Doe",
    "data_de_nascimento": "2021-06-24",
    "sexo": "Masculino",
    "rg": "123456789",
    "cpf": "1234567890",
    "cep": "12345678",
    "logradouro": "Rua A",
    "bairro": "Centro",
    "município": "São Paulo",
    "estado": "SP",
    "pais": "Brasil",
    "telefone_celular": "1234567890",
    "telefone_residencial": "1234567890",
    "email": "johndoe@gmail.com"
  }
}
```
### POST - Cadastrar endereço
```bash
POST /enderecos/cadastrar/{CPF}/{id}
```
#### Requisição
```json
{
  "rua": "Rua A",
  "numero": "123",
  "complemento": "456",
  "bairro": "Centro",
  "município": "São Paulo",
  "estado": "SP",
  "pais": "Brasil"
}
```
#### Resposta
```json
{
  "status": 0,
  "message": "Cadastro de endereço",
  "data": {
    "id_pessoa": 1,
    "rua": "Rua A",
    "numero": "123",
    "complemento": "456",
    "bairro": "Centro",
    "município": "São Paulo",
    "estado": "SP",
    "pais": "Brasil"
  }
}
```