Skip to content

Commit

Permalink
Added appropriate status codes to routes
Browse files Browse the repository at this point in the history
  • Loading branch information
SamsonPN committed Nov 28, 2019
1 parent 89d650e commit 4bf3c5c
Show file tree
Hide file tree
Showing 21 changed files with 491 additions and 117 deletions.
2 changes: 1 addition & 1 deletion Routers/AuthRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Auth.get('/google/redirect', passport.authenticate('google'), (req, res) => {
})

Auth.get('/facebook', passport.authenticate('facebook', {
scope: ['user_friends']
scope: 'user_friends'
}));

Auth.get('/facebook/redirect', passport.authenticate('facebook'), (req, res) => {
Expand Down
13 changes: 13 additions & 0 deletions Routers/ExportRouters.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const authRouter = require('./AuthRouter');
const workoutRouter = require('./WorkoutRouter');
const nutritionRouter = require('./NutritionRouter');
const userRouter = require('./UserRouter');
const storyRouter = require('./StoryRouter');

module.exports = {
authRouter,
workoutRouter,
nutritionRouter,
userRouter,
storyRouter
}
47 changes: 35 additions & 12 deletions Routers/NutritionRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
const {FDC_Key} = require('../src/API/API_Key');
const nutrition = require('express').Router();
const request = require('request');

// grabs all food from the FoodData Central API
nutrition.get('/searchFDC/:search', (req, res) => {
let uri = `https://api.nal.usda.gov/fdc/v1/search/?api_key=${FDC_Key}`;
Expand All @@ -13,7 +14,7 @@ nutrition.get('/searchFDC/:search', (req, res) => {
'Content-Type': 'application/json'
},
json: true
}, function(error, response, body){
}, (error, response, body) => {
res.json(body)
})
});
Expand All @@ -26,7 +27,7 @@ nutrition.get('/detailsFDC/:id', (req, res) => {
headers:{
'Content-Type': 'application/json'
},
}, function(error, response, body){
}, (error, response, body) => {
res.json(body)
})
});
Expand All @@ -41,7 +42,9 @@ nutrition.get('/getFood/:date', (req,res) => {
{ projection : { _id: 0, type: 0, date: 0, user: 0 } }
)
.then(result => {res.json(result)})
.catch(err => console.error(`Failed to find documents ${err}`))
.catch( err => {
res.status(404).send({err})
})
})

nutrition.get('/getRecents', (req, res) => {
Expand All @@ -62,7 +65,10 @@ nutrition.get('/getRecents', (req, res) => {
.sort({ _id: -1})
.limit(1)
.toArray()
.then(result => res.json(result));
.then(result => res.json(result))
.catch( err => {
res.status(404).send({err})
})
})

// inserts all recorded food items into the database
Expand All @@ -72,12 +78,18 @@ nutrition.post('/createNutritionDocument', (req, res) => {
let {user} = req.session.passport;
nutrition.insertOne({
user,
date: req.body.date,
date,
Breakfast: [],
Lunch: [],
Dinner: [],
Snacks: []
})
.then(result => {
res.status(201).send(result.result)
})
.catch( err => {
res.status(500).send({err})
})
res.end()
})

Expand All @@ -89,8 +101,12 @@ nutrition.post('/insertFood', (req,res) => {
{ date, user },
{ $addToSet: { [meal]: { $each: FoodAdded } } }
)
.catch(err => console.error(`Failed to insert item: ${err}`))
res.end()
.then(result => {
res.status(201).send(result.result)
})
.catch(err => {
res.status(500).send({ err })
})
})

nutrition.post('/updateServings', (req, res) => {
Expand All @@ -101,8 +117,12 @@ nutrition.post('/updateServings', (req, res) => {
{ date, [meal + ".ndbno"] : ndbno, user },
{ $set: { [meal + ".$.servings"] : servings } }
)
.catch(err => console.error(err))
res.end()
.then(result => {
res.status(201).send(result.result)
})
.catch( err => {
res.status(500).send({err})
})
})

// deletes any food items from the database that the user deleted in the client
Expand All @@ -114,9 +134,12 @@ nutrition.delete('/deleteFood', (req,res) => {
{ date, user },
{ $pull: { [meal] : { ndbno } } }
)
.catch(err => console.error(err))

res.end()
.then(result => {
res.status(201).send(result.result)
})
.catch( err => {
res.status(500).send({err})
})
})

module.exports = nutrition;
24 changes: 16 additions & 8 deletions Routers/StoryRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,14 @@ story.get('/getStories', (req,res) => {
let {stories} = req.app.locals;
stories.find()
.sort( { date: -1, _id: -1} )
.limit(50)
.toArray()
.then(items => { res.json(items) } )
.catch( err => console.error(err))
.then(items => {
res.json(items)
})
.catch( err => {
res.status(404).send({err})
})
})

story.post('/uploadCloudinary', (req, res) => {
Expand Down Expand Up @@ -97,9 +102,6 @@ story.post('/editCloudinary', (req, res) => {
}
}
)
.catch(err => {
res.status(500).send({err})
})
res.status(201).send({result})
})
.catch(err => {
Expand All @@ -115,21 +117,27 @@ story.post('/editText', (req, res) => {
{ _id: ObjectID(_id) },
{$set: { text } }
)
.then(() => {
res.status(200).send(`Update successful for story: ${_id}`);
})
.catch(err => {
res.status(500).send({ err })
})
res.status(200).send(`Update successful for story: ${_id}`);
})

story.delete('/deleteStory', (req, res) => {
let {stories} = req.app.locals;
let { story_id, public_id, resource_type } = req.query;
stories.deleteOne( { _id : ObjectID(story_id) } )
.catch(err => console.error(err))
.then(() => {
res.sendStatus(204)
})
.catch( err => {
res.status(500).send({err})
})
if(public_id){
CloudinaryDestroy(public_id, resource_type);
}
res.end()
})

module.exports = story;
43 changes: 34 additions & 9 deletions Routers/UserRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ user.get('/getGoals', (req,res) => {
.then(result => {
res.json(result)
})
.catch(err => {
res.status(500).send({err})
})
})

//get favorites!
Expand All @@ -20,7 +23,9 @@ user.get('/getFavorites', (req,res) => {
req.query
)
.then(result => res.json(result))
.catch(err => console.error(err))
.catch(err => {
res.status(500).send({err})
})
})

user.get('/getUserInfo', (req, res) => {
Expand All @@ -29,7 +34,10 @@ user.get('/getUserInfo', (req, res) => {
users.findOne(
{ _id: ObjectID(user._id)}
)
.then(user => res.json(user));
.then(user => res.json(user))
.catch(err => {
res.status(500).send({err})
})
})

// updates the users' goals such as weight loss goals and macronutrient goals
Expand All @@ -40,8 +48,12 @@ user.post('/updateMacroGoals', (req,res) => {
{ $set: {macros: req.body} },
{upsert : true}
)
.catch(err => console.error(error))
res.end()
.then(result => {
res.status(200).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
})

user.post('/updateUserStats', (req,res) => {
Expand All @@ -52,8 +64,12 @@ user.post('/updateUserStats', (req,res) => {
{ $set: {Calories, userStats } },
{upsert : true}
)
.catch(err => console.error(error))
res.end()
.then(result => {
res.status(200).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
})

user.post('/insertFavorites', (req, res) => {
Expand All @@ -64,8 +80,12 @@ user.post('/insertFavorites', (req, res) => {
{ $addToSet: { [field]: item } },
{ upsert: true }
)
.catch(err => console.error(err))
res.end();
.then(result => {
res.status(201).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
})

user.post('/deleteFavorites', (req, res) => {
Expand All @@ -75,7 +95,12 @@ user.post('/deleteFavorites', (req, res) => {
{ _id: ObjectID(req.user._id) },
{ $pull: { [field] : item } }
)
.catch(err => console.error(err))
.then(() => {
res.status(200).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
res.end();
})

Expand Down
46 changes: 35 additions & 11 deletions Routers/WorkoutRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ workout.get('/getExerciseTypes', (req,res) => {
let {exerciseList} = req.app.locals;
exerciseList.findOne( { "record" : "Exercise Types"} )
.then(result => res.json(result))
.catch( err => {
res.status(404).send({err})
})
})

// returns all exercises categorized by Muscle and Exercise tabs
Expand All @@ -16,8 +19,10 @@ workout.get('/getExerciseByCategory', (req,res) => {
.sort( { "name": 1} )
.toArray()
.then(items => {res.json(items)})
.catch( err => console.error(err))
})
.catch( err => {
res.status(404).send({err})
})
})

//used by addexerciseview to return exercises via search bar
workout.get('/getExerciseBySearch/:search', (req, res) => {
Expand All @@ -28,8 +33,10 @@ workout.get('/getExerciseBySearch/:search', (req, res) => {
.sort( { name: 1} )
.toArray()
.then(items => {res.json(items)})
.catch( err => console.error(err))
})
.catch( err => {
res.status(404).send({err})
})
})

// used by workoutcontext.js to fill the Routine tab
workout.get('/getRoutines', (req, res) => {
Expand All @@ -40,7 +47,9 @@ workout.get('/getRoutines', (req, res) => {
.sort( { name : 1 } )
.toArray()
.then(items => res.json(items))
.catch(err => console.error(err))
.catch( err => {
res.status(404).send({err})
})
})

//used by workoutcontext.js to fill the Saved tab with workouts
Expand Down Expand Up @@ -77,7 +86,9 @@ workout.get('/getWorkoutById', (req, res) => {
workouts.findOne(
{ _id: ObjectID(req.query._id) } )
.then(result => res.json(result))
.catch(err => console.error(err))
.catch(err => {
res.status(404).send({err})
})
})

//used to update the exercise list for routines/workouts
Expand All @@ -90,8 +101,12 @@ workout.post('/updateExercises', (req,res) => {
{$set: { name, exercises } },
{upsert: true}
)
.catch(err => console.error(err))
res.end();
.then(result => {
res.status(200).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
})

// saves the workouts to the workout collection
Expand All @@ -104,7 +119,12 @@ workout.put('/saveWorkout', (req, res) => {
{$set: {name, date, user, exercises } },
{upsert: true}
)
res.end();
.then(result => {
res.status(200).send(result.result)
})
.catch(err => {
res.status(500).send({err})
})
})

//deletes the current routine shown from either the routines or workout collections
Expand All @@ -115,8 +135,12 @@ workout.delete('/deleteCurrentRoutine/:collectionName/:id', (req, res) => {
collection.deleteOne(
{ _id: ObjectID(req.params.id) }
)
.catch(err => console.error(err))
res.end();
.then(() => {
res.sendStatus(204)
})
.catch(err => {
res.status(500).send({err})
})
})

module.exports = workout;
7 changes: 7 additions & 0 deletions config/ExportConfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const keys = require('./keys');
const passportSetup = require('./passport-setup');

module.exports = {
keys,
passportSetup
}
Loading

0 comments on commit 4bf3c5c

Please sign in to comment.