use crate::minecraft::models::{VersionData, VersionType};
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct VersionSummary {
pub id: String,
#[serde(rename = "type")]
pub _type: VersionType,
pub url: String,
#[serde(with = "time::serde::rfc3339")]
pub time: OffsetDateTime,
#[serde(alias = "releaseTime", with = "time::serde::rfc3339")]
pub release_time: OffsetDateTime,
}
impl VersionSummary {
pub async fn fetch_data(&self) -> reqwest::Result<VersionData> {
reqwest::get(&self.url)
.await?
.error_for_status()?
.json()
.await
}
}