1.1.0 • Published 1 year ago

elysium-api v1.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year 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

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago