use crate::fetch;
use crate::models::DeleteApiRequest;
use crate::models::GetApiRequest;
use crate::models::GetApiResponse;
use crate::models::ListKeysRequest;
use crate::models::ListKeysResponse;
use crate::parse_empty_response;
use crate::parse_response;
use crate::routes;
use crate::services::HttpService;
#[allow(unused_imports)]
use crate::models::HttpError;
#[derive(Debug, Clone, Eq, PartialEq)]
pub(crate) struct ApiService;
impl ApiService {
pub async fn list_keys(
&self,
http: &HttpService,
req: ListKeysRequest,
) -> Result<ListKeysResponse, HttpError> {
let mut route = routes::LIST_KEYS.compile();
route
.query_insert("apiId", &req.api_id)
.query_insert("limit", &req.limit.unwrap_or(100).to_string());
if let Some(revalidate) = &req.revalidate_cache {
route.query_insert("revalidateKeysCache", &revalidate.to_string());
}
if let Some(owner) = &req.owner_id {
route.query_insert("ownerId", owner);
}
if let Some(cursor) = &req.cursor {
route.query_insert("cursor", cursor);
}
parse_response(fetch!(http, route).await).await
}
pub async fn get_api(
&self,
http: &HttpService,
req: GetApiRequest,
) -> Result<GetApiResponse, HttpError> {
let mut route = routes::GET_API.compile();
route.query_insert("apiId", &req.api_id);
parse_response(fetch!(http, route).await).await
}
pub async fn delete_api(
&self,
http: &HttpService,
req: DeleteApiRequest,
) -> Result<(), HttpError> {
let route = routes::DELETE_API.compile();
parse_empty_response(fetch!(http, route, req).await).await
}
}