1.1.0 • Published 12 months ago

elysium-api v1.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
12 months ago

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

📚 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
1.1.0

12 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago