29 lines
910 B
JavaScript
29 lines
910 B
JavaScript
const pool = require('../config/db');
|
|
|
|
async function logActivity(reqOrUser, action, details = null) {
|
|
let userId, userPrenom, userNom, ip;
|
|
if (reqOrUser && reqOrUser.user) {
|
|
userId = reqOrUser.user.id;
|
|
userPrenom = reqOrUser.user.prenom;
|
|
userNom = reqOrUser.user.nom;
|
|
ip = reqOrUser.ip || reqOrUser.connection?.remoteAddress || null;
|
|
} else if (reqOrUser && reqOrUser.id) {
|
|
userId = reqOrUser.id;
|
|
userPrenom = reqOrUser.prenom || '';
|
|
userNom = reqOrUser.nom || '';
|
|
ip = null;
|
|
} else {
|
|
return;
|
|
}
|
|
try {
|
|
await pool.query(
|
|
'INSERT INTO activity_logs (user_id, user_prenom, user_nom, action, details, ip_address) VALUES (?, ?, ?, ?, ?, ?)',
|
|
[userId, userPrenom, userNom, action, details ? JSON.stringify(details) : null, ip]
|
|
);
|
|
} catch (err) {
|
|
console.error('Failed to log activity:', err.message);
|
|
}
|
|
}
|
|
|
|
module.exports = { logActivity };
|