Esse ORM foi criado com o intuito de facilitar o consumo de dados da API oficial do IXC Provedor.
Essa biblioteca não faz parte das bibliotecas oficiais da IXCsoft e foi desenvolvida de forma independente e sem fins lucrativos.
npm install ixc-ormpnpm add ixc-ormyarn add ixc-ormPara configurar a comunicação da biblioteca com o seu IXC Provedor, será necessário adicionar as seguintes variáveis de ambiente a um arquivo .env, que esteja localizado no diretório raiz do seu projeto.
- IXC_ACCESS_TOKEN Um token de API gerado dentro do IXC Provedor.
- IXC_SERVER_DOMAIN O domínio do seu IXC Provedor.
IXC_ACCESS_TOKEN=conteúdo-do-token-gerado-dentro-do-ixc
IXC_SERVER_DOMAIN=www.dominio-do-seu-servidor-ixc.com.brVocê também poderá configurar para que o Docker carregue as variáveis, ao invés de carregá-las diretamente do arquivo .env, dessa forma:
services:
sua-aplicacao:
build:
context: .
dockerfile: Dockerfile
image: sua-imagem-docker:0.0.0
environment:
- IXC_ACCESS_TOKEN=${IXC_ACCESS_TOKEN}
- IXC_SERVER_DOMAIN=${IXC_SERVER_DOMAIN}
# Outras configurações do seu serviçoAs classes que representarão os diferentes tipos de registros no seu IXC Provedor, deverão herdar da classe IxcOrm, como no exemplo a seguir:
import { IxcOrm } from 'ixc-orm';
class Contrato extends IxcOrm {
constructor() {
super('cliente_contrato');
}
}Após instanciar um objeto com o tipo criado (Contrato, como no exemplo a cima), você poderá acessar os métodos de construção da query de busca, da seguinte forma:
import { IxcResponse, Sort } from 'ixc-orm';
const contrato = new Contrato();
IxcResponse response = await contrato
.where('data_ativacao')
.greaterThanEquals('2024-09-24')
.orderBy('data_ativacao', Sort.DESC)
.GET();
const contratos = response.registros(); Existem alguns endpoints que a API do IXC Provedor disponibiliza, a fim de "encurtar o caminho" para chegar até algumas informações ou executar determinadas ações. Como por exemplo, obter o arquivo PDF de uma fatura! Para isso, você não precisará se preocupar em criar uma classe Boleto que herde da classe IxcOrm, por exemplo, nem encadear chamadas de filtros. Basta fazer como no exemplo a seguir:
import { Recurso } from 'ixc-orm';
const id_contrato = 45852;
const response = await Recurso.desbloqueioDeConfianca({ id_contrato });| Método da biblioteca | Recurso IXC | Descrição |
|---|---|---|
| ativaContrato({ id_contrato }) | cliente_contrato_ativar_cliente | Ativa um contrato que esteja com o status de pré-contrato |
| desbloqueioDeConfianca({ id_contrato }) | desbloqueio_confianca | Solicita liberação de um cliente que já tenha sido desbloqueado |
| getArquivoBoleto({ id_fatura }) | get_boleto | Obtém uma string base64 com o conteúdo do PDF da fatura de um cliente |
| limparMAC({ id_login }) | radusuarios_25452 | Remove o endereço de MAC do login de um cliente |
| liberacaoTemporaria({ id_contrato }) | cliente_contrato_btn_lib_temp_24722 | Desbloqueia, por 72 horas, o contrato de um cliente bloqueado |
Contribuições são sempre bem-vindas!
Se você conhece uma maneira melhor de fazer algo, por favor, me avise!
Ou sinta-se a vontade para criar um novo PR!
At.te,
Felipe S. Carmo.