import express from 'express'; import Todo from '../models/Todo.js'; const router = express.Router(); // Get todos for a specific date router.get('/', async (req, res) => { try { const { date } = req.query; let query = { userId: req.user._id }; if (date) { const startDate = new Date(date); const endDate = new Date(date); endDate.setDate(endDate.getDate() + 1); query.dueDate = { $gte: startDate, $lt: endDate }; } const todos = await Todo.find(query).sort({ createdAt: -1 }); res.json(todos); } catch (error) { res.status(500).json({ message: 'Server error', error: error.message }); } }); // Create new todo router.post('/', async (req, res) => { try { const { title, description, priority, dueDate } = req.body; const todo = new Todo({ title, description, priority, dueDate: new Date(dueDate), userId: req.user._id }); await todo.save(); res.status(201).json(todo); } catch (error) { res.status(500).json({ message: 'Server error', error: error.message }); } }); // Update todo router.put('/:id', async (req, res) => { try { const { id } = req.params; const updates = req.body; const todo = await Todo.findOneAndUpdate( { _id: id, userId: req.user._id }, updates, { new: true } ); if (!todo) { return res.status(404).json({ message: 'Todo not found' }); } res.json(todo); } catch (error) { res.status(500).json({ message: 'Server error', error: error.message }); } }); // Delete todo router.delete('/:id', async (req, res) => { try { const { id } = req.params; const todo = await Todo.findOneAndDelete({ _id: id, userId: req.user._id }); if (!todo) { return res.status(404).json({ message: 'Todo not found' }); } res.json({ message: 'Todo deleted successfully' }); } catch (error) { res.status(500).json({ message: 'Server error', error: error.message }); } }); export default router;