Skip to content

Commit

Permalink
Merge pull request #15 from GravityTwoG/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
GravityTwoG authored Apr 3, 2024
2 parents 53936cf + b009c85 commit 12806b2
Show file tree
Hide file tree
Showing 94 changed files with 1,006 additions and 557 deletions.
3 changes: 2 additions & 1 deletion src/backend/electron-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ export const electronAPI: Omit<
await downloadToFolder(
gameState.archiveURL,
customPath.filePaths[0],
`${gameState.name}-archive.zip`
`${gameState.name}-archive.zip`,
true
);

return { data: null };
Expand Down
4 changes: 3 additions & 1 deletion src/backend/fs/downloadToFolder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import electronDl from "electron-dl";
export async function downloadToFolder(
sourceURL: string,
targetFolder: string,
targetFilename: string
targetFilename: string,
openFolderWhenDone?: boolean
): Promise<void> {
const win = BrowserWindow.getAllWindows();
if (!win.length) {
Expand All @@ -16,5 +17,6 @@ export async function downloadToFolder(
directory: targetFolder,
filename: targetFilename,
overwrite: true,
openFolderWhenDone: openFolderWhenDone,
});
}
99 changes: 36 additions & 63 deletions src/client/api/CommonParametersAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ type CommonParameterFromServer = {
id: number;
label: string;
description: string;
gameStateParameterTypeDTO: {
type: {
id: string;
type: string;
};
Expand All @@ -30,15 +30,7 @@ export class CommonParametersAPI implements ICommonParametersAPI {
);

return {
items: parameters.items.map((parameter) => ({
id: parameter.id.toString(),
label: parameter.label,
description: parameter.description,
type: {
id: parameter.gameStateParameterTypeDTO.id.toString(),
type: parameter.gameStateParameterTypeDTO.type,
},
})),
items: parameters.items.map(this.mapToCommonParameter),
totalCount: parameters.totalCount,
};
};
Expand All @@ -48,51 +40,54 @@ export class CommonParametersAPI implements ICommonParametersAPI {
`/common-parameters/${parameterId}`
);

return {
id: parameter.id.toString(),
label: parameter.label,
description: parameter.description,
type: {
id: parameter.gameStateParameterTypeDTO.id.toString(),
type: parameter.gameStateParameterTypeDTO.type,
},
};
return this.mapToCommonParameter(parameter);
};

private mapToCommonParameter = (
parameter: CommonParameterFromServer
): CommonParameter => ({
id: parameter.id.toString(),
label: parameter.label,
description: parameter.description,
type: {
id: parameter.type.id.toString(),
type: parameter.type.type,
},
});

createParameter = async (
parameter: CommonParameter
): Promise<CommonParameter> => {
const formData = new FormData();
formData.append(
"commonParameterData",
JSON.stringify({
label: parameter.label,
description: parameter.description,
gameStateParameterTypeId: parameter.type.id,
})
);

const createdParameter = await this.fetcher.post<CommonParameterFromServer>(
const formData = this.mapToFormData(parameter);
const created = await this.fetcher.post<CommonParameterFromServer>(
"/common-parameters",
{
headers: {},
body: formData,
}
);
return {
id: createdParameter.id.toString(),
label: createdParameter.label,
description: createdParameter.description,
type: {
id: parameter.type.id.toString(),
type: parameter.type.type,
},
};
return this.mapToCommonParameter(created);
};

updateParameter = async (
parameter: CommonParameter
): Promise<CommonParameter> => {
const formData = this.mapToFormData(parameter);
const updated = await this.fetcher.patch<CommonParameterFromServer>(
`/common-parameters/${parameter.id}`,
{
headers: {},
body: formData,
}
);
return this.mapToCommonParameter(updated);
};

deleteParameter = async (parameterId: string): Promise<void> => {
await this.fetcher.delete(`/common-parameters/${parameterId}`);
};

private mapToFormData(parameter: CommonParameter) {
const formData = new FormData();
formData.append(
"commonParameterData",
Expand All @@ -102,28 +97,6 @@ export class CommonParametersAPI implements ICommonParametersAPI {
gameStateParameterTypeId: parameter.type.id,
})
);

const updatedParameter =
await this.fetcher.patch<CommonParameterFromServer>(
`/common-parameters/${parameter.id}`,
{
headers: {},
body: formData,
}
);

return {
id: updatedParameter.id.toString(),
label: updatedParameter.label,
description: updatedParameter.description,
type: {
id: parameter.type.id.toString(),
type: parameter.type.type,
},
};
};

deleteParameter = async (parameterId: string): Promise<void> => {
await this.fetcher.delete(`/common-parameters/${parameterId}`);
};
return formData;
}
}
93 changes: 30 additions & 63 deletions src/client/api/GameAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ export type GameFromServer = {
type: string;
label: string;
description: string;
commonParameterDTO: {
commonParameter: {
id: number;
gameStateParameterTypeDTO: {
type: {
id: number;
type: string;
};
Expand All @@ -44,7 +44,6 @@ export class GameAPI implements IGameAPI {

getGame = async (gameId: string): Promise<Game> => {
const game = await this.fetcher.get<GameFromServer>(`/games/${gameId}`);

return GameAPI.mapGameFromServer(game);
};

Expand All @@ -65,84 +64,52 @@ export class GameAPI implements IGameAPI {
};

addGame = (game: AddGameDTO): Promise<Game> => {
const formData = new FormData();

formData.append("image", game.icon || new Blob());
formData.append(
"gameData",
JSON.stringify({
name: game.name,
description: game.description,
paths: game.paths,
extractionPipeline: game.extractionPipeline,
schema: {
filename: game.gameStateParameters.filename,
gameStateParameters: game.gameStateParameters.parameters.map(
(field) => ({
key: field.key,
type: field.type.type,
commonParameterDTO: field.commonParameter.id
? {
id: field.commonParameter.id,
}
: undefined,
label: field.label,
description: field.description,
})
),
},
})
);

const formData = this.mapToFormData(game);
return this.fetcher.post("/games", {
headers: {},
body: formData,
});
};

updateGame = (game: UpdateGameDTO): Promise<Game> => {
const formData = new FormData();
const formData = this.mapToFormData(game);
return this.fetcher.patch(`/games/${game.id}`, {
headers: {},
body: formData,
});
};

// if (game.icon) {
formData.append("image", game.icon || "");
// }
deleteGame = (gameId: string): Promise<void> => {
return this.fetcher.delete(`/games/${gameId}`);
};

private mapToFormData(addGameDTO: AddGameDTO) {
const formData = new FormData();
formData.append("image", addGameDTO.icon || "");
formData.append(
"gameData",
JSON.stringify({
name: game.name,
description: game.description,
paths: game.paths,
extractionPipeline: game.extractionPipeline,
name: addGameDTO.name,
description: addGameDTO.description,
paths: addGameDTO.paths,
extractionPipeline: addGameDTO.extractionPipeline,
schema: {
filename: game.gameStateParameters.filename,
gameStateParameters: game.gameStateParameters.parameters.map(
filename: addGameDTO.gameStateParameters.filename,
gameStateParameters: addGameDTO.gameStateParameters.parameters.map(
(field) => ({
id: field.id,
key: field.key,
type: field.type.type,
commonParameterDTO: field.commonParameter.id
? {
id: field.commonParameter.id,
}
: undefined,
commonParameterId: field.commonParameter.id,
label: field.label,
description: field.description,
})
),
},
})
);

return this.fetcher.patch(`/games/${game.id}`, {
headers: {},
body: formData,
});
};

deleteGame = (gameId: string): Promise<void> => {
return this.fetcher.delete(`/games/${gameId}`);
};
return formData;
}

static mapGameFromServer = (game: GameFromServer): Game => {
return {
Expand All @@ -160,15 +127,15 @@ export class GameAPI implements IGameAPI {
type: field.type,
id: field.type,
},
commonParameter: field.commonParameterDTO
commonParameter: field.commonParameter
? {
id: field.commonParameterDTO.id.toString(),
id: field.commonParameter.id.toString(),
type: {
type: field.commonParameterDTO.gameStateParameterTypeDTO.type,
id: field.commonParameterDTO.gameStateParameterTypeDTO.id.toString(),
type: field.commonParameter.type.type,
id: field.commonParameter.type.id.toString(),
},
label: field.commonParameterDTO.label,
description: field.commonParameterDTO.description,
label: field.commonParameter.label,
description: field.commonParameter.description,
}
: {
id: "",
Expand Down
8 changes: 6 additions & 2 deletions src/client/api/GameStateAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ type GameStateFromServer = {
gameStateValues: {
id: number;
gameStateParameterId: number;
gameStateParameterType: {
id: number;
type: string;
};
value: string;
label: string;
description: string;
Expand Down Expand Up @@ -54,7 +58,7 @@ export class GameStateAPI implements IGameStateAPI {
getStatePaths = async (): Promise<GamePath[]> => {
const pathsFromServer = await this.fetcher.get<{
items: GamePathFromServer[];
}>(`/game-paths?pageSize=1000&pageNumber=1&searchQuery=""`);
}>(`/game-paths?pageSize=1000&pageNumber=1&searchQuery=`);

const paths: GamePath[] = pathsFromServer.items.map((path) => ({
id: path.id.toString(),
Expand Down Expand Up @@ -204,7 +208,7 @@ export class GameStateAPI implements IGameStateAPI {
gameStateValues: state.gameStateValues.map((value) => ({
value: value.value,
gameStateParameterId: value.gameStateParameterId.toString(),
type: "type",
type: value.gameStateParameterType.type,
label: value.label,
description: value.description,
})),
Expand Down
6 changes: 3 additions & 3 deletions src/client/config/paths.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ const profile = path("/");
const mySaves = path("/my-saves");
const localSaves = mySaves.path("/local");
const mySave = mySaves.path("/:gameStateId");
const sharedSaves = path("/saves/shared");
const publicSaves = path("/saves/public");
const save = path("/saves/:gameStateId");
const sharedSaves = path("/shared-saves");
const publicSaves = path("/public-saves");

const games = path("/games");
const gameAdd = path("/games-add");
Expand All @@ -29,9 +29,9 @@ export const paths = {
mySaves,
localSaves,
mySave,
save,
sharedSaves,
publicSaves,
save,

games,
game,
Expand Down
Loading

0 comments on commit 12806b2

Please sign in to comment.