use crate::client::{MultipartRequestBuilder, RawRequestBuilder, RequestBuilder, Steel};
use crate::types::*;
pub struct Extensions<'a> {
client: &'a Steel,
}
impl<'a> Extensions<'a> {
pub fn new(client: &'a Steel) -> Self {
Self { client }
}
pub fn list(&self) -> RequestBuilder<'_, (), (), ExtensionListResponse> {
let path = "/v1/extensions".to_string();
self.client
.call(reqwest::Method::GET, path, None::<()>, None::<()>)
}
pub fn upload(
&self,
body: ExtensionUploadParams,
) -> MultipartRequestBuilder<
'_,
impl Fn() -> Result<reqwest::multipart::Form, reqwest::Error>,
(),
ExtensionUploadResponse,
> {
let path = "/v1/extensions".to_string();
self.client
.multipart_call(reqwest::Method::POST, path, None::<()>, move || {
body.to_form()
})
}
pub fn delete_all(&self) -> RequestBuilder<'_, (), (), ExtensionDeleteAllResponse> {
let path = "/v1/extensions".to_string();
self.client
.call(reqwest::Method::DELETE, path, None::<()>, None::<()>)
}
pub fn download(&self, extension_id: &str) -> RawRequestBuilder<'_, (), ()> {
let path = format!(
"/v1/extensions/{}",
crate::client::encode_path(extension_id)
);
self.client
.raw_call(reqwest::Method::GET, path, None::<()>, None::<()>)
}
pub fn update(
&self,
extension_id: &str,
body: ExtensionUpdateParams,
) -> MultipartRequestBuilder<
'_,
impl Fn() -> Result<reqwest::multipart::Form, reqwest::Error>,
(),
ExtensionUpdateResponse,
> {
let path = format!(
"/v1/extensions/{}",
crate::client::encode_path(extension_id)
);
self.client
.multipart_call(reqwest::Method::PUT, path, None::<()>, move || {
body.to_form()
})
}
pub fn delete(
&self,
extension_id: &str,
) -> RequestBuilder<'_, (), (), ExtensionDeleteResponse> {
let path = format!(
"/v1/extensions/{}",
crate::client::encode_path(extension_id)
);
self.client
.call(reqwest::Method::DELETE, path, None::<()>, None::<()>)
}
}