use super::API_BASE_URL; use anyhow::{bail, Result}; use serde::Deserialize; type Response = Vec; #[derive(Debug, Deserialize, Clone)] pub struct ProjectVersion { pub name: String, pub version_number: String, pub game_versions: Vec, pub version_type: String, pub loaders: Vec, pub featured: bool, pub id: String, pub project_id: String, pub downloads: i64, } pub async fn get_multiple_versions(version_ids: Vec<&String>) -> Result { let version_ids_json = serde_json::to_string(&version_ids)?; let url = format!("{API_BASE_URL}/versions?ids={}", version_ids_json); let response = reqwest::get(url).await?.json::().await; match response { Ok(r) => Ok(r), Err(err) => bail!("Error with Modrinth API: {}", err.to_string()), } }