fix: a single-request upload shall just use /end
This commit is contained in:
parent
7460661607
commit
8cf01ba5f5
1 changed files with 21 additions and 14 deletions
|
@ -184,7 +184,7 @@ router.post(
|
||||||
track.trackData = trackData._id;
|
track.trackData = trackData._id;
|
||||||
track.author = user;
|
track.author = user;
|
||||||
|
|
||||||
await track.save()
|
await track.save();
|
||||||
await trackData.save();
|
await trackData.save();
|
||||||
|
|
||||||
// remember which is the actively building track for this user
|
// remember which is the actively building track for this user
|
||||||
|
@ -232,22 +232,29 @@ router.post(
|
||||||
return res.sendStatus(401);
|
return res.sendStatus(401);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!currentTracks.has(user.id)) {
|
let track;
|
||||||
throw new Error('current user has no active track, start one with POST to /tracks/begin');
|
let trackData;
|
||||||
}
|
|
||||||
|
|
||||||
|
if (currentTracks.has(user.id)) {
|
||||||
|
// the file is less than 100 lines
|
||||||
const trackId = currentTracks.get(user.id);
|
const trackId = currentTracks.get(user.id);
|
||||||
|
track = await Track.findById(trackId);
|
||||||
const track = await Track.findById(trackId);
|
|
||||||
if (!track) {
|
if (!track) {
|
||||||
throw new Error('current user active track is gone, retry upload');
|
throw new Error('current user active track is gone, retry upload');
|
||||||
}
|
}
|
||||||
|
|
||||||
track.body += req.body.track.body;
|
track.body += req.body.track.body;
|
||||||
await track.save();
|
trackData = await TrackData.findById(track.trackData);
|
||||||
|
} else {
|
||||||
|
track = new Track(req.body.track);
|
||||||
|
trackData = new TrackData();
|
||||||
|
track.trackData = trackData._id;
|
||||||
|
track.author = user;
|
||||||
|
}
|
||||||
|
|
||||||
const trackData = await TrackData.findById(track.trackData);
|
|
||||||
trackData.points = Array.from(parseTrackPoints(track.body));
|
trackData.points = Array.from(parseTrackPoints(track.body));
|
||||||
|
|
||||||
|
await track.save();
|
||||||
await trackData.save();
|
await trackData.save();
|
||||||
|
|
||||||
// We are done with this track, it is complete.
|
// We are done with this track, it is complete.
|
||||||
|
|
Loading…
Add table
Reference in a new issue