UNPKG

intopays

Version:

Intopays - Gateway de integração bancária

59 lines (58 loc) 2.24 kB
"use strict"; 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;