Browse Source

mini refacotr for seasons get

old-project-state
Dan 2 years ago
parent
commit
333c7a0a12
  1. 20
      server.js
  2. 4
      src/app/components/season-standings-table/season-standings-table.component.html
  3. 2
      src/app/models/season.ts

20
server.js

@ -139,24 +139,28 @@ app.get('/api/seasons/:id', async (req, res) => {
const seasonDetails = await Season.findOne({_id: id});
const seasonRaceDetails = await Race.find({season: id});
for (let i = 0; i < seasonRaceDetails.length; i++) {
let raceRecord = seasonRaceDetails[i];
let modableRace = remapRaceInfo(raceRecord);
let seasonRace = seasonRaceDetails[i];
let modableRace = remapRaceInfo(seasonRace);
const fastestTimesMap = new Map();
const raceResults = await RaceResult.find('racer', { 'race._id': raceRecord._id });
const raceResults = await RaceResult.find({race: seasonRace._id});
raceResults.forEach(result => {
const racerId = result.racer._id;
const timeInSeconds = result.timeInSeconds;
const timeInMilliseconds = result.timeInMilliseconds;
if (!fastestTimesMap.has(racerId) || timeInSeconds < fastestTimesMap.get(racerId)) {
fastestTimesMap.set(racerId, timeInSeconds);
if (!fastestTimesMap.has(racerId) || timeInMilliseconds < fastestTimesMap.get(racerId)) {
fastestTimesMap.set(racerId, {"racer":racer, "timeInMilliseconds":timeInMilliseconds});
}
});
modableRace.results = Array.from(fastestTimesMap.entries()).map(([racerId, timeInSeconds]) => ({
fastestTimesMap.forEach((values, key) =>{
modableRace.results.push({"racer":values.racer, "timeInMilliseconds":values.timeInMilliseconds, "position":0})
})
modableRace.results = Array.from(fastestTimesMap.entries()).map(([racerId, timeInMilliseconds]) => ({
racerId,
timeInSeconds
timeInMilliseconds
}));
// This is wrong it will get only the racers the in last race it processes.

4
src/app/components/season-standings-table/season-standings-table.component.html

@ -8,7 +8,7 @@
<!-- Name Column -->
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell *matCellDef="let element"> {{element.user.realName}} </td>
<td mat-cell *matCellDef="let element"> {{element.user.name}} </td>
</ng-container>
<!-- Weight Column -->
@ -20,7 +20,7 @@
<!-- Symbol Column -->
<ng-container matColumnDef="gameHandle">
<th mat-header-cell *matHeaderCellDef> gamerTag </th>
<td mat-cell *matCellDef="let element"> {{element.user.gamerHandle}} </td>
<td mat-cell *matCellDef="let element"> {{element.user.gameHandle}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>

2
src/app/models/season.ts

@ -7,7 +7,7 @@ export interface Season {
export interface BridgeUser {
_id: string;
realName: string;
name: string;
gameHandle: string;
}

Loading…
Cancel
Save