🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

elysium-api

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

elysium-api

API moderna e futurista para integração com o sistema Elysium

1.2.3
latest
npm
Version published
Weekly downloads
14
-36.36%
Maintainers
1
Weekly downloads
 
Created
Source

ElysiumApi

Uma biblioteca moderna e futurista para integração com o sistema Elysium. Esta API oferece uma interface elegante e eficiente para interagir com os serviços do Elysium.

🚀 Instalação

npm install elysium-api

⚙️ Configuração

A API suporta tanto o formato CommonJS (require) quanto ES Modules (import):

CommonJS (require)

const ElysiumApi = require("elysium-api");

const api = new ElysiumApi({
  email: "seu-email@exemplo.com",
  hash: "seu-hash-de-autenticacao",
});

ES Modules (import)

import ElysiumApi from "elysium-api";

const api = new ElysiumApi({
  email: "seu-email@exemplo.com",
  hash: "seu-hash-de-autenticacao",
});

🔐 Autenticação

A autenticação é feita através de dois parâmetros:

  • email: Seu email registrado no sistema Elysium
  • hash: Sua chave de autenticação fornecida pelo sistema

⚠️ IMPORTANTE: Nunca compartilhe suas credenciais ou as exponha no código fonte público.

🌟 Recursos

  • Interface moderna e intuitiva
  • Suporte completo às funcionalidades do Elysium
  • Tratamento de erros robusto
  • Documentação completa
  • Suporte a Promises/Async-Await
  • Compatível com CommonJS e ES Modules
  • Tipagem TypeScript incluída

📚 Exemplos de Uso

// Exemplo básico de uso da API
const api = new ElysiumApi({
  email: "seu-email@exemplo.com",
  hash: "seu-hash",
});

📚 Exemplos de Uso

Criação de Cliente

// Exemplo de criação de um novo cliente
(async () => {
  try {
    const clientes = await api.createClient({
      nome: "Fernando",
      numero: "000000000",
      plano_id: "264",
      email_cliente: "teste@gmail.com", // email ou usuario
      vencimento: "2025-10-31",
      observacao: "Observação", // opcional
    });
    console.log(clientes);
  } catch (error) {
    if (error) {
      console.error("Detalhes:", error);
    }
  }
})();

Deletar Cliente

A API oferece duas formas flexíveis para deletar um cliente:

1. Deletar por Número de Telefone

// Exemplo de deleção usando número de telefone
const deletarPorNumero = await api.deleteClient({
  identificador_tipo: "numero",
  identificador_valor: "11987654321",
});

2. Deletar por Email

// Exemplo de deleção usando email
const deletarPorEmail = await api.deleteClient({
  identificador_tipo: "email",
  identificador_valor: "teste@exemplo.com",
});

Exemplo Completo

// Demonstração das duas formas de deleção
(async () => {
  try {
    // Deletando cliente por número
    const resultadoNumero = await api.deleteClient({
      identificador_tipo: "numero",
      identificador_valor: "11987654321",
    });
    console.log("Cliente deletado por número:", resultadoNumero);

    // Deletando cliente por email
    const resultadoEmail = await api.deleteClient({
      identificador_tipo: "email",
      identificador_valor: "teste@exemplo.com",
    });
    console.log("Cliente deletado por email:", resultadoEmail);
  } catch (error) {
    console.error("Erro ao deletar cliente:", error);
  }
})();

Parâmetros para Deletar Cliente

ParâmetroValores PossíveisDescrição
identificador_tipo'numero' ou 'email'Tipo de identificação do cliente
identificador_valorstringValor do identificador (número ou email)

Consultar Cliente

A API permite consultar informações de um cliente de duas maneiras:

1. Consulta por Número de Telefone

// Exemplo de consulta usando número de telefone
const clientePorNumero = await api.getClient({
  identificador_tipo: "numero",
  identificador_valor: "1198654321",
});

2. Consulta por Email

// Exemplo de consulta usando email
const clientePorEmail = await api.getClient({
  identificador_tipo: "email",
  identificador_valor: "cliente@exemplo.com",
});

Exemplo Completo

// Demonstração de consulta de cliente
(async () => {
  try {
    // Consultando cliente por número
    const cliente = await api.getClient({
      identificador_tipo: "numero",
      identificador_valor: "1198654321",
    });
    console.log("Dados do cliente:", cliente);
  } catch (error) {
    console.error("Erro ao consultar cliente:", error);
  }
})();

Parâmetros para Consulta de Cliente

ParâmetroValores PossíveisDescrição
identificador_tipo'numero' ou 'email'Tipo de identificação do cliente
identificador_valorstringValor do identificador (número ou email)

Listar Clientes

O método listClients permite buscar uma lista de clientes com filtros opcionais:

1. Listagem Simples

// Lista todos os clientes com configurações padrão
const clientes = await api.listClients();

2. Listagem com Filtros

// Lista clientes com filtros específicos
const clientesFiltrados = await api.listClients({
  status: "vencidos", // Filtra por status
  search: "cliente 1", // Busca por termo
  page: 1, // Página atual
  limit: 10, // Itens por página
});

Exemplo Completo

(async () => {
  try {
    // Exemplo 1: Listagem básica
    const todosClientes = await api.listClients();
    console.log("Todos os clientes:", todosClientes);

    // Exemplo 2: Listagem com filtros
    const clientesFiltrados = await api.listClients({
      status: "vencidos",
      search: "cliente 1",
      page: 1,
      limit: 10,
    });
    console.log("Clientes filtrados:", clientesFiltrados);
  } catch (error) {
    console.error("Erro ao listar clientes:", error);
  }
})();

Parâmetros para Listagem de Clientes

ParâmetroTipoDescriçãoObrigatório
statusstringFiltra por status do cliente (ex: 'vencidos')Não
searchstringTermo para busca de clientesNão
pagenumberNúmero da página (padrão: 1)Não
limitnumberQuantidade de itens por página (padrão: 10)Não

Atualizar Cliente

O método updateClient permite atualizar os dados de um cliente de forma flexível:

1. Atualização Mínima

// Atualiza apenas o vencimento do cliente
const atualizacaoMinima = await api.updateClient({
  identificador_tipo: "email",
  identificador_valor: "cliente@exemplo.com",
  vencimento: "2025-10-31", // Apenas campo obrigatório
});

2. Atualização Completa

// Atualiza todos os campos disponíveis
const atualizacaoCompleta = await api.updateClient({
  identificador_tipo: "email",
  identificador_valor: "cliente@exemplo.com",
  nome: "Cliente Atualizado",
  email_cliente: "cliente@exemplo.com",
  plano_id: "234",
  vencimento: "2024-10-31",
  observacao: "Observação",
});

Exemplo Completo

(async () => {
  try {
    // Exemplo 1: Atualização mínima
    const atualizacaoSimples = await api.updateClient({
      identificador_tipo: "email",
      identificador_valor: "cliente@exemplo.com",
      vencimento: "2025-10-31",
    });
    console.log("Atualização simples:", atualizacaoSimples);

    // Exemplo 2: Atualização completa
    const atualizacaoCompleta = await api.updateClient({
      identificador_tipo: "email",
      identificador_valor: "cliente@exemplo.com",
      nome: "Cliente Atualizado",
      email_cliente: "cliente@exemplo.com",
      plano_id: "234",
      vencimento: "2024-10-31",
      observacao: "Observação",
    });
    console.log("Atualização completa:", atualizacaoCompleta);
  } catch (error) {
    console.error("Erro ao atualizar cliente:", error);
  }
})();

Parâmetros para Atualização de Cliente

ParâmetroTipoDescriçãoObrigatório
identificador_tipostringTipo de identificação ('email' ou 'numero')Sim
identificador_valorstringValor do identificadorSim
vencimentostringData de vencimento (YYYY-MM-DD)Sim
nomestringNome do clienteNão
email_clientestringEmail do clienteNão
plano_idstringID do planoNão
observacaostringObservações adicionaisNão

📱 Enviar Mensagem Individual

O método sendSingleMessage permite enviar mensagens personalizadas para um cliente específico, suportando texto e imagens:

1. Envio de Mensagem de Texto

// Exemplo de envio de mensagem de texto
const mensagemTexto = await api.sendSingleMessage({
  identificador_tipo: "email",
  identificador_valor: "cliente@exemplo.com",
  mensagem: "Olá, tudo bem?",
  tipo: "1", // tipo 1 = texto
  delay: "1", // velocidade de envio (1 a 5)
});

2. Envio de Mensagem com Imagem

// Exemplo de envio de mensagem com imagem
const mensagemImagem = await api.sendSingleMessage({
  identificador_tipo: "numero",
  identificador_valor: "11987654321",
  mensagem: "Confira nossa promoção!",
  tipo: "2", // tipo 2 = imagem
  delay: "1",
  imagem: "data:image/png;base64,...", // sua imagem em base64
});

Exemplo Completo

(async () => {
  try {
    const envioMensagem = await api.sendSingleMessage({
      identificador_tipo: "email",
      identificador_valor: "cliente@exemplo.com",
      mensagem: "Olá, tudo bem?",
      tipo: "2",
      delay: "0",
      imagem: "data:image/png;base64,...", // necessário apenas para tipo 2
    });
    console.log("Status do envio:", envioMensagem);
  } catch (error) {
    console.error("Erro ao enviar mensagem:", error);
  }
})();

Parâmetros para Envio de Mensagem

ParâmetroTipoDescriçãoObrigatório
identificador_tipostringTipo de identificação ('email' ou 'numero')Sim
identificador_valorstringEmail ou número do clienteSim
mensagemstringTexto da mensagemSim
tipostringTipo de mensagem ('1' = texto, '2' = imagem)Sim
delaystringVelocidade de envio (0 = mais rápido, 5 = mais lento)Sim
imagemstringImagem em formato base64 (apenas quando tipo = '2')Condicional*

*O parâmetro imagem é obrigatório apenas quando tipo = '2' (mensagem com imagem)

⚡ Velocidades de Envio (delay)

ValorVelocidade
010 a 20 segundos
120 a 30 segundos
230 a 40 segundos
340 a 50 segundos
450 a 60 segundos
560 a 70 segundos

📢 Enviar Mensagem em Massa para Plano

// Exemplo de envio em massa
const envioMassivo = await api.sendMessageplan({
  plano_id: "264", // obrigatório
  mensagem: "teste", // obrigatório
  tipo: "1", // 1 para texto, 2 para imagem
  delay: "0", // 0 para mais rápido, 5 para mais lento
  imagem: "data:image/png;base64,...", // obrigatório quando tipo = '2'
});

Parâmetros

  • plano_id: ID do plano (obrigatório)
  • mensagem: Texto da mensagem (obrigatório)
  • tipo: '1' para texto, '2' para imagem
  • delay: 0 (mais rápido) a 5 (mais lento)
  • imagem: Base64 da imagem (obrigatório se tipo = '2')

⚡ Delays

  • 0: 10-20 segundos
  • 1: 20-30 segundos
  • 2: 30-40 segundos
  • 3: 40-50 segundos
  • 4: 50-60 segundos
  • 5: 60-70 segundos

📋 Criar Plano

O método createPlan permite criar um novo plano no sistema:

// Exemplo de criação de plano
const novoPlan = await api.createPlan({
  nome: "Plano Teste Premium", // Nome do plano
  valor: 100, // Valor em reais
  duracao: 30, // Duração em dias
  hora_disparo: "00:00", // Hora de disparo das mensagens
});

Exemplo Completo

(async () => {
  try {
    const plano = await api.createPlan({
      nome: "Plano Teste Premium",
      valor: 100,
      duracao: 30,
      hora_disparo: "00:00",
    });
    console.log("Plano criado:", plano);
  } catch (error) {
    console.error("Erro ao criar plano:", error);
  }
})();

Parâmetros para Criação de Plano

ParâmetroTipoDescriçãoObrigatório
nomestringNome do planoSim
valornumberValor do plano em reaisSim
duracaonumberDuração do plano em diasSim
hora_disparostringHorário de disparo das mensagens (HH:mm)Sim

📋 Listar Planos

O método listPlans permite buscar e filtrar planos do sistema. Todos os parâmetros são opcionais:

1. Listagem Simples

// Lista todos os planos com configuração padrão
const planos = await api.listPlans();

2. Listagem com Filtros

// Lista planos com filtros específicos
const planosFiltrados = await api.listPlans({
  search: "premium", // Busca por nome do plano
  page: 1, // Página atual
  limit: 10, // Itens por página
});

Exemplo Completo

(async () => {
  try {
    // Exemplo de listagem com filtros
    const planos = await api.listPlans({
      search: "premium", // opcional: termo de busca
      page: 1, // opcional: página (padrão: 1)
      limit: 10, // opcional: itens por página (padrão: 10)
    });
    console.log("✨ Planos encontrados:", planos);
  } catch (error) {
    console.error("❌ Erro na busca:", error);
  }
})();

⚙️ Parâmetros de Listagem

ParâmetroTipoDescriçãoObrigatório
searchstringTermo para buscar planosNão
pagenumberNúmero da páginaNão
limitnumberItens por páginaNão

💡 Dicas de Uso

  • Use search para encontrar planos específicos
  • Ajuste limit conforme necessidade de visualização
  • Utilize a paginação para melhor performance
  • Todos os parâmetros são opcionais

🔄 Atualizar Plano

O método updatePlan permite atualizar as informações de um plano existente:

// Exemplo de atualização de plano
const planoAtualizado = await api.updatePlan("266", {
  nome: "Plano Premium 2.0",
  valor: 100,
  duracao: 30,
  hora_disparo: "00:00",
});

Exemplo Completo

(async () => {
  try {
    const plano = await api.updatePlan("266", {
      nome: "Plano Premium 2.0",
      valor: 100,
      duracao: 30,
      hora_disparo: "00:00",
    });
    console.log("✨ Plano atualizado:", plano);
  } catch (error) {
    console.error("❌ Erro na atualização:", error);
  }
})();

⚙️ Parâmetros de Atualização

ParâmetroTipoDescriçãoObrigatório
plano_idstringID do plano a ser atualizadoSim
nomestringNovo nome do planoSim
valornumberNovo valor em reaisSim
duracaonumberNova duração em diasSim
hora_disparostringNovo horário de disparo (HH:mm)Sim

📊 Estrutura de Retorno

{
    success: true,
    message: "Plano atualizado com sucesso",
    data: {
        id: "266",
        nome: "Plano Premium 2.0",
        valor: 100,
        duracao: 30,
        hora_disparo: "00:00",
        status: "ativo",
        updated_at: "2025-02-08T01:01:02"
    }
}

💡 Dicas de Uso

  • Sempre verifique o ID do plano antes de atualizar
  • Mantenha o histórico de alterações para controle
  • Atualize apenas os campos necessários
  • Considere o impacto nos clientes existentes

📅 Agendamentos

A API oferece funcionalidades para gerenciar agendamentos de mensagens para clientes.

Criar Agendamento

O método createAgendamento permite criar um novo agendamento de mensagem:

// Exemplo de criação de agendamento
const novoAgendamento = await api.createAgendamento({
  cliente_id: 123, // ID do cliente (obrigatório se não fornecer número)
  numero: "5511999998888", // Número do cliente (obrigatório se não fornecer cliente_id)
  data: "2023-11-15", // Data no formato YYYY-MM-DD
  hora: "14:30", // Hora no formato HH:MM
  mensagem: "Olá, confirmando seu agendamento!" // Opcional
});

Exemplo Completo

(async () => {
  try {
    const agendamento = await api.createAgendamento({
      cliente_id: 123,
      data: "2023-11-15",
      hora: "14:30",
      mensagem: "Olá, confirmando seu agendamento!"
    });
    console.log("Agendamento criado:", agendamento);
  } catch (error) {
    console.error("Erro ao criar agendamento:", error);
  }
})();

Parâmetros para Criação de Agendamento

ParâmetroTipoDescriçãoObrigatório
cliente_idnumberID do clienteCondicional*
numerostringNúmero do telefoneCondicional*
datastringData do agendamento (YYYY-MM-DD)Sim
horastringHora do agendamento (HH:MM)Sim
mensagemstringMensagem a ser enviadaNão

* Obrigatório informar ou cliente_id ou numero.

Atualizar Agendamento

O método updateAgendamento permite atualizar um agendamento existente:

// Exemplo de atualização de agendamento
const agendamentoAtualizado = await api.updateAgendamento(456, {
  cliente_id: 123,
  data: "2023-11-16",
  hora: "15:00",
  status: "concluido" // pendente, concluido ou cancelado
});

Parâmetros para Atualização de Agendamento

ParâmetroTipoDescriçãoObrigatório
agendamentoIdnumberID do agendamento a ser atualizadoSim
cliente_idnumberID do clienteCondicional*
numerostringNúmero do telefoneCondicional*
datastringData do agendamento (YYYY-MM-DD)Sim
horastringHora do agendamento (HH:MM)Sim
mensagemstringMensagem a ser enviadaNão
statusstringStatus do agendamento (pendente/concluido/cancelado)Não

* Obrigatório informar ou cliente_id ou numero.

Listar Agendamentos

O método listAgendamentos permite buscar e filtrar agendamentos:

// Exemplo de listagem de agendamentos com filtros
const agendamentos = await api.listAgendamentos({
  status: "pendente", // Filtrar por status
  search: "cliente", // Busca por cliente
  date_start: "2023-11-01", // Data inicial
  date_end: "2023-11-30", // Data final
  page: 1, // Página atual
  limit: 20 // Itens por página
});

Parâmetros para Listagem de Agendamentos

ParâmetroTipoDescriçãoObrigatório
statusstringFiltro por status (pendente/concluido/cancelado)Não
searchstringTermo para buscaNão
date_startstringData inicial do período (YYYY-MM-DD)Não
date_endstringData final do período (YYYY-MM-DD)Não
pagenumberNúmero da páginaNão
limitnumberItens por páginaNão

Excluir Agendamento

// Exemplo de exclusão de agendamento
const resultado = await api.deleteAgendamento(123); // ID do agendamento

Obter Agendamento

// Exemplo de obtenção de um agendamento específico
const agendamento = await api.getAgendamento(123); // ID do agendamento

📱 WhatsApp

A API oferece funcionalidades para verificar o status da conexão com o WhatsApp.

Verificar Status do WhatsApp

O método getWhatsAppStatus permite verificar se o WhatsApp está conectado:

// Exemplo de verificação de status do WhatsApp
const statusWhatsApp = await api.getWhatsAppStatus();

Exemplo de Resposta

// Quando conectado
{
  success: true,
  status: "connected",
  number: "5511999999999",
  name: "Nome do dispositivo"
}

// Quando desconectado
{
  success: true,
  status: "disconnected",
  number: "5511999999999"
}

Exemplo Completo

(async () => {
  try {
    const status = await api.getWhatsAppStatus();
    console.log("Status do WhatsApp:", status);
    
    if (status.status === "connected") {
      console.log("WhatsApp conectado no dispositivo:", status.device);
    } else {
      console.log("WhatsApp desconectado");
    }
  } catch (error) {
    console.error("Erro ao verificar status do WhatsApp:", error);
  }
})();

Keywords

elysium

FAQs

Package last updated on 03 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts