fix(ssr): only use 1 network request to fetch map ids
All checks were successful
deploy / deploy (push) Successful in 58s
All checks were successful
deploy / deploy (push) Successful in 58s
This commit is contained in:
parent
3dd2fc48ad
commit
af707a8c79
@ -19,14 +19,15 @@ export async function GET(request: Request) {
|
|||||||
const map = await BeatsaverAPI.fetchMapByHash(mapHash);
|
const map = await BeatsaverAPI.fetchMapByHash(mapHash);
|
||||||
if (map) {
|
if (map) {
|
||||||
maps[mapHash] = map;
|
maps[mapHash] = map;
|
||||||
|
mapCache.set(mapHash, map);
|
||||||
}
|
}
|
||||||
if (map && idOnly) {
|
if (map && idOnly) {
|
||||||
maps[mapHash] = { id: map.id };
|
maps[mapHash] = { id: map.id };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new Response(JSON.stringify(maps), {
|
return new Response(JSON.stringify(maps), {
|
||||||
headers: { "content-type": "application/json;charset=UTF-8" },
|
headers: { "content-type": "application/json;charset=UTF-8" },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -162,25 +162,29 @@ async function fetchScoresWithBeatsaverData(
|
|||||||
string,
|
string,
|
||||||
ScoresaberScoreWithBeatsaverData
|
ScoresaberScoreWithBeatsaverData
|
||||||
> = {};
|
> = {};
|
||||||
for (const score of scores) {
|
|
||||||
const mapResponse = await fetch(
|
let url = `${
|
||||||
`${
|
|
||||||
isProduction() ? ssrSettings.siteUrl : "http://localhost:3000"
|
isProduction() ? ssrSettings.siteUrl : "http://localhost:3000"
|
||||||
}/api/beatsaver/mapdata?hashes=${score.leaderboard.songHash}&idonly=true`,
|
}/api/beatsaver/mapdata?hashes=`;
|
||||||
{
|
for (const score of scores) {
|
||||||
|
url += `${score.leaderboard.songHash},`;
|
||||||
|
}
|
||||||
|
const mapResponse = await fetch(url, {
|
||||||
next: {
|
next: {
|
||||||
revalidate: 60 * 60 * 24 * 7, // 1 week
|
revalidate: 60 * 60 * 24 * 7, // 1 week
|
||||||
},
|
},
|
||||||
},
|
});
|
||||||
);
|
const mapJson = await mapResponse.json();
|
||||||
const mapData = await mapResponse.json();
|
for (const score of scores) {
|
||||||
const mapId = mapData[score.leaderboard.songHash].id;
|
const mapData = mapJson[score.leaderboard.songHash];
|
||||||
scoresWithBeatsaverData[score.score.id] = {
|
if (mapData) {
|
||||||
|
scoresWithBeatsaverData[score.leaderboard.songHash] = {
|
||||||
score: score.score,
|
score: score.score,
|
||||||
leaderboard: score.leaderboard,
|
leaderboard: score.leaderboard,
|
||||||
mapId: mapId,
|
mapId: mapData.id,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
scores: scoresWithBeatsaverData,
|
scores: scoresWithBeatsaverData,
|
||||||
|
Loading…
Reference in New Issue
Block a user