diff --git a/backend/routes/crud/update/add_machine.js b/backend/routes/crud/update/add_machine.ts similarity index 86% rename from backend/routes/crud/update/add_machine.js rename to backend/routes/crud/update/add_machine.ts index 3a1d6d6..bf96ed7 100644 --- a/backend/routes/crud/update/add_machine.js +++ b/backend/routes/crud/update/add_machine.ts @@ -1,16 +1,20 @@ -import { User } from "../../../models/user.js"; -import { Router } from "express"; -import { Dixon } from "../../../models/dixon.js"; +//@ts-nocheck +import Dixon from "../../../models/dixon.js"; +import User from "../../../models/user.js"; +import { Router, Request, Response } from "express"; const router = Router(); -router.post("/", async (req, res) => { +router.post("/", async (req: Request, res: Response) => { try { const { username, machine_id } = req.body; - let machine_type = null; - let machine_name = null; - let is_available = null; + console.log(req.body); + let machine_type: string; + let machine_name: any; + let is_available: boolean; - let dixon = await Dixon.findOne({ machine_id: machine_id }).exec(); + let dixon = await Dixon.findOne({ + machine_id: machine_id + }); if (!dixon) { return res.status(400).json({ msg: "Machine does not exist at Dixon" }); @@ -20,7 +24,7 @@ router.post("/", async (req, res) => { machine_name = dixon.machine_name; is_available = dixon.machine_status; - if (!is_available) { + if (is_available === false) { return res.status(400).json({ msg: "Machine is currently in use" }); } diff --git a/backend/routes/crud/update/rate_workout.js b/backend/routes/crud/update/rate_workout.ts similarity index 76% rename from backend/routes/crud/update/rate_workout.js rename to backend/routes/crud/update/rate_workout.ts index e8a9459..0e6aec4 100644 --- a/backend/routes/crud/update/rate_workout.js +++ b/backend/routes/crud/update/rate_workout.ts @@ -1,8 +1,9 @@ -import { User } from "../../../models/user.js"; -import { Router } from "express"; +//@ts-nocheck +import User from "../../../models/user.js"; +import { Router, Request, Response } from "express"; const router = Router(); -router.patch("/", async (req, res) => { +router.patch("/", async (req: Request, res: Response) => { const { username, effortLevel, tirednessLevel } = req.body; try { let user = await User.findOne({ username: username }); diff --git a/backend/routes/crud/update/update_cardio.js b/backend/routes/crud/update/update_cardio.ts similarity index 65% rename from backend/routes/crud/update/update_cardio.js rename to backend/routes/crud/update/update_cardio.ts index a009444..0d270f7 100644 --- a/backend/routes/crud/update/update_cardio.js +++ b/backend/routes/crud/update/update_cardio.ts @@ -1,8 +1,9 @@ -import { User } from "../../../models/user.js"; -import { Router } from "express"; +//@ts-nocheck +import User from "../../../models/user.js"; +import { Router, Request, Response } from "express"; const router = Router(); -router.put("/", async (req, res) => { +router.put("/", async (req: Request, res: Response) => { try { const { username, distance, timeSpent, machine_id } = req.body; @@ -15,7 +16,7 @@ router.put("/", async (req, res) => { let workout = user.workouts[user.workouts.length - 1]; let machine = workout.machines.find( - (machine) => machine.machine_id === machine_id + (machine: { machine_id: any; }) => machine.machine_id === machine_id ); if (!machine) { @@ -27,7 +28,7 @@ router.put("/", async (req, res) => { await user.save(); - res.status(200).json({ msg: "Cardio added successfully.", workout }); + res.status(200).json({ msg: "Cardio data added successfully.", workout }); } catch (error) { res.send(error); } diff --git a/backend/routes/crud/update/update_set.js b/backend/routes/crud/update/update_set.ts similarity index 62% rename from backend/routes/crud/update/update_set.js rename to backend/routes/crud/update/update_set.ts index cea0943..6a15b91 100644 --- a/backend/routes/crud/update/update_set.js +++ b/backend/routes/crud/update/update_set.ts @@ -1,8 +1,9 @@ -import { User } from "../../../models/user.js"; -import { Router } from "express"; +//@ts-nocheck +import User from "../../../models/user.js"; +import { Router, Request, Response } from "express"; const router = Router(); -router.post("/", async (req, res) => { +router.post("/", async (req: Request, res: Response) => { try { const { username, machine_id, sets } = req.body; @@ -14,15 +15,19 @@ router.post("/", async (req, res) => { let workout = user.workouts[user.workouts.length - 1]; + if (!workout) { + return res.status(400).json({ msg: "You have no current workout." }); + } + let machine = workout.machines.find( - (machine) => machine.machine_id === machine_id + (machine: { machine_id: any; }) => machine.machine_id === machine_id ); if (!machine) { return res.status(400).json({ msg: "Machine does not exist." }); } - sets.forEach((set) => { + sets.forEach((set: any) => { machine.sets.push(set); }); diff --git a/backend/routes/crud/update/update_status.js b/backend/routes/crud/update/update_status.ts similarity index 51% rename from backend/routes/crud/update/update_status.js rename to backend/routes/crud/update/update_status.ts index 28b66e0..6407227 100644 --- a/backend/routes/crud/update/update_status.js +++ b/backend/routes/crud/update/update_status.ts @@ -1,9 +1,11 @@ -import { User } from "../../../models/user.js"; -import { Dixon } from "../../../models/dixon.js"; -import { Router } from "express"; + +import User from "../../../models/user.js"; +import { Request, Response, Router } from "express"; +import Dixon from '../../../models/dixon.js'; +import { Machine } from '../../../models/workout.js'; const router = Router(); -router.put("/", async (req, res) => { +router.put("/", async (req : Request, res : Response) => { try { const { machine_id, username } = req.body; @@ -20,14 +22,19 @@ router.put("/", async (req, res) => { } const user_workout = user.workouts[0]; - const user_machine = user_workout.machines.find( - (machine) => machine.machine_id === machine_id - ); + + let user_machine = User.findOne({ username: username, "workouts.machines.machine_id": machine_id }); + + let machine_status = machine.machine_status; + + if (!user_machine) { + return res.status(400).json({ msg: "Machine does not exist." }); + } - if (user_machine.machine_status === false) { - user_machine.machine_status = true; + if (machine_status === false) { + machine_status = true; } else { - user_machine.machine_status = false; + machine_status = false; } await user.save(); @@ -39,7 +46,7 @@ router.put("/", async (req, res) => { machines: machines }); - machine.machine_status = user_machine.machine_status; + machine.machine_status = machine_status; await machine.save(); } catch (error) { res.send(error); diff --git a/backend/routes/crud/update/update_user.js b/backend/routes/crud/update/update_user.ts similarity index 67% rename from backend/routes/crud/update/update_user.js rename to backend/routes/crud/update/update_user.ts index d915a3f..57031a8 100644 --- a/backend/routes/crud/update/update_user.js +++ b/backend/routes/crud/update/update_user.ts @@ -1,8 +1,9 @@ -import { User } from "../../../models/user.js"; -import { Router } from "express"; +// @ts-nocheck +import User from "../../../models/user.js"; +import { Router, Request, Response } from "express"; const router = Router(); -router.put("/", async (req, res) => { +router.put("/", async (req: Request, res: Response) => { try { const { old_username, @@ -39,9 +40,18 @@ router.put("/", async (req, res) => { old_user.lastName = lastName; old_user.save(); + old_user.workouts.forEach(async (workout) => { + workout.username = username; + workout.machines.forEach(async (machine: { username: any; save: () => any; }) => { + machine.username = username; + await machine.save(); + }); + workout.save(); + }); + old_user.savedWorkouts.forEach(async (workout) => { workout.username = username; - workout.machines.forEach(async (machine) => { + workout.machines.forEach(async (machine: { username: any; save: () => any; }) => { machine.username = username; await machine.save(); }); @@ -53,6 +63,12 @@ router.put("/", async (req, res) => { user: old_user }); } else { + if (!user) { + return res.status(400).json({ + msg: "User does not exist" + }); + } + user.weight = weight; user.height = height; user.BMI = BMI;