Enhance diary member activity management by adding validation and logging in addMembersToActivity function. Implement checks for participantIds to ensure they are an array, and log relevant information for better debugging. Update DiaryDateActivityService to improve error handling and logging for group activity associations. Modify frontend DiaryView to support group activity member assignment, including new methods for toggling and assigning members to group activities, enhancing user experience and functionality.

This commit is contained in:
Torsten Schulz (local)
2025-10-16 22:20:51 +02:00
parent 24aaa9c150
commit 01bbb85485
5 changed files with 190 additions and 6 deletions

View File

@@ -19,20 +19,44 @@ export const addMembersToActivity = async (req, res) => {
const { authcode: userToken } = req.headers;
const { clubId, diaryDateActivityId } = req.params;
const { participantIds } = req.body; // array of participant ids
console.log('[addMembersToActivity] Request:', {
clubId,
diaryDateActivityId,
participantIds,
bodyKeys: Object.keys(req.body)
});
await checkAccess(userToken, clubId);
if (!participantIds || !Array.isArray(participantIds)) {
console.error('[addMembersToActivity] Invalid participantIds:', participantIds);
return res.status(400).json({ error: 'participantIds must be an array' });
}
const validParticipants = await Participant.findAll({ where: { id: participantIds } });
console.log('[addMembersToActivity] Valid participants found:', validParticipants.length);
const validIds = new Set(validParticipants.map(p => p.id));
const created = [];
for (const pid of participantIds) {
if (!validIds.has(pid)) continue;
if (!validIds.has(pid)) {
console.log('[addMembersToActivity] Participant not found:', pid);
continue;
}
const existing = await DiaryMemberActivity.findOne({ where: { diaryDateActivityId, participantId: pid } });
if (!existing) {
const rec = await DiaryMemberActivity.create({ diaryDateActivityId, participantId: pid });
console.log('[addMembersToActivity] Created:', rec.id);
created.push(rec);
} else {
console.log('[addMembersToActivity] Already exists:', pid);
}
}
console.log('[addMembersToActivity] Success, created:', created.length);
res.status(201).json(created);
} catch (e) {
console.error('[addMembersToActivity] Error:', e);
res.status(500).json({ error: 'Error adding members to activity' });
}
};