From 970ab9004e46308d0f81d8541202d40d7933bd3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 14 Oct 2023 10:55:00 -0500 Subject: [PATCH] feat: cached archived ratings --- .../blitzkrieg}/getArchivedRatingsInfo.ts | 26 ++++++++++++++++--- src/commands/ratings.tsx | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) rename src/{core/blitz => _core/blitzkrieg}/getArchivedRatingsInfo.ts (54%) diff --git a/src/core/blitz/getArchivedRatingsInfo.ts b/src/_core/blitzkrieg/getArchivedRatingsInfo.ts similarity index 54% rename from src/core/blitz/getArchivedRatingsInfo.ts rename to src/_core/blitzkrieg/getArchivedRatingsInfo.ts index c22e29653..42a47b489 100644 --- a/src/core/blitz/getArchivedRatingsInfo.ts +++ b/src/_core/blitzkrieg/getArchivedRatingsInfo.ts @@ -1,13 +1,31 @@ import { RatingsInfo } from '../../commands/ratings'; import { Region } from '../../constants/regions'; -import { DATABASE_REPO } from '../database/getMidnightLeaderboard'; -import { octokit } from '../github/octokit'; -import throwError from '../node/throwError'; +import { DATABASE_REPO } from '../../core/database/getMidnightLeaderboard'; +import { octokit } from '../../core/github/octokit'; +import throwError from '../../core/node/throwError'; + +const ARCHIVED_RATINGS_CACHE: Record< + Region, + Record< + number, + RatingsInfo & { + detail: undefined; + } + > +> = { + com: {}, + eu: {}, + asia: {}, +}; export default async function getArchivedRatingsInfo( season: number, region: Region, ) { + if (ARCHIVED_RATINGS_CACHE[region][season]) { + return ARCHIVED_RATINGS_CACHE[region][season]; + } + const { data } = await octokit.repos.getContent({ ...DATABASE_REPO, path: `${region}/ratings/${season}/info.json`, @@ -21,5 +39,7 @@ export default async function getArchivedRatingsInfo( detail: undefined; }; + ARCHIVED_RATINGS_CACHE[region][season] = jsonContent; + return jsonContent; } diff --git a/src/commands/ratings.tsx b/src/commands/ratings.tsx index 02e97fe4c..4a909b35b 100644 --- a/src/commands/ratings.tsx +++ b/src/commands/ratings.tsx @@ -7,11 +7,11 @@ import { import { BlitzkriegRatingsLeaderboard } from '../../scripts/buildRatingsLeaderboard'; import { getAccountInfo } from '../_core/blitz/getAccountInfo'; import { getClanAccountInfo } from '../_core/blitz/getClanAccountInfo'; +import getArchivedRatingsInfo from '../_core/blitzkrieg/getArchivedRatingsInfo'; import * as Leaderboard from '../components/Leaderboard'; import TitleBar from '../components/TitleBar'; import Wrapper from '../components/Wrapper'; import { REGION_NAMES_SHORT, Region } from '../constants/regions'; -import getArchivedRatingsInfo from '../core/blitz/getArchivedRatingsInfo'; import getRatingsInfo from '../core/blitz/getRatingsInfo'; import regionToRegionSubdomain from '../core/blitz/regionToRegionSubdomain'; import getMidnightLeaderboard, {