elysium-api v1.1.0
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
Para utilizar a API, você precisará inicializar com suas credenciais:
const ElysiumApi = require("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 Elysiumhash: 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
📚 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âmetro | Valores Possíveis | Descrição |
|---|---|---|
| identificador_tipo | 'numero' ou 'email' | Tipo de identificação do cliente |
| identificador_valor | string | Valor 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âmetro | Valores Possíveis | Descrição |
|---|---|---|
| identificador_tipo | 'numero' ou 'email' | Tipo de identificação do cliente |
| identificador_valor | string | Valor 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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| status | string | Filtra por status do cliente (ex: 'vencidos') | Não |
| search | string | Termo para busca de clientes | Não |
| page | number | Número da página (padrão: 1) | Não |
| limit | number | Quantidade 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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| identificador_tipo | string | Tipo de identificação ('email' ou 'numero') | Sim |
| identificador_valor | string | Valor do identificador | Sim |
| vencimento | string | Data de vencimento (YYYY-MM-DD) | Sim |
| nome | string | Nome do cliente | Não |
| email_cliente | string | Email do cliente | Não |
| plano_id | string | ID do plano | Não |
| observacao | string | Observações adicionais | Nã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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| identificador_tipo | string | Tipo de identificação ('email' ou 'numero') | Sim |
| identificador_valor | string | Email ou número do cliente | Sim |
| mensagem | string | Texto da mensagem | Sim |
| tipo | string | Tipo de mensagem ('1' = texto, '2' = imagem) | Sim |
| delay | string | Velocidade de envio (0 = mais rápido, 5 = mais lento) | Sim |
| imagem | string | Imagem em formato base64 (apenas quando tipo = '2') | Condicional* |
*O parâmetro
imagemé obrigatório apenas quandotipo = '2'(mensagem com imagem)
⚡ Velocidades de Envio (delay)
| Valor | Velocidade |
|---|---|
| 0 | 10 a 20 segundos |
| 1 | 20 a 30 segundos |
| 2 | 30 a 40 segundos |
| 3 | 40 a 50 segundos |
| 4 | 50 a 60 segundos |
| 5 | 60 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 imagemdelay: 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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| nome | string | Nome do plano | Sim |
| valor | number | Valor do plano em reais | Sim |
| duracao | number | Duração do plano em dias | Sim |
| hora_disparo | string | Horá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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| search | string | Termo para buscar planos | Não |
| page | number | Número da página | Não |
| limit | number | Itens por página | Não |
💡 Dicas de Uso
- Use
searchpara encontrar planos específicos - Ajuste
limitconforme 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âmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| plano_id | string | ID do plano a ser atualizado | Sim |
| nome | string | Novo nome do plano | Sim |
| valor | number | Novo valor em reais | Sim |
| duracao | number | Nova duração em dias | Sim |
| hora_disparo | string | Novo 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