use crate::fetch;
use crate::models::ApiKey;
use crate::models::CreateKeyRequest;
use crate::models::CreateKeyResponse;
use crate::models::GetKeyRequest;
use crate::models::RevokeKeyRequest;
use crate::models::UpdateKeyRequest;
use crate::models::UpdateRemainingRequest;
use crate::models::UpdateRemainingResponse;
use crate::models::VerifyKeyRequest;
use crate::models::VerifyKeyResponse;
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 KeyService;
impl KeyService {
pub async fn create_key(
&self,
http: &HttpService,
req: CreateKeyRequest,
) -> Result<CreateKeyResponse, HttpError> {
let route = routes::CREATE_KEY.compile();
parse_response(fetch!(http, route, req).await).await
}
pub async fn verify_key(
&self,
http: &HttpService,
req: VerifyKeyRequest,
) -> Result<VerifyKeyResponse, HttpError> {
let route = routes::VERIFY_KEY.compile();
parse_response(fetch!(http, route, req).await).await
}
pub async fn revoke_key(
&self,
http: &HttpService,
req: RevokeKeyRequest,
) -> Result<(), HttpError> {
let route = routes::REVOKE_KEY.compile();
parse_empty_response(fetch!(http, route, req).await).await
}
pub async fn update_key(
&self,
http: &HttpService,
req: UpdateKeyRequest,
) -> Result<(), HttpError> {
let route = routes::UPDATE_KEY.compile();
parse_empty_response(fetch!(http, route, req).await).await
}
pub async fn get_key(
&self,
http: &HttpService,
req: GetKeyRequest,
) -> Result<ApiKey, HttpError> {
let mut route = routes::GET_KEY.compile();
route.query_insert("keyId", &req.key_id);
parse_response(fetch!(http, route).await).await
}
pub async fn update_remaining(
&self,
http: &HttpService,
req: UpdateRemainingRequest,
) -> Result<UpdateRemainingResponse, HttpError> {
let route = routes::UPDATE_REMAINING.compile();
parse_response(fetch!(http, route, req).await).await
}
}