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.
53 lines
2.8 KiB
53 lines
2.8 KiB
import { setCardsList } from "./action_setCardsList";
|
|
import { Card } from "../../models/Card";
|
|
|
|
//Fonction chargé de l'appel à l'API
|
|
export const getAllCards = () => {
|
|
|
|
//@ts-ignore
|
|
return async dispatch => {
|
|
try {
|
|
const options = {
|
|
method: 'GET',
|
|
headers: {
|
|
'content-length': '9508',
|
|
'content-type': 'application/json; charset=utf-8',
|
|
'etag': 'W/"74bb-d4gMlMNks7UGES3Jmn6wzUTXaLI"',
|
|
}
|
|
|
|
};
|
|
//! Actualisation de l'API (19/04) :
|
|
const CardsPromise = await fetch('https://us.api.blizzard.com/hearthstone/cards?locale=en_US&access_token=EUo8Snb09AfE3zQR4CoaB71gq1q3qvSmgL', options);
|
|
|
|
//Then use the json method to get json data from api/
|
|
const CardsListJson = await CardsPromise.json();
|
|
|
|
|
|
|
|
|
|
//@ts-ignore
|
|
const CardsList: Card[] = CardsListJson['cards'].map(elt => new Card(elt["id"] ? elt["id"] : 1,
|
|
elt["name"] ? elt["name"] : "",
|
|
elt["health"] ? elt["health"] : 0,
|
|
elt["attack"] ? elt["attack"] : 0,
|
|
elt["manaCost"] ? elt["manaCost"] : 0,
|
|
elt["rarityId"] ? elt["rarityId"] : 0,
|
|
elt["flavorText"] ? elt["flavorText"] : "",
|
|
elt["classId"] ? elt["classId"] : 0,
|
|
elt["multiClassIds"] ? elt["multiClassIds"] : "Nothing",
|
|
elt["image"] ? elt["image"] : "",
|
|
elt["imageGold"] ? elt["imageGold"] : "",
|
|
elt["cropImage"] ? elt["cropImage"] : "",
|
|
elt["artistName"] ? elt["artistName"] : "",
|
|
)); //, elt["cardSet"], elt["type"], elt["faction"], elt["rarity"], elt["cost"], elt["attack"], elt["health"],elt["text"], elt["flavor"], elt["artist"], elt["collectible"], elt["elite"], elt["race"], elt["img"], elt["imgGold"]
|
|
//elt["cardId"] == null ? elt["cardId"] : ""
|
|
|
|
//call the action
|
|
dispatch(setCardsList(CardsList));
|
|
|
|
} catch (error) {
|
|
console.log('Error---------', error);
|
|
|
|
}
|
|
}
|
|
} |