my / src /handlers /registeredUserHandler.js
understanding's picture
Upload 13 files
14960b8 verified
// src/handlers/registeredUserHandler.js
const logger = require('../logger');
const whatsapp = require('../services/whatsappService');
const config = require('../config'); // Import config for delays
/**
* Handles incoming messages from already registered users. Uses whatsappService.
*/
async function handleRegisteredUser(jid, messageContent, dbUser) {
logger.debug({ jid, name: dbUser.name, msg: messageContent }, `[RegisteredUserHandler] Handling message.`);
const trimmedLowerCaseMsg = messageContent.trim().toLowerCase();
// 1. Check for "attendance" keyword
if (trimmedLowerCaseMsg.includes('attendance')) {
logger.info({ jid, name: dbUser.name }, `[RegisteredUserHandler] Attendance keyword detected.`);
// Use specific attendance delay
const delayOptions = { minDelay: config.attendanceMinDelay, maxDelay: config.attendanceMaxDelay };
await whatsapp.sendMessageWithTyping(jid, { text: `Okay ${dbUser.name}, preparing your attendance details... (PDF generation coming soon!)` }, delayOptions);
return;
}
// 2. Check for exact "hi" or "hello"
if (trimmedLowerCaseMsg === 'hi' || trimmedLowerCaseMsg === 'hello') {
logger.info({ jid, name: dbUser.name }, `[RegisteredUserHandler] Greeting triggered.`);
// Use default delay for greeting
await whatsapp.sendMessageWithTyping(jid, { text: `Hello ${dbUser.name}! You are already registered.` });
return;
}
// No action/reply for other messages
logger.debug({ jid, name: dbUser.name, msg: messageContent }, `[RegisteredUserHandler] No specific action triggered. No reply sent.`);
}
module.exports = { handleRegisteredUser };