pub mod debug;
pub mod delete;
pub mod download;
pub mod exists;
pub mod generate;
#[cfg(feature = "history")]
pub mod history;
pub mod info;
pub mod params;
pub mod password;
pub mod upload;
pub mod version;
use ffsend_api::action::version::{Error as VersionError, Version as ApiVersion};
use ffsend_api::api::DesiredVersion;
use ffsend_api::client::Client;
use ffsend_api::url::Url;
use crate::config::API_VERSION_ASSUME;
use crate::util::print_warning;
fn select_api_version(
client: &Client,
host: Url,
desired: &mut DesiredVersion,
) -> Result<(), VersionError> {
if let DesiredVersion::Use(_) = desired {
return Ok(());
}
match ApiVersion::new(host).invoke(&client) {
Ok(v) => *desired = DesiredVersion::Use(v),
Err(VersionError::Unknown) => {
*desired = DesiredVersion::Use(API_VERSION_ASSUME);
print_warning(format!(
"server API version could not be determined, assuming v{}",
API_VERSION_ASSUME,
));
}
Err(e) => return Err(e),
}
Ok(())
}