use http::Method;
use serde_json::Value;
use crate::{Result, client::RequestOptions, types::path::PathParam};
#[cfg(feature = "blocking")]
use crate::client::BlockingClient;
#[cfg(feature = "async")]
use crate::client::Client;
#[cfg(feature = "async")]
#[derive(Clone)]
pub struct UserKeyValueService {
client: Client,
}
#[cfg(feature = "async")]
impl UserKeyValueService {
pub(crate) fn new(client: Client) -> Self {
Self { client }
}
pub async fn get_namespace_by_namespace(
&self,
namespace: impl Into<PathParam>,
) -> Result<Value> {
let namespace = namespace.into();
let segments = ["api", "user-key-value", "namespace", namespace.as_str()];
self.client
.request_json(
Method::GET,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
.await
}
pub async fn delete_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client
.request_json(
Method::DELETE,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
.await
}
pub async fn get_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client
.request_json(
Method::GET,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
.await
}
pub async fn put_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
body: Option<&Value>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client
.request_json(
Method::PUT,
&segments,
Option::<&()>::None,
body,
RequestOptions::default(),
)
.await
}
}
#[cfg(feature = "blocking")]
#[derive(Clone)]
pub struct BlockingUserKeyValueService {
client: BlockingClient,
}
#[cfg(feature = "blocking")]
impl BlockingUserKeyValueService {
pub(crate) fn new(client: BlockingClient) -> Self {
Self { client }
}
pub fn get_namespace_by_namespace(&self, namespace: impl Into<PathParam>) -> Result<Value> {
let namespace = namespace.into();
let segments = ["api", "user-key-value", "namespace", namespace.as_str()];
self.client.request_json(
Method::GET,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
}
pub fn delete_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client.request_json(
Method::DELETE,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
}
pub fn get_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client.request_json(
Method::GET,
&segments,
Option::<&()>::None,
Option::<&()>::None,
RequestOptions::default(),
)
}
pub fn put_namespace_by_namespace_key_by_key(
&self,
namespace: impl Into<PathParam>,
key: impl Into<PathParam>,
body: Option<&Value>,
) -> Result<Value> {
let namespace = namespace.into();
let key = key.into();
let segments = [
"api",
"user-key-value",
"namespace",
namespace.as_str(),
"key",
key.as_str(),
];
self.client.request_json(
Method::PUT,
&segments,
Option::<&()>::None,
body,
RequestOptions::default(),
)
}
}