mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
chore: relocate backend into apps/api ahead of monorepo merge
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
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 } = {}) {
|
||||
const numericId = entityId !== null ? Number(entityId) : null;
|
||||
mdl_UserActivity.create({
|
||||
user_id: userId,
|
||||
action,
|
||||
entity_type: entityType,
|
||||
entity_id: Number.isFinite(numericId) ? numericId : null,
|
||||
session_id: sessionId,
|
||||
details,
|
||||
}).catch((err) => console.error('[USER_ACTIVITY] Failed to log:', action, err.message));
|
||||
}
|
||||
|
||||
module.exports = logActivity;
|
||||
Reference in New Issue
Block a user