Skip to content

Commit 88df9e2

Browse files
committed
Remove get activities route, add error handling for invalid gpx files
1 parent 0d15e83 commit 88df9e2

5 files changed

Lines changed: 6 additions & 8 deletions

File tree

backend/controllers/activities_controller.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ const uploadActivity = async(req, res, next) => {
6464
}
6565
res.json(savedActivities)
6666
} catch(err) {
67-
next(err)
67+
return next(err)
6868
}
6969
})
7070
form.parse(req)

backend/repositories/activities_repo.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ const findActivity = async(id) => {
88
return await Activity.findById(id)
99
}
1010

11-
const getActivities = async() => {
12-
return await Activity.find({})
13-
}
14-
1511
const saveActivity = async(activityData) => {
1612
const activity = new Activity(activityData)
1713
return await activity.save()
@@ -20,6 +16,5 @@ const saveActivity = async(activityData) => {
2016
module.exports = {
2117
deleteActivity,
2218
findActivity,
23-
getActivities,
2419
saveActivity,
2520
}

backend/routes/activities.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
const activitiesRouter = require('express').Router()
22
const activitiesController = require('../controllers/activities_controller')
33

4-
activitiesRouter.get('/', activitiesController.getActivities)
54
activitiesRouter.post('/upload', activitiesController.uploadActivity)
65
activitiesRouter.delete('/:id', activitiesController.deleteActivity)
76

backend/utils/gpx_parser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const _getActivityDetails = (trk) => {
5050

5151
const parse = (gpx) => new Promise((resolve, reject) => {
5252
parser.parseString(gpx, (err, result) => {
53-
if (err) return reject(err)
53+
if (err) return reject({ name: 'GPXParseError' })
5454
const date = new Date(result.gpx.metadata.time)
5555
const { coords, distance, name, pace, time } = _getActivityDetails(result.gpx.trk)
5656
return resolve({

backend/utils/middleware.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ const errorHandler = (err, req, res, next) => {
2727
return res.status(401).json({
2828
error: 'invalid username or password'
2929
})
30+
} else if (err.name === 'GPXParseError') {
31+
return res.status(400).json({
32+
error: 'invalid GPX file'
33+
})
3034
}
3135
console.error(err.message)
3236
next(err)

0 commit comments

Comments
 (0)