const router = require('express').Router(); const { v4: uuidv4 } = require('uuid'); const workout1 = { id: uuidv4(), title: "Toned upper body", exercises: [ { title: "Push ups", repsOrDuration: 12, isTimeBased: false }, { title: "Plank", repsOrDuration: 4, isTimeBased: true }, { title: "Bicep curl", repsOrDuration: 12, isTimeBased: false, weight: 5 }, { title: "Bicep curl", repsOrDuration: 12, isTimeBased: false, weight: 5 }, { title: "Bicep curl", repsOrDuration: 12, isTimeBased: false, weight: 5 }, { title: "Bicep curl", repsOrDuration: 12, isTimeBased: false, weight: 5 }, ], tags: ['Weights', 'Arms', 'Abs', 'Chest', 'Back'] }; const workout2 = { id: uuidv4(), title: "Tom Platz's legs", exercises: [ { title: "Squats", repsOrDuration: 12, isTimeBased: false, weight: 40 }, { title: "Leg Press", repsOrDuration: 4, isTimeBased: false, weight: 65 }, { title: "Lunges", repsOrDuration: 2, isTimeBased: true } ], tags: ['Weights', 'Legs'] }; const workout3 = { id: uuidv4(), title: "HIIT", exercises: [ { title: "Jumping rope", repsOrDuration: 100, isTimeBased: false }, { title: "Burpees", repsOrDuration: 3, isTimeBased: true }, { title: "Jumping Jacks", repsOrDuration: 50, isTimeBased: false } ], tags: ['Cardio'] } const savedWorkouts = [workout1, workout3]; const trainingWorkouts = [workout2]; router.post('/workout', (req, res) => { const newWorkout = { ...req.body, id: uuidv4() }; savedWorkouts.push(newWorkout); res.status(201).json(newWorkout); }); router.get('/workouts', (req, res) => { res.json(savedWorkouts); }); router.post('/training/workout', (req, res) => { const newWorkout = { ...req.body, id: uuidv4() }; trainingWorkouts.push(newWorkout); res.status(201).json(newWorkout); }); const trainings = [{ id: uuidv4(), calories: 450, date: new Date("Thu Oct 03 2024 10:05:24 GMT+0300 (Moscow Standard Time)"), emoji: "fuzzy", hours: 1, minutes: 30, isWorkoutSaved: true, workout: workout1.id }]; const days = [ new Date("Thu Oct 03 2024 10:05:24 GMT+0300 (Moscow Standard Time)"), ]; router.post('/training', (req, res) => { const newTraining = { ...req.body, id: uuidv4() }; trainings.push(newTraining); days.push(newTraining.date); res.status(201).json(newTraining); }); router.get('/training', (req, res) => { const { date } = req.query; if (!date) { return res.status(400).json({ message: 'Date query parameter is required' }); } const formattedDate = new Date(date); const result = trainings.find(t => new Date(t.date).toDateString() === formattedDate.toDateString()); if (result) { res.json(result); } else { res.status(404).json({ message: 'Training not found for the specified date' }); } }); router.get('/training/workout', (req, res) => { const { id } = req.query; if (!id) { return res.status(400).json({ message: 'Id query parameter is required' }); } const result = trainingWorkouts.find(w => w.id === id); if (result) { res.json(result); } else { res.status(404).json({ message: 'Training with such workout not found' }); } }); router.get('/workout', (req, res) => { const { id } = req.query; if (!id) { return res.status(400).json({ message: 'Id query parameter is required' }); } const result = savedWorkouts.find(w => w.id === id); if (result) { res.json(result); } else { res.status(404).json({ message: 'Workout not found' }); } }); router.get('/trainings', (req, res) => { res.json(trainings); }); router.get('/days', (req, res) => { res.json(days); }) module.exports = router;