diff --git a/src/events.ts b/src/events.ts index 019caf2..17d6e23 100644 --- a/src/events.ts +++ b/src/events.ts @@ -69,13 +69,14 @@ export const handleDeletedEvent = async event => { return db.queryAsync(query, [event.id, event]); }; -export async function sendEvent(event, to) { +export async function sendEvent(event, to, method = 'POST') { event.token = sha256(`${to}${serviceEventsSalt}`); event.secret = sha256(`${to}${serviceEventsSalt}`); const headerSecret = sha256(`${to}${process.env.SERVICE_EVENTS_SALT}`); + const url = to.replace('[PROPOSAL-ID]', event.id.split('/')[1]); try { - const res = await fetch(to, { - method: 'POST', + const res = await fetch(url, { + method, headers: { 'Content-Type': 'application/json', Authentication: headerSecret @@ -99,7 +100,7 @@ const sendEventToWebhookSubscribers = (event, subscribers) => { Promise.allSettled( subscribers .filter(subscriber => [event.space, '*'].includes(subscriber.space)) - .map(subscriber => sendEvent(event, subscriber.url)) + .map(subscriber => sendEvent(event, subscriber.url, subscriber.method)) ) .then(() => console.log('[events] Process event done')) .catch(e => capture(e)); diff --git a/src/helpers/schema.sql b/src/helpers/schema.sql index 0e10b90..3e75e8c 100644 --- a/src/helpers/schema.sql +++ b/src/helpers/schema.sql @@ -30,6 +30,7 @@ CREATE TABLE subscribers ( id INT NOT NULL AUTO_INCREMENT, owner VARCHAR(256) NOT NULL, url TEXT NOT NULL, + method VARCHAR(5) NOT NULL DEFAULT 'POST', space VARCHAR(256) NOT NULL, active INT(11) NOT NULL, created INT(11) NOT NULL,