use crate::error::Error;
use crate::seed::client::SeedClient;
use crate::seed::config::CallOptions;
use crate::seed::models::{OtaCheckNowAck, OtaConfig};
pub struct OtaResource<'c> {
pub(crate) client: &'c SeedClient,
}
impl<'c> OtaResource<'c> {
pub async fn config(&self) -> Result<OtaConfig, Error> {
self.client.request_get("/ota/config").await
}
pub async fn config_with(&self, opts: CallOptions) -> Result<OtaConfig, Error> {
self.client.request_get_opts("/ota/config", &opts).await
}
pub async fn check_now(&self) -> Result<OtaCheckNowAck, Error> {
self.client
.request_post::<OtaCheckNowAck, _>("/ota/check-now", &serde_json::json!({}), true)
.await
}
pub async fn check_now_with(&self, opts: CallOptions) -> Result<OtaCheckNowAck, Error> {
self.client
.request_post_opts::<OtaCheckNowAck, _>(
"/ota/check-now",
&serde_json::json!({}),
true,
&opts,
)
.await
}
}