1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use crate::{error::ApiError, fabric::{FabricClient, BASE, models::FabricGameVersion}}; impl FabricClient { /// Fetches available Minecraft game versions from Fabric meta. /// /// # Errors /// /// Returns [`ApiError::Http`] if the request or parsing fails. pub async fn get_game_versions(&self) -> Result<Vec<FabricGameVersion>, ApiError> { let url = format!("{BASE}/versions/game"); let resp = self.client.get(&url).send().await?.error_for_status()?; Ok(resp.json().await?) } } #[cfg(test)] #[allow(clippy::unwrap_used)] mod tests { use super::*; use reqwest::Client; #[tokio::test] async fn test_get_game_versions() { let client = FabricClient::new(Client::new()); let versions = client.get_game_versions().await.unwrap(); assert!(!versions.is_empty()); } }