clerk_rs/apis/
actor_tokens_api.rs1use reqwest;
12
13use super::Error;
14use crate::{apis::ResponseContent, clerk::Clerk};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateActorTokenError {
20 Status400(crate::models::ClerkErrors),
21 Status402(crate::models::ClerkErrors),
22 Status422(crate::models::ClerkErrors),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum RevokeActorTokenError {
30 Status400(crate::models::ClerkErrors),
31 Status404(crate::models::ClerkErrors),
32 UnknownValue(serde_json::Value),
33}
34
35pub struct ActorToken;
36
37impl ActorToken {
38 pub async fn create(
40 clerk_client: &Clerk,
41 create_actor_token_request: Option<crate::models::CreateActorTokenRequest>,
42 ) -> Result<crate::models::ActorToken, Error<CreateActorTokenError>> {
43 let local_var_configuration = &clerk_client.config;
44
45 let local_var_client = &local_var_configuration.client;
46
47 let local_var_uri_str = format!("{}/actor_tokens", local_var_configuration.base_path);
48 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
49
50 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
51 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent);
52 }
53 local_var_req_builder = local_var_req_builder.json(&create_actor_token_request);
54
55 let local_var_req = local_var_req_builder.build()?;
56 let local_var_resp = local_var_client.execute(local_var_req).await?;
57
58 let local_var_status = local_var_resp.status();
59
60 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
61 local_var_resp.json().await.map_err(Error::from)
62 } else {
63 let local_var_content = local_var_resp.text().await?;
64
65 let local_var_entity: Option<CreateActorTokenError> = serde_json::from_str(&local_var_content).ok();
66 let local_var_error = ResponseContent {
67 status: local_var_status,
68 content: local_var_content,
69 entity: local_var_entity,
70 };
71 Err(Error::ResponseError(local_var_error))
72 }
73 }
74
75 pub async fn revoke(clerk_client: &Clerk, actor_token_id: &str) -> Result<crate::models::ActorToken, Error<RevokeActorTokenError>> {
77 let local_var_configuration = &clerk_client.config;
78
79 let local_var_client = &local_var_configuration.client;
80
81 let local_var_uri_str = format!(
82 "{}/actor_tokens/{actor_token_id}/revoke",
83 local_var_configuration.base_path,
84 actor_token_id = crate::apis::urlencode(actor_token_id)
85 );
86 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
87
88 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
89 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
90 }
91 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
92 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
93 };
94
95 let local_var_req = local_var_req_builder.build()?;
96 let local_var_resp = local_var_client.execute(local_var_req).await?;
97
98 let local_var_status = local_var_resp.status();
99 let local_var_content = local_var_resp.text().await?;
100
101 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
102 serde_json::from_str(&local_var_content).map_err(Error::from)
103 } else {
104 let local_var_entity: Option<RevokeActorTokenError> = serde_json::from_str(&local_var_content).ok();
105 let local_var_error = ResponseContent {
106 status: local_var_status,
107 content: local_var_content,
108 entity: local_var_entity,
109 };
110 Err(Error::ResponseError(local_var_error))
111 }
112 }
113}