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.
78 lines
3.5 KiB
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;
|
|
}
|
|
|
|
} |