Ver Fonte

Workouts were not being deleted from db.

Lee Morgan há 1 ano atrás
pai
commit
547051d1e6

+ 3 - 2
controllers/workout.js

@@ -42,8 +42,9 @@ const deleteRoute = async (req, res, next)=>{
     try{
         const workout = await Workout.findOne({_id: req.params.workoutId});
         confirmOwnership(workout, res.locals.user);
-        Workout.deleteOne({_id: workout._id});
-        Session.deleteMany({workout: workout._id});
+        const wp = Workout.deleteOne({_id: workout._id});
+        const sp = Session.deleteMany({workout: workout._id});
+        await Promise.all([wp, sp]);
         res.json({success: true});
     }catch(e){next(e)}
 }

+ 8 - 2
views/js/pages/home.js

@@ -2,14 +2,14 @@ export default {
     rendered: false,
     workoutList: document.getElementById("workoutList"),
 
-    render: function(newWorkout){
+    render: function(update){
         if(!this.rendered){
             this.getWorkouts();
             this.buttons();
             this.rendered = true;
         }
 
-        if(newWorkout) this.addWorkout(newWorkout);
+        if(update) this.handleUpdate(update);
     },
 
     buttons: function(){
@@ -72,5 +72,11 @@ export default {
             changePage("workoutMenu", workout);
         });
         this.workoutList.appendChild(button);
+    },
+
+    handleUpdate: function(update){
+        switch(update.type){
+            case "new": this.addWorkout(update.workout); break;
+        }
     }
 }

+ 4 - 1
views/js/pages/newWorkout.js

@@ -81,7 +81,10 @@ export default {
                     notify("error", response.error.message);
                 }else{
                     notify("success", "New workout created");
-                    changePage("home", response);
+                    changePage("home", {
+                        type: "new",
+                        workout: response
+                    });
                 }
             })
             .catch((err)=>{

+ 23 - 0
views/js/pages/workoutMenu.js

@@ -137,5 +137,28 @@ export default {
         modal.appendChild(confirm);
 
         modal.style.display = "flex";
+    },
+
+    delete: function(workout){
+        fetch(`/workout/${workout.id}`, {
+            method: "DELETE",
+            headers: {
+                "Content-Type": "application/json"
+            }
+        })
+            .then(r=>r.json())
+            .then((response)=>{
+                if(response.error){
+                    notify("error", response.error.message);
+                }else{
+                    console.log("delete");
+                    //update workouts
+                }
+            })
+            .catch((err)=>{
+                notify("error", "ERROR: unable to delete the workout");
+            });
+
+        document.getElementById("resumeWorkoutContainer").style.display = "none";
     }
 }