use crate::State; use crate::state::CachedEntry; pub use daedalus::minecraft::VersionManifest; pub use daedalus::modded::Manifest; #[tracing::instrument] pub async fn get_minecraft_versions() -> crate::Result { let state = State::get().await?; let minecraft_versions = CachedEntry::get_minecraft_manifest( None, &state.pool, &state.api_semaphore, ) .await? .ok_or_else(|| { crate::ErrorKind::NoValueFor("minecraft versions".to_string()) })?; Ok(minecraft_versions) } // #[tracing::instrument] pub async fn get_loader_versions(loader: &str) -> crate::Result { let state = State::get().await?; let loaders = CachedEntry::get_loader_manifest( loader, None, &state.pool, &state.api_semaphore, ) .await? .ok_or_else(|| { crate::ErrorKind::NoValueFor(format!("{loader} loader versions")) })?; Ok(loaders.manifest) }