Skip to content

Commit e650369

Browse files
committed
add: loading user scores
1 parent 71fab1a commit e650369

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { CacheFile } from "~/cache";
2+
import type { UserClassScore } from "./types";
3+
import { log } from "~/utils/logger";
4+
import { createBlankUserScore } from "./createBlankUserScore";
5+
6+
const cacheFiles = new Map<number, CacheFile<UserClassScore>>();
7+
8+
export async function loadUserScore(id: number) {
9+
let cacheFile = cacheFiles.get(id);
10+
if (!cacheFile) {
11+
const filePath = `data/user/scores/${id}.json`;
12+
cacheFile = new CacheFile(filePath);
13+
cacheFiles.set(id, cacheFile);
14+
}
15+
16+
const exists = await cacheFile.exists();
17+
if (!exists) {
18+
log.debug(
19+
`User data for Class Score id ${id} does not yet exist, creating file...`
20+
);
21+
await cacheFile.write(createBlankUserScore(id));
22+
}
23+
24+
return cacheFile;
25+
}

src/manager/scores/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export interface UserClassScore {
2+
id: number;
3+
unlockedNodes: Array<number>;
4+
}

0 commit comments

Comments
 (0)