Pular para conteúdo

Gerenciamento de Grupos de Captura (ManageCallGroups)

Este endpoint é responsável pelo CRUD (Leitura, Criação, Atualização e Exclusão) dos Grupos de Captura (Call Groups / Pickup Groups) de um cliente. Ele permite definir quais ramais tocam/podem ser capturados (ring_group) e quais ramais têm permissão para puxar a ligação (pickup_group).

🔐 Autenticação e Base URL

Todas as requisições requerem autenticação passando o Token e a Key da API diretamente na URL.

Formato Base: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/

📌 Mapeamento de Métodos

  • GET: Ler / Listar Grupos de Captura
  • PUT: Criar novo Grupo de Captura
  • POST: Atualizar Grupo existente
  • DELETE: Excluir Grupo

1. Listar / Obter Grupos (GET)

Retorna os grupos de captura de um cliente específico. Pode retornar todos os grupos do cliente ou um grupo específico se o id_record for fornecido.

  • Método: GET
  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}
  • Parâmetros da Rota:

  • {id_cliente} (int): ID do Cliente dono do grupo.

  • Query Params (Opcional):

  • ?id_record={id_record} (int): ID específico do grupo que deseja filtrar.

Exemplo de Resposta (Sucesso):

{
    "error": 0,
    "reason": "OK",
    "records": 1,
    "data": [
        {
            "id": "15",
            "id_cliente": "210",
            "descricao": "Grupo Comercial",
            "status": "1",
            "ring_group": [
                {
                    "id_ramal": "1050",
                    "ramal": "SIP/2101",
                    "status_ramal": "1"
                }
            ],
            "pickup_group": [
                {
                    "id_ramal": "1055",
                    "ramal": "SIP/2105",
                    "status_ramal": "1"
                }
            ]
        }
    ]
}

2. Criar Grupo de Captura (PUT)

Cria um novo grupo de captura e vincula os ramais desejados.

  • Método: PUT
  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}
  • Parâmetros da Rota:

  • {id_cliente} (int): ID do Cliente.

Payload (JSON):

Atenção: Os arrays ring_group e pickup_group esperam o ID numérico do ramal (ID da tabela devices), não o nome/número do ramal.

{
    "id_cliente": 210,
    "descricao": "Grupo Suporte",
    "status": 1,
    "ring_group": [1050, 1051, 1052], 
    "pickup_group": [1055, 1056]
}
  • ring_group: Ramais que pertencem ao grupo e podem ser capturados quando tocarem.
  • pickup_group: Ramais que têm permissão para capturar as ligações dos ramais do ring_group.

Exemplo de Resposta (Sucesso):

{
    "error": 0,
    "reason": "OK",
    "new_record": 16
}

3. Atualizar Grupo de Captura (POST)

Atualiza os dados de um grupo já existente. Se as listas ring_group ou pickup_group forem enviadas, os ramais antigos do grupo serão substituídos pela nova lista.

  • Método: POST
  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}?id_record={id_record}
  • Parâmetros da Rota:

  • {id_cliente} (int): ID do Cliente.

  • Query Params (Obrigatório):

  • ?id_record={id_record} (int): ID do Grupo de Captura que será alterado.

Payload (JSON):

Você pode enviar apenas os campos que deseja alterar.

{
    "descricao": "Grupo Comercial - Atualizado",
    "status": 1,
    "ring_group": [1050, 1051],
    "pickup_group": [1055]
}

Exemplo de Resposta (Sucesso):

{
    "error": 0,
    "reason": "OK",
    "saved": true
}

4. Excluir Grupo de Captura (DELETE)

Exclui um grupo de captura do sistema.

  • Método: DELETE
  • Rota: {{base_url}}/api/ManageCallGroups/{{api_token}}/{{api_key}}/{id_cliente}?id_record={id_record}
  • Parâmetros da Rota:

  • {id_cliente} (int): ID do Cliente.

  • Query Params (Obrigatório):

  • ?id_record={id_record} (int): ID do Grupo de Captura a ser excluído.

Exemplo de Resposta (Sucesso):

{
    "error": 0,
    "reason": "OK"
}

🛑 Tabela de Códigos de Erro (reason)

Em caso de falha, a API retorna o HTTP Status apropriado, error: 1 e uma das reasons abaixo:

Reason Descrição
RECORD_NOT_FOUND Grupo de Captura não encontrado, ou id_record não foi fornecido onde era obrigatório.
INVALID_CUSTOMER ID do Cliente passado na URL é inválido, vazio ou igual a zero.
CUSTOMER_NOT_FOUND Cliente não encontrado ou usuário autenticado não tem permissão para gerenciar este cliente.
CUSTOMER_INVALID ID do Cliente não foi enviado no payload (corpo do JSON) durante a criação.
INVALID_DATA Dados obrigatórios faltando (ex: descricao na criação).
MALFORMED_REQUEST O corpo da requisição (Payload JSON) é inválido ou está mal formatado.