From 468e1721b37a99a1a195784b89d3cc00a986ef91 Mon Sep 17 00:00:00 2001 From: SKINMAKER Date: Sun, 16 Apr 2023 15:57:49 +0900 Subject: [PATCH] feat/refactor webhook payload (#556) * feat: move ids into data prop * feat: add timstamp on webhook payload --- pages/api/v2/bots/[id]/stats.ts | 5 +++-- pages/api/v2/bots/[id]/vote.ts | 5 +++-- pages/api/v2/servers/[id]/vote.ts | 7 ++++--- utils/Webhook.ts | 15 ++++++++++----- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/pages/api/v2/bots/[id]/stats.ts b/pages/api/v2/bots/[id]/stats.ts index c3a5569..85c67b4 100644 --- a/pages/api/v2/bots/[id]/stats.ts +++ b/pages/api/v2/bots/[id]/stats.ts @@ -61,12 +61,13 @@ const BotStats = RequestHandler().post(limiter) if (validated.servers && botInfo.servers !== validated.servers) { sendWebhook(botInfo, { type: 'bot', - botId: botInfo.id, data: { + botId: botInfo.id, type: WebhookType.ServerCountChange, before: botInfo.servers, after: validated.servers, - } + }, + timestamp: Date.now() }) } await getStatsLoggingChannel().send({ diff --git a/pages/api/v2/bots/[id]/vote.ts b/pages/api/v2/bots/[id]/vote.ts index 6f1361e..c194983 100644 --- a/pages/api/v2/bots/[id]/vote.ts +++ b/pages/api/v2/bots/[id]/vote.ts @@ -37,13 +37,14 @@ const BotVote = RequestHandler() else if(vote === true) { sendWebhook(bot, { type: 'bot', - botId: bot.id, data: { + botId: bot.id, type: WebhookType.HeartChange, before: bot.votes, after: bot.votes + 1, userId: user - } + }, + timestamp: Date.now() }) return ResponseWrapper(res, { code: 200 }) } diff --git a/pages/api/v2/servers/[id]/vote.ts b/pages/api/v2/servers/[id]/vote.ts index 224414d..b0f2d46 100644 --- a/pages/api/v2/servers/[id]/vote.ts +++ b/pages/api/v2/servers/[id]/vote.ts @@ -36,14 +36,15 @@ const ServerVote = RequestHandler() if(vote === null) return ResponseWrapper(res, { code: 401 }) else if(vote === true) { sendWebhook(server, { - type: 'server', - guildId: server.id, + type: 'server', data: { + guildId: server.id, type: WebhookType.HeartChange, before: server.votes, after: server.votes + 1, userId: user - } + }, + timestamp: Date.now() }) return ResponseWrapper(res, { code: 200 }) } diff --git a/utils/Webhook.ts b/utils/Webhook.ts index f668623..3da4175 100644 --- a/utils/Webhook.ts +++ b/utils/Webhook.ts @@ -219,20 +219,25 @@ function buildEmbed({payload, target}: {payload: WebhookPayload, target: Bot | S } -type WebhookPayload = BotWebhookPayload | ServerWebhookPayload +type WebhookPayload = (BotWebhookPayload | ServerWebhookPayload) & { + timestamp: number +} -type ServerWebhookData = HeartChange -type BotWebhookData = HeartChange | ServerCountChange +type ServerWebhookData = HeartChange & { + guildId: Snowflake +} + +type BotWebhookData = (HeartChange | ServerCountChange) & { + botId: Snowflake +} type ServerWebhookPayload = { type: 'server', - guildId: Snowflake, data: ServerWebhookData } type BotWebhookPayload = { type: 'bot', - botId: Snowflake, data: BotWebhookData }