Files
blitzkit/src/core/blitz/getRatingsInfo.ts
T

26 lines
866 B
TypeScript
Raw Normal View History

import { RatingsInfo } from '../../commands/ratings';
import { Region } from '../../constants/regions';
2023-11-11 21:37:59 -06:00
import { context } from '../blitzkrieg/context';
2023-11-14 13:42:15 -06:00
import { patientFetch } from '../blitzkrieg/patientFetch';
import regionToRegionSubdomain from './regionToRegionSubdomain';
2024-01-19 16:02:03 -06:00
const ratingsInfoCache: Partial<Record<Region, RatingsInfo>> = {};
export default async function getRatingsInfo(region: Region) {
2024-01-19 16:02:03 -06:00
if (ratingsInfoCache[region]) return ratingsInfoCache[region]!;
2023-11-14 13:42:15 -06:00
const response = await patientFetch(
2023-11-11 21:37:59 -06:00
context === 'website'
? `/api/${region}/ratings/current/info`
: `https://${regionToRegionSubdomain(
region,
)}.wotblitz.com/en/api/rating-leaderboards/season/`,
2023-11-14 13:42:15 -06:00
undefined,
2023-11-14 07:34:47 -06:00
{ cache: 'no-store' },
);
2024-01-19 16:02:03 -06:00
const data = (await response.json()) as RatingsInfo;
2023-09-03 18:15:10 +00:00
2024-01-19 16:02:03 -06:00
ratingsInfoCache[region] = data;
return data;
}