# Contacts

### Autenticação <a href="#headers" id="headers"></a>

API Key

{% hint style="info" %}

### Headers <a href="#headers" id="headers"></a>

Authorization string default: Bearer <\<YOUR\_API\_KEY\_HERE>>  required
{% endhint %}

**Observação:** Em todas as requisições a este endpoint, é necessário incluir a chave de API no cabeçalho da requisição.

## Cria Contatos.

<mark style="color:green;">`POST`</mark> `/v1/contacts`

Cria um ou múltiplos contatos.

#### Request Body

| Name                                   | Type   | Description                                   |
| -------------------------------------- | ------ | --------------------------------------------- |
| name<mark style="color:red;">\*</mark> | string | The name of the pet                           |
| email                                  | string | O email que será adicionado ao contato        |
| listId                                 | string | Id da lista ao qual o contato será adicionado |
|                                        |        |                                               |

{% tabs %}
{% tab title="200 Pet successfully created" %}

```javascript
{
    "name"="Wilson",
    "owner": {
        "id": "sha7891bikojbkreuy",
        "name": "Samuel Passet",
    "species": "Dog",}
    "breed": "Golden Retriever",
}
```

{% endtab %}

{% tab title="401 Permission denied" %}

{% endtab %}
{% endtabs %}

## Listar Todos os Contatos

Este endpoint retorna uma lista paginada de todos os contatos pertencentes ao usuário autenticado.

#### Parâmetros

* **listId** (parâmetro): O ID da lista de contatos a ser consultada.

#### Consultas

* **page** (consulta opcional): O número da página desejada. Por padrão, é retornado a primeira página.
* **itemsPerPage** (consulta opcional): O número de itens por página. Por padrão, são retornados 10 itens por página.

#### Exemplo de Requisição:

```bash
GET /contacts/list/6627f83d03c7906052998488?page=1&itemsPerPage=10

```

#### Exemplo de Resposta:

```
json
```

```json
{
    "contacts": [
        {
            "id": "6628130411ab86c8ea1d9de5",
            "name": "John Doe",
            "email": "john.doe@example.com",
            "listId": "6627f83d03c7906052998488",
            "createdAt": "2024-04-23T19:59:00.052Z",
            "updatedAt": "2024-04-23T19:59:00.052Z"
        },
        {
            "id": "662807fdc90beb14bd94561e",
            "name": "Ana",
            "email": "acss201@mailfy.com",
            "listId": "6627f83d03c7906052998488",
            "createdAt": "2024-04-23T19:11:57.679Z",
            "updatedAt": "2024-04-23T19:11:57.679Z"
        },
        {
            "id": "662802bad7d40927b448aa2a",
            "name": "string",
            "email": "string",
            "listId": "6627f83d03c7906052998488",
            "createdAt": "2024-04-23T18:49:30.568Z",
            "updatedAt": "2024-04-23T18:49:30.568Z"
        }
    ],
    "pagination": {
        "currentPage": 1,
        "itemsPerPage": 10,
        "totalItems": 3,
        "totalPages": 1,
        "hasNextPage": false,
        "hasPreviousPage": false
    }
}




```

## Atualizar Contato

Este endpoint permite atualizar as informações de um contato específico.

<table><thead><tr><th width="111">Name</th><th width="83">Type</th><th>Description</th></tr></thead><tbody><tr><td>name<mark style="color:red;">*</mark></td><td>string</td><td>The name of the pet</td></tr><tr><td>email</td><td>string</td><td>O email que será adicionado ao contato</td></tr><tr><td>listId</td><td>string</td><td>Id da lista ao qual o contato será adicionado</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

#### Caminho da Rota

```bash
PUT /contacts/{contactId}
```

#### Parâmetros

* **contactId** (parâmetro de rota): O ID do contato a ser atualizado.

#### Corpo da Requisição

O corpo da requisição deve conter um objeto JSON com os campos a serem atualizados.

```
json
```

```json
{
    "gender": "Masculino",
    "city": "São Paulo",
    "state": "SP",
    "birthDate": "1990-01-01",
    "phone": "+55 11 9876-5432",
    "country": "Brasil",
    "birthMonth": "Janeiro",
    "birthYear": "1990"
}
```

#### Exemplo de Requisição:

```bash
PUT /contacts/6628130411ab86c8ea1d9de5
```

#### Exemplo de Resposta:

Se a atualização for bem-sucedida, o endpoint retorna uma resposta vazia com o código de status HTTP 204 (No Content).

## Deletar Contato

Este endpoint permite deletar um contato específico.

#### Caminho da Rota

```
bash
```

```bash
DELETE /contacts/{contactId}
```

#### Parâmetros

* **contactId** (parâmetro de rota): O ID do contato a ser deletado.

#### Exemplo de Requisição:

```
bash
```

```bash
DELETE /contacts/11
```

#### Exemplo de Resposta:

Se a exclusão for bem-sucedida, o endpoint retorna uma resposta vazia com o código de status HTTP 204 (No Content).
