All checks were successful
Build & Push Docker Image / build (push) Successful in 6m27s
24 lines
936 B
JavaScript
24 lines
936 B
JavaScript
import { getDb } from './database.js';
|
|
|
|
/**
|
|
* Create an in-app notification for a user.
|
|
* Non-fatal — exceptions are swallowed so that the main operation is never blocked.
|
|
*
|
|
* @param {number} userId - Recipient user ID
|
|
* @param {string} type - Notification type (room_share_added | room_share_removed | federation_invite_received)
|
|
* @param {string} title - Short title (e.g. room name or "from" address)
|
|
* @param {string|null} body - Optional longer message
|
|
* @param {string|null} link - Optional frontend path to navigate to when clicked
|
|
*/
|
|
export async function createNotification(userId, type, title, body = null, link = null) {
|
|
try {
|
|
const db = getDb();
|
|
await db.run(
|
|
'INSERT INTO notifications (user_id, type, title, body, link) VALUES (?, ?, ?, ?, ?)',
|
|
[userId, type, title, body, link],
|
|
);
|
|
} catch {
|
|
// Notifications are non-critical — never break main functionality
|
|
}
|
|
}
|