🚧 Ajout de la methode getAllcards qui appel un action en fonction de l'API, fonctionnel quand nous aurons officielement une classe Card 🍻
parent
ee19dc2688
commit
594d58c0d8
@ -0,0 +1,11 @@
|
|||||||
|
import {ADD_FAVORITE_DATA, FETCH_DATA} from '../constants';
|
||||||
|
|
||||||
|
//? Changer cette importe quand la classe sera definit dans un fichier correctement.
|
||||||
|
import {Card} from './getAllCards'
|
||||||
|
|
||||||
|
export const setCardsList = (List: Card[]) => {
|
||||||
|
return {
|
||||||
|
type: FETCH_DATA,
|
||||||
|
payload: List,
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
import { setCardsList } from "./action_setCardsList";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//! classe pour tester
|
||||||
|
export class Card {
|
||||||
|
cardId : String
|
||||||
|
name : String
|
||||||
|
manaCost : number
|
||||||
|
attack : number
|
||||||
|
health : number
|
||||||
|
desc : String
|
||||||
|
|
||||||
|
// constructor() {
|
||||||
|
// this.cardId = "cardId";
|
||||||
|
// this.name = "name";
|
||||||
|
// this.manaCost = 0;
|
||||||
|
// this.attack = 0;
|
||||||
|
// this.health = 0;
|
||||||
|
// this.desc = "desc";
|
||||||
|
// }
|
||||||
|
|
||||||
|
constructor(cardId : String, name : String, manaCost : number, attack : number, health : number, desc : String){
|
||||||
|
this.cardId = cardId;
|
||||||
|
this.name = name;
|
||||||
|
this.manaCost = manaCost;
|
||||||
|
this.attack = attack;
|
||||||
|
this.health = health;
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Define your action creators that will be responsible for asynchronous operations
|
||||||
|
export const getAllCards = () => {
|
||||||
|
//In order to use await your callback must be asynchronous using async keyword.
|
||||||
|
|
||||||
|
//@ts-ignore
|
||||||
|
return async dispatch => {
|
||||||
|
//Then perform your asynchronous operations.
|
||||||
|
try {
|
||||||
|
//Have it first fetch data from our starwars url.
|
||||||
|
const CardsPromise = await fetch('https://omgvamp-hearthstone-v1.p.rapidapi.com/cards');
|
||||||
|
|
||||||
|
//Then use the json method to get json data from api/
|
||||||
|
const CardsListJson = await CardsPromise.json();
|
||||||
|
|
||||||
|
//@ts-ignore
|
||||||
|
const CardsList: Card[] = CardsListJson.map(elt => new Card(elt["cardId"], elt["name"], elt["manaCost"], elt["attack"], elt["health"],elt["desc"]));
|
||||||
|
|
||||||
|
//call the action
|
||||||
|
dispatch(setCardsList(CardsList));
|
||||||
|
} catch (error) {
|
||||||
|
console.log('Error---------', error);
|
||||||
|
//You can dispatch to another action if you want to display an error message in the application
|
||||||
|
//dispatch(fetchDataRejected(error))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue