1+ const express = require ( 'express' ) ;
2+ const Joi = require ( 'joi' ) ;
3+ const exerciseRouter = express . Router ( ) ;
4+ const path = require ( 'path' ) ;
5+
6+ const {
7+ HTTP_STATUS_CODES
8+ } = require ( '../config' ) ;
9+ const {
10+ jwtPassportMiddleware
11+ } = require ( '../auth/auth.strategy' ) ;
12+ const {
13+ Exercise,
14+ ExerciseJoiSchema
15+ } = require ( './exercise.model' ) ;
16+
17+ //CREATE NEW Exercise
18+ exerciseRouter . post ( '/' , ( request , response ) => {
19+
20+ const newExercise = {
21+ exercise : request . body . exercise ,
22+ ex_type : request . body . ex_type ,
23+ bodypart : request . body . bodypart
24+ } ;
25+
26+ const validation = Joi . validate ( newExercise , ExerciseJoiSchema ) ;
27+ if ( validation . error ) {
28+
29+ return response . status ( HTTP_STATUS_CODES . BAD_REQUEST ) . json ( {
30+ error : validation . error
31+ } ) ;
32+ }
33+
34+ Exercise . create ( newExercise )
35+ . then ( createdExercise => {
36+ return response . status ( HTTP_STATUS_CODES . CREATED ) . json ( createdExercise . serialize ( ) ) ;
37+ } )
38+ . catch ( error => {
39+ return response . status ( HTTP_STATUS_CODES . INTERNAL_SERVER_ERROR ) . json ( error ) ;
40+ } )
41+ } )
42+
43+
44+ // RETRIEVE Exercises
45+ exerciseRouter . get ( '/' , ( request , response ) => {
46+
47+ Exercise . find ( )
48+ . then ( exercises => {
49+ return response . status ( HTTP_STATUS_CODES . OK ) . json (
50+ exercises . map ( exercise => exercise . serialize ( ) )
51+
52+ ) ;
53+ } )
54+ . catch ( error => {
55+ return response . status ( HTTP_STATUS_CODES . INTERNAL_SERVER_ERROR ) . json ( error ) ;
56+ } ) ;
57+ } ) ;
58+ // RETRIEVE ONE EXERCISE
59+ exerciseRouter . get ( '/:id' , ( request , response ) => {
60+
61+ Exercise . findById ( request . params . id )
62+ . then ( exercise => {
63+
64+
65+ return response . json ( exercise ) ;
66+
67+ } )
68+ . catch ( error => {
69+ return response . status ( HTTP_STATUS_CODES . INTERNAL_SERVER_ERROR ) . json ( error ) ;
70+ } ) ;
71+ } ) ;
72+
73+ module . exports = {
74+ exerciseRouter
75+ } ;
0 commit comments