#![allow(non_camel_case_types)]
#![allow(unused)]
pub mod model;
pub mod request;
use crate::model::*;
mod serde;
pub struct PaperMcClient {
pub client: httpclient::Client,
}
impl PaperMcClient {
pub fn from_env() -> Self {
Self {
client: httpclient::Client::new().base_url("https://api.papermc.io"),
}
}
}
impl PaperMcClient {
pub fn new(url: &str) -> Self {
let client = httpclient::Client::new().base_url(url);
Self { client }
}
pub fn with_middleware<M: httpclient::Middleware + 'static>(
mut self,
middleware: M,
) -> Self {
self.client = self.client.with_middleware(middleware);
self
}
pub fn projects(&self) -> request::ProjectsRequest {
request::ProjectsRequest {
http_client: &self,
}
}
pub fn project(&self, project: &str) -> request::ProjectRequest {
request::ProjectRequest {
http_client: &self,
project: project.to_owned(),
}
}
pub fn version(&self, project: &str, version: &str) -> request::VersionRequest {
request::VersionRequest {
http_client: &self,
project: project.to_owned(),
version: version.to_owned(),
}
}
pub fn builds(&self, project: &str, version: &str) -> request::BuildsRequest {
request::BuildsRequest {
http_client: &self,
project: project.to_owned(),
version: version.to_owned(),
}
}
pub fn build(
&self,
build: i64,
project: &str,
version: &str,
) -> request::BuildRequest {
request::BuildRequest {
http_client: &self,
build,
project: project.to_owned(),
version: version.to_owned(),
}
}
pub fn download(&self, args: request::DownloadRequired) -> request::DownloadRequest {
request::DownloadRequest {
http_client: &self,
build: args.build,
download: args.download.to_owned(),
project: args.project.to_owned(),
version: args.version.to_owned(),
}
}
pub fn family(&self, family: &str, project: &str) -> request::FamilyRequest {
request::FamilyRequest {
http_client: &self,
family: family.to_owned(),
project: project.to_owned(),
}
}
pub fn family_builds(
&self,
family: &str,
project: &str,
) -> request::FamilyBuildsRequest {
request::FamilyBuildsRequest {
http_client: &self,
family: family.to_owned(),
project: project.to_owned(),
}
}
}