use crate::api::http;
use crate::objects::{
Games,
GameInfoResponse,
Challenges,
ChallengesResponse,
Quests,
QuestsResponse,
GuildAchievements,
GuildAchievementsResponse,
VanityPet,
VanityPetsResponse,
Companion,
CompanionsResponse
};
use crate::Error;
pub async fn games() -> Result<Games, Error>{
let res = http::fetch::<GameInfoResponse>("resources/games").await?;
Ok(res.games)
}
pub async fn challenges() -> Result<Challenges, Error> {
let res = http::fetch::<ChallengesResponse>("resources/challenges").await?;
Ok(res.challenges)
}
pub async fn quests() -> Result<Quests, Error> {
let res = http::fetch::<QuestsResponse>("resources/quests").await?;
Ok(res.quests)
}
pub async fn guild_achievements() -> Result<GuildAchievements, Error> {
let res = http::fetch::<GuildAchievementsResponse>(
"resources/guilds/achievements"
).await?;
Ok(res.tiered)
}
pub async fn vanity_pets() -> Result<Vec<VanityPet>, Error> {
let res = http::fetch::<VanityPetsResponse>(
"resources/vanity/pets"
).await?;
Ok(res.types)
}
pub async fn companions() -> Result<Vec<Companion>, Error> {
let res = http::fetch::<CompanionsResponse>(
"resources/vanity/companions"
).await?;
Ok(res.types)
}