import bindings from 'bindings'; import { ILibrary, IParametrosConfiguracao, IParametrosIniciarFuncao, IParametrosContinuarFuncao, IParametrosFinalizarFuncao, IResultadoContinuarFuncao, } from './types'; import { createPromise } from './utils'; const library: ILibrary = bindings('node-sitef'); export default class SiTef { constructor(path: string) { if (!path) { throw new Error('Informe o caminho para as DLLs do SiTef.'); } const result = library.carregarDLL(path); if (!result) { throw new Error('Não foi possível carregar as DLLs do SiTef.'); } } configurar(parametros: IParametrosConfiguracao): Promise { const { ip, loja, terminal, reservado } = parametros; return createPromise(() => { return library.configuraIntSiTefInterativo( ip, loja, terminal, reservado || '' ); }); } verificarPresenca(): Promise { return createPromise(() => { return library.verificaPresencaPinPad(); }); } escreverMensagem(mensagem: string): Promise { return createPromise(() => { return library.escreveMensagemPermanentePinPad(mensagem); }); } leSimNaoPinPad(mensagem: string): Promise { return createPromise(() => { return library.leSimNaoPinPad(mensagem); }); } iniciarFuncao(parametros: IParametrosIniciarFuncao): Promise { return createPromise(() => { return library.iniciaFuncaoSiTefInterativo( parametros.funcao, parametros.valor || '', parametros.cupomFiscal, parametros.dataFiscal, parametros.horaFiscal, parametros.operador, parametros.parametros || '' ); }); } continuarFuncao( parametros: IParametrosContinuarFuncao ): Promise { return createPromise(() => { return library.continuaFuncaoSiTefInterativo( parametros.comando, parametros.tipoCampo, parametros.tamMinimo, parametros.tamMaximo, parametros.buffer, parametros.tamanhoBuffer, parametros.continua ); }); } finalizarFuncao(parametros: IParametrosFinalizarFuncao): Promise { return createPromise(() => { return library.finalizaFuncaoSiTefInterativo( parametros.confirma, parametros.cupomFiscal, parametros.dataFiscal, parametros.horaFiscal, parametros.parametros ); }); } }