2023-04-17 14:05:27 -07:00
|
|
|
use crate::State;
|
2025-05-02 04:51:17 -05:00
|
|
|
use crate::state::CachedEntry;
|
2023-04-17 14:05:27 -07:00
|
|
|
pub use daedalus::minecraft::VersionManifest;
|
|
|
|
|
pub use daedalus::modded::Manifest;
|
|
|
|
|
|
|
|
|
|
#[tracing::instrument]
|
|
|
|
|
pub async fn get_minecraft_versions() -> crate::Result<VersionManifest> {
|
|
|
|
|
let state = State::get().await?;
|
2024-07-24 11:03:19 -07:00
|
|
|
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)
|
2023-04-17 14:05:27 -07:00
|
|
|
}
|
|
|
|
|
|
2024-08-16 23:20:11 -07:00
|
|
|
// #[tracing::instrument]
|
2024-07-24 11:03:19 -07:00
|
|
|
pub async fn get_loader_versions(loader: &str) -> crate::Result<Manifest> {
|
2023-04-17 14:05:27 -07:00
|
|
|
let state = State::get().await?;
|
2024-07-24 11:03:19 -07:00
|
|
|
let loaders = CachedEntry::get_loader_manifest(
|
|
|
|
|
loader,
|
|
|
|
|
None,
|
|
|
|
|
&state.pool,
|
|
|
|
|
&state.api_semaphore,
|
|
|
|
|
)
|
|
|
|
|
.await?
|
|
|
|
|
.ok_or_else(|| {
|
2025-05-01 16:13:13 -07:00
|
|
|
crate::ErrorKind::NoValueFor(format!("{loader} loader versions"))
|
2024-07-24 11:03:19 -07:00
|
|
|
})?;
|
|
|
|
|
|
|
|
|
|
Ok(loaders.manifest)
|
2023-08-21 17:39:39 -04:00
|
|
|
}
|