clerk_rs/apis/
webhooks_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 CreateSvixAppError {
20 Status400(crate::models::ClerkErrors),
21 UnknownValue(serde_json::Value),
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum DeleteSvixAppError {
28 Status400(crate::models::ClerkErrors),
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum GenerateSvixAuthUrlError {
36 Status400(crate::models::ClerkErrors),
37 UnknownValue(serde_json::Value),
38}
39
40pub struct Webhooks;
41
42impl Webhooks {
43 pub async fn create_svix_app(clerk_client: &Clerk) -> Result<crate::models::SvixUrl, Error<CreateSvixAppError>> {
45 let local_var_configuration = &clerk_client.config;
46
47 let local_var_client = &local_var_configuration.client;
48
49 let local_var_uri_str = format!("{}/webhooks/svix", local_var_configuration.base_path);
50 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
51
52 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
53 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
54 }
55
56 let local_var_req = local_var_req_builder.build()?;
57 let local_var_resp = local_var_client.execute(local_var_req).await?;
58
59 let local_var_status = local_var_resp.status();
60 let local_var_content = local_var_resp.text().await?;
61
62 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
63 serde_json::from_str(&local_var_content).map_err(Error::from)
64 } else {
65 let local_var_entity: Option<CreateSvixAppError> = 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 delete_svix_app(clerk_client: &Clerk) -> Result<(), Error<DeleteSvixAppError>> {
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!("{}/webhooks/svix", local_var_configuration.base_path);
82 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
83
84 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
85 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
86 }
87
88 let local_var_req = local_var_req_builder.build()?;
89 let local_var_resp = local_var_client.execute(local_var_req).await?;
90
91 let local_var_status = local_var_resp.status();
92 let local_var_content = local_var_resp.text().await?;
93
94 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
95 Ok(())
96 } else {
97 let local_var_entity: Option<DeleteSvixAppError> = serde_json::from_str(&local_var_content).ok();
98 let local_var_error = ResponseContent {
99 status: local_var_status,
100 content: local_var_content,
101 entity: local_var_entity,
102 };
103 Err(Error::ResponseError(local_var_error))
104 }
105 }
106
107 pub async fn generate_svix_auth_url(clerk_client: &Clerk) -> Result<crate::models::SvixUrl, Error<GenerateSvixAuthUrlError>> {
109 let local_var_configuration = &clerk_client.config;
110
111 let local_var_client = &local_var_configuration.client;
112
113 let local_var_uri_str = format!("{}/webhooks/svix_url", local_var_configuration.base_path);
114 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
115
116 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
117 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
118 }
119
120 let local_var_req = local_var_req_builder.build()?;
121 let local_var_resp = local_var_client.execute(local_var_req).await?;
122
123 let local_var_status = local_var_resp.status();
124 let local_var_content = local_var_resp.text().await?;
125
126 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
127 serde_json::from_str(&local_var_content).map_err(Error::from)
128 } else {
129 let local_var_entity: Option<GenerateSvixAuthUrlError> = serde_json::from_str(&local_var_content).ok();
130 let local_var_error = ResponseContent {
131 status: local_var_status,
132 content: local_var_content,
133 entity: local_var_entity,
134 };
135 Err(Error::ResponseError(local_var_error))
136 }
137 }
138}