use super::{Error, configuration, parse_response};
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ReadAuthorizationModelError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ReadAuthorizationModelsError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum WriteAuthorizationModelError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
pub async fn read_authorization_model(
configuration: &configuration::Configuration,
store_id: &str,
id: &str,
) -> Result<models::ReadAuthorizationModelResponse, Error<ReadAuthorizationModelError>> {
let uri_str = format!(
"{}/stores/{store_id}/authorization-models/{id}",
configuration.base_path,
store_id = crate::apis::urlencode(store_id),
id = crate::apis::urlencode(id)
);
let req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn read_authorization_models(
configuration: &configuration::Configuration,
store_id: &str,
page_size: Option<i32>,
continuation_token: Option<&str>,
) -> Result<models::ReadAuthorizationModelsResponse, Error<ReadAuthorizationModelsError>> {
let uri_str = format!(
"{}/stores/{store_id}/authorization-models",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
if let Some(param_value) = page_size {
req_builder = req_builder.query(&[("page_size", param_value.to_string())]);
}
if let Some(param_value) = continuation_token {
req_builder = req_builder.query(&[("continuation_token", param_value)]);
}
let req_builder = configuration.apply_to_request(req_builder);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn write_authorization_model(
configuration: &configuration::Configuration,
store_id: &str,
body: models::WriteAuthorizationModelRequest,
) -> Result<models::WriteAuthorizationModelResponse, Error<WriteAuthorizationModelError>> {
let uri_str = format!(
"{}/stores/{store_id}/authorization-models",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}