Skip to content

Commit 94db8bd

Browse files
committed
Update GameSaveRequests.ts to use Cadet API
1 parent 40952db commit 94db8bd

File tree

1 file changed

+10
-34
lines changed

1 file changed

+10
-34
lines changed
Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import _ from 'lodash';
2-
import Constants from 'src/commons/utils/Constants';
2+
import { Cadet } from 'src/commons/api';
33

44
import SourceAcademyGame from '../SourceAcademyGame';
55
import { createEmptySaveState } from './GameSaveHelper';
@@ -11,22 +11,14 @@ import { FullSaveState } from './GameSaveTypes';
1111
* @param fullSaveState - the entire game data that needs to be saved, including game state and userstate
1212
*/
1313
export async function saveData(fullSaveState: FullSaveState) {
14-
if (SourceAcademyGame.getInstance().getAccountInfo().role !== 'student') {
14+
const { role, accessToken, refreshToken } = SourceAcademyGame.getInstance().getAccountInfo();
15+
if (role !== 'student') {
1516
return;
1617
}
1718

18-
// TODO: use Cadet
19-
const options = {
20-
method: 'PUT',
21-
headers: createHeaders(SourceAcademyGame.getInstance().getAccountInfo().accessToken),
22-
body: JSON.stringify({
23-
gameStates: fullSaveState
24-
})
25-
};
19+
const resp = await Cadet.user.updateGameStates(fullSaveState, { accessToken, refreshToken });
2620

27-
const resp = await fetch(`${Constants.backendUrl}/v2/user/game_states`, options);
28-
29-
if (resp && resp.ok) {
21+
if (resp.ok) {
3022
return resp;
3123
}
3224
return;
@@ -36,27 +28,11 @@ export async function saveData(fullSaveState: FullSaveState) {
3628
* This function fetches data from the backend.
3729
*/
3830
export async function loadData(): Promise<FullSaveState> {
39-
const options = {
40-
method: 'GET',
41-
headers: createHeaders(SourceAcademyGame.getInstance().getAccountInfo().accessToken)
42-
};
43-
44-
const resp = await fetch(`${Constants.backendUrl}/v2/user/`, options);
45-
const message = await resp.text();
31+
const { accessToken, refreshToken } = SourceAcademyGame.getInstance().getAccountInfo();
4632

47-
const json = JSON.parse(message).gameStates;
48-
return _.isEmpty(json) ? createEmptySaveState() : json;
49-
}
33+
const resp = await Cadet.user.index({ accessToken, refreshToken });
34+
const gameStates = resp.data.game_states;
5035

51-
/**
52-
* Format a header object.
53-
*
54-
* @param accessToken access token to be used
55-
*/
56-
function createHeaders(accessToken: string): Headers {
57-
const headers = new Headers();
58-
headers.append('Accept', 'application/json');
59-
headers.append('Authorization', `Bearer ${accessToken}`);
60-
headers.append('Content-Type', 'application/json');
61-
return headers;
36+
// TODO: add FullSaveState to backend Swagger API?
37+
return _.isEmpty(gameStates) ? createEmptySaveState() : (gameStates as FullSaveState);
6238
}

0 commit comments

Comments
 (0)