intopays
Version:
Intopays - Gateway de integração bancária
59 lines (58 loc) • 2.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebhookService = void 0;
const crypto_1 = __importDefault(require("crypto"));
/**
* Serviço responsável pela lógica de negócios relacionada aos webhooks.
*/
class WebhookService {
/**
* Construtor da classe WebhookService.
* @param remote - Instância da classe WebhookRemote responsável pela comunicação com o servidor.
*/
constructor(remote) {
this.remote = remote;
}
/**
* Cria um novo webhook no sistema.
* @param data - Dados necessários para a criação do webhook, incluindo o endpoint.
* @returns O objeto Webhook criado.
*/
async create(data) {
const response = await this.remote.create(data);
return response.data;
}
/**
* Busca uma lista de webhooks com base no endpoint fornecido.
* @param data - Dados para filtrar os webhooks (opcional), incluindo o endpoint.
* @returns Lista de webhooks que atendem aos critérios fornecidos.
*/
async find(data) {
const response = await this.remote.find(data);
return response.data;
}
/**
* Deleta um webhook específico pelo seu ID.
* @param id - ID do webhook a ser deletado.
* @returns O objeto Webhook deletado.
*/
async delete(id) {
const response = await this.remote.delete(id);
return response.data;
}
/**
* Verifica a assinatura de um payload recebido de um webhook.
* @param payload - O payload que foi recebido pelo webhook.
* @param xWebhookSignature - A assinatura fornecida pelo webhook.
* @param signature - A chave secreta para verificar a assinatura.
* @returns Retorna `true` se a assinatura for válida, caso contrário `false`.
*/
verifySignature(payload, xWebhookSignature, signature) {
const computedSignature = crypto_1.default.createHmac("sha256", signature).update(JSON.stringify(payload)).digest("hex");
return xWebhookSignature == computedSignature;
}
}
exports.WebhookService = WebhookService;