use spiral_contract::call::CallError;
use uuid::Uuid;
use super::generated::locations::AuthenticatedClient;
pub use crate::api::locations::*;
pub type HttpLocationClient = AuthenticatedClient;
impl AuthenticatedClient {
pub async fn storage_binding_optional(
&self,
location_id: Uuid,
version_id: Uuid,
) -> Result<Option<StorageBinding>, CallError<LocationsError>> {
match self.storage_binding(location_id, version_id).await {
Ok(binding) => Ok(Some(binding)),
Err(CallError::Service(error)) if error.status() == 404 => Ok(None),
Err(CallError::UnknownRemote(error)) if error.status() == 404 => Ok(None),
Err(error) => Err(error),
}
}
}