Ver Fonte

Create documentation for the delete route.

Lee Morgan há 1 ano atrás
pai
commit
1260792e0a
3 ficheiros alterados com 27 adições e 2 exclusões
  1. 11 1
      controllers/workout.js
  2. 13 0
      documentation/data.js
  3. 3 1
      routes/workout.js

+ 11 - 1
controllers/workout.js

@@ -37,6 +37,15 @@ const updateWorkoutRoute = async (req, res, next)=>{
     }catch(e){next(e)}
 }
 
+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});
+        res.json({success: true});
+    }catch(e){next(e)}
+}
+
 /*
  Create a new Workout object
  @param {Object} - Body data from the request
@@ -128,5 +137,6 @@ export {
     createRoute,
     getRoute,
     addNoteRoute,
-    updateWorkoutRoute
+    updateWorkoutRoute,
+    deleteRoute
 }

+ 13 - 0
documentation/data.js

@@ -233,6 +233,19 @@ window.data = [
             desc: "Workout object"
         }]
     },
+    {
+        type: "route",
+        id: "deleteWorkout",
+        title: "Delete",
+        url: "DELETE /workout/:workoutId",
+        auth: true,
+        description: "Delete a workout and all sessions associated with the workout",
+        responseBody: [{
+            name: "success",
+            type: "true",
+            desc: "Always '{success: true}' if no error"
+        }]
+    },
     {
         type: "object",
         title: "Session",

+ 3 - 1
routes/workout.js

@@ -2,7 +2,8 @@ import {
     createRoute,
     getRoute,
     addNoteRoute,
-    updateWorkoutRoute
+    updateWorkoutRoute,
+    deleteRoute
 } from "../controllers/workout.js";
 
 import {userAuth} from "../auth.js";
@@ -12,4 +13,5 @@ export default (app)=>{
     app.get("/workout", userAuth, getRoute);
     app.put("/workout/:workoutId/note", userAuth, addNoteRoute);
     app.put("/workout/:workoutId", userAuth, updateWorkoutRoute);
+    app.delete("/workout/:workoutId", userAuth, deleteRoute);
 }