mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
26 lines
922 B
JavaScript
26 lines
922 B
JavaScript
const mdl_UserActivity = require('../models/users/user_activity.mdl');
|
|
|
|
/**
|
|
* Fire-and-forget activity logger. Never throws — failures are console-logged only.
|
|
*
|
|
* @param {number} userId
|
|
* @param {string} action — e.g. 'login', 'submit_task', 'deactivate_user'
|
|
* @param {Object} [opts]
|
|
* @param {string} [opts.entityType] — e.g. 'user', 'task', 'lesson'
|
|
* @param {number} [opts.entityId]
|
|
* @param {number} [opts.sessionId]
|
|
* @param {Object} [opts.details] — free-form JSONB context
|
|
*/
|
|
function logActivity(userId, action, { entityType = null, entityId = null, sessionId = null, details = null } = {}) {
|
|
mdl_UserActivity.create({
|
|
user_id: userId,
|
|
action,
|
|
entity_type: entityType,
|
|
entity_id: entityId,
|
|
session_id: sessionId,
|
|
details,
|
|
}).catch((err) => console.error('[USER_ACTIVITY] Failed to log:', action, err.message));
|
|
}
|
|
|
|
module.exports = logActivity;
|