51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
// ws-server/ws-compat.js
|
|
|
|
function createWsCompat({
|
|
broadcastPhotoEvent,
|
|
broadcastActivityEvent
|
|
}) {
|
|
async function broadcastToUser(user, payload) {
|
|
try {
|
|
if (!user || !payload) {
|
|
console.warn("⚠️ broadcastToUser chiamato senza user/payload");
|
|
return;
|
|
}
|
|
|
|
const entity = payload.entity || payload.typeEntity;
|
|
|
|
// Eventi attività
|
|
if (entity === "activity" || entity === "activities") {
|
|
if (typeof broadcastActivityEvent === "function") {
|
|
return await broadcastActivityEvent(user, payload);
|
|
}
|
|
|
|
console.warn("⚠️ broadcastActivityEvent non disponibile");
|
|
return;
|
|
}
|
|
|
|
// Default: eventi foto
|
|
if (typeof broadcastPhotoEvent === "function") {
|
|
return await broadcastPhotoEvent(user, payload);
|
|
}
|
|
|
|
console.warn("⚠️ broadcastPhotoEvent non disponibile");
|
|
} catch (err) {
|
|
console.warn("⚠️ broadcastToUser fallito:", err.message);
|
|
}
|
|
}
|
|
|
|
async function broadcastToAdmins(payload) {
|
|
try {
|
|
return await broadcastToUser("Admin", payload);
|
|
} catch (err) {
|
|
console.warn("⚠️ broadcastToAdmins fallito:", err.message);
|
|
}
|
|
}
|
|
|
|
return {
|
|
broadcastToUser,
|
|
broadcastToAdmins
|
|
};
|
|
}
|
|
|
|
module.exports = createWsCompat;
|