const express = require('express'); const fs = require('fs'); const path = require('path'); const router = express.Router(); const authMiddleware = require('../../../Middlewares/authMiddleware'); const { ErrorLogger } = require('../../../config/logs'); // Quitter un dossier partagé router.post('/leave', authMiddleware, async (req, res) => { try { const userId = req.userData.name; const { folderName, folderOwner } = req.body; if (!folderName || !folderOwner) { return res.status(400).json({ error: 'Missing folderName or folderOwner' }); } const collabPath = path.join(__dirname, '../../../data', 'collaboration.json'); let collabData = JSON.parse(fs.readFileSync(collabPath, 'utf8')); const itemId = `folder-${folderName}`; if (!collabData.activeFiles[itemId]) { return res.status(404).json({ error: 'Shared folder not found' }); } // Retirer l'utilisateur de la liste des collaborateurs collabData.activeFiles[itemId].activeUsers = collabData.activeFiles[itemId].activeUsers.filter(u => u.id !== userId); // Si plus aucun utilisateur, on peut supprimer la collaboration if (collabData.activeFiles[itemId].activeUsers.length === 0) { delete collabData.activeFiles[itemId]; } fs.writeFileSync(collabPath, JSON.stringify(collabData, null, 2), 'utf8'); return res.json({ success: true }); } catch (error) { ErrorLogger.error('Error leaving shared folder:', error); return res.status(500).json({ error: 'Erreur lors du quit du dossier partagé.' }); } }); module.exports = router;