You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BOB_PARTY/bob_party/src/services/gameService/loaderGameApi.ts

78 lines
3.5 KiB

import { Game } from "../../core/game";
import { GameCasino } from "../../core/gameCasino";
import { GameMulti } from "../../core/gameMulti";
import { GameSolo } from "../../core/gameSolo";
import ILoaderGame from "./ILoaderGame";
export default class LoaderGameApi implements ILoaderGame{
private axios = require('axios').default;
async loadAllGames(): Promise<Game[]> {
let tab: Game[]=[];
const url="http://localhost:8888/api-rest/index.php/getGames";
await this.axios({
method: 'get',
url: url,
})
.then(function (response: any) {
if (response.data != null || response.data != undefined){
response.data.forEach(game => {
switch(game.type){
case "GameSolo":
let mapSolo = new Map();
for (let i=0; i<game.keys.length; i++){
mapSolo.set(new Number(game.keys[i]), new Number(game.values[i]))
}
tab.push(new GameSolo(game.id, game.name, game.image, game.nbPlayerMin, game.nbPlayerMax, mapSolo));
break;
case "GameMulti":
const mapMulti = new Map();
for (let i=0; i<game.keys.length; i++){
mapMulti.set(new Number(game.keys[i]), new Number(game.values[i]));
}
tab.push(new GameMulti(game.id, game.name, game.image, game.nbPlayerMin, game.nbPlayerMax, mapMulti));
break;
case "GameCasino":
tab.push(new GameCasino(game.id, game.name, game.image, game.nbPlayerMin, game.nbPlayerMax));
break;
}
});
}
});
return tab;
}
async loadByID(id: number): Promise<Game | null> {
let game: Game|null=null;
const url="http://localhost:8888/api-rest/index.php/getGameById/" + id;
await this.axios({
method: 'get',
url: url,
}).then(function (response: any){
if (response.data!=undefined || response.data!==null){
switch(response.data.type){
case "GameSolo":
let mapSolo = new Map();
for (let i=0; i<response.data.keys.length; i++){
mapSolo.set(new Number(response.data.keys[i]), new Number(response.data.values[i]))
}
game = new GameSolo(response.data.id, response.data.name, response.data.image, response.data.nbPlayerMin, response.data.nbPlayerMax, mapSolo);
case "GameMulti":
const mapMulti = new Map();
for (let i=0; i<response.data.keys.length; i++){
mapMulti.set(new Number(response.data.keys[i]), new Number(response.data.values[i]));
}
game = new GameMulti(response.data.id, response.data.name, response.data.image, response.data.nbPlayerMin, response.data.nbPlayerMax, mapMulti);
case "GameCasino":
game = new GameCasino(response.data.id, response.data.name, response.data.image, response.data.nbPlayerMin, response.data.nbPlayerMax);
}
}
});
return game;
}
}