diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-07-04 22:37:36 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-07-04 22:37:36 -0700 |
| commit | 7ccfb9a52cc78a95a4533ab4b971d959bdeecc1c (patch) | |
| tree | d9c64f6191043b5f370c776f9578d0d46b67f2c7 /frontend/src/utils/scoreUpload.ts | |
| parent | af8af562fb91747228efafdcf8b2ff38ade5343d (diff) | |
add score json upload functionality
Diffstat (limited to 'frontend/src/utils/scoreUpload.ts')
| -rw-r--r-- | frontend/src/utils/scoreUpload.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/frontend/src/utils/scoreUpload.ts b/frontend/src/utils/scoreUpload.ts new file mode 100644 index 0000000..7fa7c86 --- /dev/null +++ b/frontend/src/utils/scoreUpload.ts @@ -0,0 +1,39 @@ +interface UploadScoreData { + meta: { + game: string; + service: string; + playtype: string; + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + scores: any[]; +} + +interface UploadScoreResponse { + scoreCount: number; + message?: string; +} + +export async function uploadScore(data: UploadScoreData): Promise<UploadScoreResponse> { + const response = await fetch(`${import.meta.env.VITE_API_URL}/uploadScore`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + credentials: 'include', + body: JSON.stringify({ + meta: { + game: data.meta.game, + service: data.meta.service, + playtype: data.meta.playtype + }, + scores: data.scores + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || 'Failed to upload scores'); + } + + return response.json(); +} |
