From 47b0df1d1db0cfc4948bc6601ae79d528a2a1bc9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 6 Jan 2023 21:05:53 -0800 Subject: [PATCH] Logout Fixed (#11) --- backend/routes/auth/logout.ts | 36 ++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/backend/routes/auth/logout.ts b/backend/routes/auth/logout.ts index 9d91699..04e56c4 100644 --- a/backend/routes/auth/logout.ts +++ b/backend/routes/auth/logout.ts @@ -1,3 +1,4 @@ +// @ts-nocheck import User from "../../models/user.js"; import { Router } from "express"; import Dixon from "../../models/dixon.js"; @@ -11,10 +12,35 @@ router.patch("/", async (req, res) => { return res.status(400).send("User doesn't exist."); } - user.updatedAt = new Date(); - - // Delete all dixons associated with the user - await Dixon.deleteMany({ user: user._id }); + + let machine_ids = user.workouts[0].machines.map((machine: { machine_id: any; }) => machine.machine_id); + + let machines = await Dixon.find({ machine_id: { $in: machine_ids } }).exec(); + + for (let i = 0; i < machines.length; i++) { + machines[i].machine_status = true; + await machines[i].save(); + } + + user.workouts[0].workoutEndTimestamp = Date.now(); + + let workoutDuration = + user.workouts[0].workoutEndTimestamp - + user.workouts[0].workoutStartTimestamp; + + workoutDuration = (workoutDuration / 60000).toFixed(2); + + user.workouts[0].workoutDuration = workoutDuration; + + // possibly change this to handle sudden logout + user.workouts[0].machines.forEach((machine: { machine_status: boolean; }) => { + machine.machine_status = true; + }); + + user.savedWorkouts.push(user.workouts[0]); + user.workouts.pop(); + + user.logoutDateTime = Date.now(); await user.save(); @@ -26,4 +52,4 @@ router.patch("/", async (req, res) => { } }); -export default router; +export default router; \ No newline at end of file