# Contacts List

### 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.

## Criar Lista de Contatos

Este endpoint permite criar uma nova lista de contatos.

#### Caminho da Rota

```bash
POST /contacts-list
```

#### Corpo da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

* **name** (obrigatório): O nome da lista de contatos.
* **nameFrom**: O nome do remetente associado à lista de contatos.
* **image**: O caminho para uma imagem associada à lista de contatos.
* **csvFile**: O caminho para um arquivo CSV contendo os contatos a serem adicionados à lista.
* **totalSubscribers**: O número total de assinantes na lista.
* **totalSubscribersConfirmed**: O número total de assinantes confirmados na lista.
* **pctSubscribersConfirmed**: A porcentagem de assinantes confirmados na lista.

#### Exemplo de Corpo da Requisição:

```
json
```

```json
[
    {
        "name": "Minha Lista de Contatos",
        "nameFrom": "João",
        "image": "https://example.com/image.png",
        "csvFile": "https://example.com/file.csv",
        "totalSubscribers": 100,
        "totalSubscribersConfirmed": 80,
        "pctSubscribersConfirmed": 80
    }
]
```

#### Exemplo de Resposta:

Se a criação for bem-sucedida, o endpoint retorna os dados da lista de contatos criada.

```
json
```

```json
{
    "id": "6628130411ab86c8ea1d9de5",
    "name": "Minha Lista de Contatos",
    "nameFrom": "João",
    "image": "https://example.com/image.png",
    "csvFile": "https://example.com/file.csv",
    "totalSubscribers": 100,
    "totalSubscribersConfirmed": 80,
    "pctSubscribersConfirmed": 80
}
```

## Listar Todas as Listas de Contatos do Usuário

Este endpoint permite listar todas as listas de contatos associadas a um usuário específico.

#### Caminho da Rota

```
bash
```

```bash
GET /contacts-list
```

#### Exemplo de Resposta:

```
json
```

```json
[
    {
        "id": "6627f83d03c7906052998488",
        "name": "Minha Lista 1",
        "userId": "65f05b7f8a7496c585726777",
        "nameFrom": "Remetente 1",
        "image": "https://s3.amazonaws.com/mailfy-prod/lists/pictures/string",
        "csvFile": "string",
        "totalSubscribers": 12,
        "totalSubscribersConfirmed": 0,
        "pctSubscribersConfirmed": 0,
        "createdAt": "2024-04-23T18:04:45.533Z",
        "updatedAt": "2024-04-23T20:15:46.708Z"
    },
    {
        "id": "6627f85103c7906052998489",
        "name": "Minha Lista 2",
        "userId": "65f05b7f8a7496c585726777",
        "nameFrom": "Remetente 2",
        "image": "https://s3.amazonaws.com/mailfy-prod/lists/pictures/string",
        "csvFile": "string",
        "totalSubscribers": 0,
        "totalSubscribersConfirmed": 0,
        "pctSubscribersConfirmed": 0,
        "createdAt": "2024-04-23T18:05:05.931Z",
        "updatedAt": "2024-04-23T18:05:05.931Z"
    },
    // Outras listas...
]
```

### Atualizar Lista de Contatos por ID

Este endpoint permite atualizar uma lista de contatos específica com base no seu ID.

#### Caminho da Rota

```
bash
```

```bash
PUT /contacts-list/{listId}
```

#### Parâmetros

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

#### Corpo da Requisição

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

#### Exemplo de Corpo da Requisição:

```
json
```

```json
{
    "name": "Nova Lista de Contatos",
    "nameFrom": "Novo Remetente",
    "image": "https://nova-imagem.com/imagem.png",
    "csvFile": "https://novo-arquivo.com/arquivo.csv",
    "totalSubscribers": 20,
    "totalSubscribersConfirmed": 15,
    "pctSubscribersConfirmed": 75
}
```

#### Exemplo de Requisição:

```
bash
```

```bash
PUT /contacts-list/6627f83d03c7906052998488
```

#### Exemplo de Resposta:

Se a atualização for bem-sucedida, o endpoint retorna os dados atualizados da lista de contatos.

```
json
```

```json
{
    "id": "6627f83d03c7906052998488",
    "name": "Nova Lista de Contatos",
    "nameFrom": "Novo Remetente",
    "image": "https://nova-imagem.com/imagem.png",
    "csvFile": "https://novo-arquivo.com/arquivo.csv",
    "totalSubscribers": 20,
    "totalSubscribersConfirmed": 15,
    "pctSubscribersConfirmed": 75,
    "createdAt": "2024-04-23T18:04:45.533Z",
    "updatedAt": "2024-04-23T20:15:46.708Z"
}
```

## Deletar Lista de Contatos por ID

Este endpoint permite deletar uma lista de contatos específica com base no seu ID.

#### Caminho da Rota

```
bash
```

```bash
DELETE /contacts-list/{listId}
```

#### Parâmetros

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

#### Exemplo de Requisição:

```
bash
```

```bash
DELETE /contacts-list/6627f83d03c7906052998488
```

#### 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).

##
