Add companions (little legends) models

This commit is contained in:
BlossomiShymae
2024-06-10 15:18:58 -05:00
parent 35a3d25bf7
commit c99668cb37
2 changed files with 40 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
import { Champion, ChampionSummary, Item, LocaleVersionArgs, Perk, SummonerEmote, SummonerIcon, WardSkin } from "./models"; import { Champion, ChampionSummary, Item, LocaleVersionArgs, Perk, SummonerEmote, SummonerIcon, WardSkin, Companion } from './models';
import axios from "axios"; import axios from "axios";
export abstract class ApiObject { export abstract class ApiObject {
@@ -17,6 +17,7 @@ export class Client {
public summonerEmotes: SummonerEmoteApi; public summonerEmotes: SummonerEmoteApi;
public summonerIcons: SummonerIconApi; public summonerIcons: SummonerIconApi;
public wardSkins: WardSkinApi; public wardSkins: WardSkinApi;
public companions: CompanionsApi;
constructor() { constructor() {
this.items = new ItemApi(); this.items = new ItemApi();
@@ -26,6 +27,7 @@ export class Client {
this.summonerEmotes = new SummonerEmoteApi(); this.summonerEmotes = new SummonerEmoteApi();
this.summonerIcons = new SummonerIconApi(); this.summonerIcons = new SummonerIconApi();
this.wardSkins = new WardSkinApi(); this.wardSkins = new WardSkinApi();
this.companions = new CompanionsApi();
} }
} }
@@ -77,3 +79,10 @@ export class WardSkinApi extends ApiObject {
return res.data.map((x: any) => new WardSkin(x)); return res.data.map((x: any) => new WardSkin(x));
} }
} }
export class CompanionsApi extends ApiObject {
async listAsync(args: LocaleVersionArgs): Promise<Array<Companion>> {
let res = await axios.get(`${this.getClientPath(args)}/v1/companions.json`);
return res.data.map((x: any) => new Companion(x));
}
}

View File

@@ -292,3 +292,33 @@ export class Rarity extends CommunityDragonObject {
this.rarity = json.rarity; this.rarity = json.rarity;
} }
} }
export class Companion extends CommunityDragonObject {
contentId: string;
itemId: number;
name: string;
loadoutsIcon: string;
description: string;
level: number;
speciesName: string;
speciesId: string;
rarity: string;
constructor(json: any) {
super();
this.contentId = json.contentId;
this.itemId = json.itemId;
this.name = json.name;
this.loadoutsIcon = json.loadoutsIcon;
this.description = json.description;
this.level = json.level;
this.speciesName = json.speciesName;
this.speciesId = json.speciesId;
this.rarity = json.rarity;
}
getLoadoutsIcon(version: string): string {
return this.resolveGamePath({path: this.loadoutsIcon, version: version});
}
}