use crate::error::Error;
use crate::models::{ CreateCachedContentRequest, CachedContentResponse, ListCachedContentsResponse, UpdateCachedContentRequest };
use super::super::Client;
#[ derive( Debug ) ]
pub struct CachedContentApi< 'a >
{
pub( crate ) client : &'a Client,
}
impl CachedContentApi< '_ >
{
#[ inline ]
pub async fn create( &self, request : &CreateCachedContentRequest ) -> Result< CachedContentResponse, Error >
{
let url = format!( "{}/v1beta/cachedContents", self.client.base_url );
crate ::internal::http::execute_legacy::< CreateCachedContentRequest, CachedContentResponse >
(
&self.client.http,
reqwest ::Method::POST,
&url,
&self.client.api_key,
Some( request ),
)
.await
}
#[ inline ]
pub async fn list( &self, page_size : Option< i32 >, page_token : Option< &str > ) -> Result< ListCachedContentsResponse, Error >
{
let mut url = format!( "{}/v1beta/cachedContents", self.client.base_url );
let mut query_params = Vec::new();
if let Some( size ) = page_size
{
query_params.push( format!( "pageSize={size}" ) );
}
if let Some( token ) = page_token
{
query_params.push( format!( "pageToken={}", urlencoding::encode( token ) ) );
}
if !query_params.is_empty()
{
url.push( '?' );
url.push_str( &query_params.join( "&" ) );
}
crate ::internal::http::execute_legacy::< (), ListCachedContentsResponse >
(
&self.client.http,
reqwest ::Method::GET,
&url,
&self.client.api_key,
None,
)
.await
}
#[ inline ]
pub async fn get( &self, cache_id : &str ) -> Result< CachedContentResponse, Error >
{
let url = format!( "{}/v1beta/cachedContents/{}", self.client.base_url, urlencoding::encode( cache_id ) );
crate ::internal::http::execute_legacy::< (), CachedContentResponse >
(
&self.client.http,
reqwest ::Method::GET,
&url,
&self.client.api_key,
None,
)
.await
}
#[ inline ]
pub async fn update( &self, cache_id : &str, request : &UpdateCachedContentRequest ) -> Result< CachedContentResponse, Error >
{
let url = format!( "{}/v1beta/cachedContents/{}", self.client.base_url, urlencoding::encode( cache_id ) );
crate ::internal::http::execute_legacy::< UpdateCachedContentRequest, CachedContentResponse >
(
&self.client.http,
reqwest ::Method::PATCH,
&url,
&self.client.api_key,
Some( request ),
)
.await
}
#[ inline ]
pub async fn delete( &self, cache_id : &str ) -> Result< (), Error >
{
let url = format!( "{}/v1beta/cachedContents/{}", self.client.base_url, urlencoding::encode( cache_id ) );
let _response : serde_json::Value = crate::internal::http::execute_legacy
(
&self.client.http,
reqwest ::Method::DELETE,
&url,
&self.client.api_key,
None::< &() >,
)
.await?;
Ok( () )
}
}