1- import express from "express" ;
2- import {
3- createRoutine ,
4- deleteRoutine ,
5- duplicateRoutine ,
6- getRoutines ,
7- updateRoutine ,
8- } from "../controllers/routineController.js" ;
9- import { authMiddleware } from "../middlewares/authMiddleware.js" ;
10- import mongoose from "mongoose" ;
11- import asyncHandler from "../middlewares/asyncHandler.js" ;
12-
13- // router object for routine
14- export const routineRouter = express . Router ( ) ;
15-
16- //New middleware to prevent invalid IDs before controller execution.
17- const validateObjectId = ( req , res , next ) => {
18- if ( ! mongoose . Types . ObjectId . isValid ( req . params . id ) ) {
19- return res . status ( 400 ) . json ( {
20- success : false ,
21- message : "Invalid routine ID" ,
22- } ) ;
23- }
24- next ( ) ;
25- } ;
26-
27- // Route for creating routine
28- routineRouter . post ( "/" , authMiddleware , asyncHandler ( createRoutine ) ) ;
29-
30- // Route for fetching routines
31- routineRouter . get ( "/" , authMiddleware , asyncHandler ( getRoutines ) ) ;
32-
33- // Route for duplicating routine
34- routineRouter . post ( "/:id/duplicate" , authMiddleware , duplicateRoutine ) ;
35-
36- // Route for updating routine
37- routineRouter . put ( "/:id" , authMiddleware , validateObjectId , asyncHandler ( updateRoutine ) ) ;
38-
39- // Route for deleting routine
40- routineRouter . delete ( "/:id" , authMiddleware , validateObjectId , asyncHandler ( deleteRoutine ) ) ;
1+ import express from "express" ;
2+ import {
3+ createRoutine ,
4+ deleteRoutine ,
5+ duplicateRoutine ,
6+ getRoutines ,
7+ updateRoutine ,
8+ getPublicRoutine ,
9+ } from "../controllers/routineController.js" ;
10+ import { authMiddleware } from "../middlewares/authMiddleware.js" ;
11+ import mongoose from "mongoose" ;
12+ import asyncHandler from "../middlewares/asyncHandler.js" ;
13+
14+ // router object for routine
15+ export const routineRouter = express . Router ( ) ;
16+
17+ //New middleware to prevent invalid IDs before controller execution.
18+ const validateObjectId = ( req , res , next ) => {
19+ if ( ! mongoose . Types . ObjectId . isValid ( req . params . id ) ) {
20+ return res . status ( 400 ) . json ( {
21+ success : false ,
22+ message : "Invalid routine ID" ,
23+ } ) ;
24+ }
25+ next ( ) ;
26+ } ;
27+
28+ // Route for creating routine
29+ routineRouter . post ( "/" , authMiddleware , asyncHandler ( createRoutine ) ) ;
30+
31+ // Route for fetching routines
32+ routineRouter . get ( "/" , authMiddleware , asyncHandler ( getRoutines ) ) ;
33+
34+ // Route for duplicating routine
35+ routineRouter . post ( "/:id/duplicate" , authMiddleware , duplicateRoutine ) ;
36+
37+ // Route for updating routine
38+ routineRouter . put ( "/:id" , authMiddleware , validateObjectId , asyncHandler ( updateRoutine ) ) ;
39+
40+ // Route for deleting routine
41+ routineRouter . delete ( "/:id" , authMiddleware , validateObjectId , asyncHandler ( deleteRoutine ) ) ;
42+
43+ // Route for fetching public routine (unauthenticated)
44+ routineRouter . get ( "/public/:id" , validateObjectId , asyncHandler ( getPublicRoutine ) ) ;
0 commit comments