|
|
|
@ -37,6 +37,7 @@ class Race extends Document { |
|
|
|
this.endDate = Date; |
|
|
|
this.mapName = String; |
|
|
|
this.mapLink = String; |
|
|
|
this.mapUID = String; |
|
|
|
this.season = Season; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -48,7 +49,7 @@ class RaceResult extends Document { |
|
|
|
|
|
|
|
this.race = Race; |
|
|
|
this.racer = Racer; |
|
|
|
this.timeInSeconds = Number; |
|
|
|
this.timeInMilliseconds = Number; |
|
|
|
this.replayPath = String; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -200,23 +201,39 @@ app.post('/api/race/add', verifyToken, async (req, res) => { |
|
|
|
}); |
|
|
|
|
|
|
|
// route for handling requests from the Angular client
|
|
|
|
app.post('/api/upload-replay', upload.single('file'), (req, res) => { |
|
|
|
app.post('/api/upload-replay', upload.single('file'), async (req, res) => { |
|
|
|
let file = req.file; |
|
|
|
console.log(req.body); |
|
|
|
const { seasonId } = req.body; |
|
|
|
console.log("File uploaded: ", req.file); |
|
|
|
fs.readFile(file.path, function(err, buffer) |
|
|
|
|
|
|
|
await fs.readFile(file.path, async function(err, buffer) |
|
|
|
{ |
|
|
|
buff = new AdvancableBuffer(buffer); |
|
|
|
header = new gbxHeader() |
|
|
|
header = new gbxHeader(); |
|
|
|
header.parse(buff); |
|
|
|
if (header.is_vaild == false) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
console.log(header); |
|
|
|
replay = new gbxReplay(); |
|
|
|
replay.parse(buff); |
|
|
|
}) |
|
|
|
let currentRacer = await Racer.findOne({gameHandle: replay.gamerHandle}); |
|
|
|
console.log(currentRacer); |
|
|
|
if (currentRacer == undefined) |
|
|
|
{ |
|
|
|
currentRacer = await Racer.create({name: "DanH", gameHandle: replay.gamerHandle}); |
|
|
|
currentRacer.save(); |
|
|
|
} |
|
|
|
|
|
|
|
let race = await Race.findOne({season: seasonId, mapUID: replay.mapUID}) |
|
|
|
|
|
|
|
res.status(200); |
|
|
|
}); |
|
|
|
result = await RaceResult.create({race: race, racer: currentRacer, timeInMilliseconds: replay.bestTime, replayPath: file.destination}); |
|
|
|
result.save(); |
|
|
|
|
|
|
|
res.status(200); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
app.listen(3000, () => { |
|
|
|
console.log('Server listening on port 3000'); |
|
|
|
|