From 3d933c96a6611efd22390357ff2e801428092890 Mon Sep 17 00:00:00 2001 From: Eddy Date: Mon, 11 May 2026 20:07:07 +0200 Subject: [PATCH] feat: integrate rate limiter into message handler --- src/messageHandler.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/messageHandler.js b/src/messageHandler.js index d57d9f7..789a84b 100644 --- a/src/messageHandler.js +++ b/src/messageHandler.js @@ -1,5 +1,6 @@ const { findDienst, getPngFilePaths } = require('./dienstService') const { sendTextMessage, sendImageMessage, notifyAdmin } = require('./whatsappApi') +const { checkLimit, increment, MAX_REQUESTS_PER_DAY } = require('./rateLimiter') const BOT_NAME = (process.env.BOT_NAME || 'EdGpt').toLowerCase() const ALLOWED_GROUP = process.env.ALLOWED_GROUP @@ -40,6 +41,15 @@ async function handleWebhook(payload) { const author = message.author if (!author) return + const limit = checkLimit(author) + if (!limit.allowed) { + await sendTextMessage(author, `Je hebt vandaag het maximum van ${limit.max} diensten bereikt. Probeer het morgen opnieuw.`) + console.log(`Rate limit reached for ${author} (${limit.count}/${limit.max})`) + return + } + + increment(author) + const dienst = findDienst(dienstnummer) if (!dienst) { await sendTextMessage(author, `Dienstnummer ${dienstnummer} niet gevonden.`)