fastly_api/apis/
invitations_api.rs1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateInvitationParams {
17 pub invitation: Option<crate::models::Invitation>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct DeleteInvitationParams {
23 pub invitation_id: String
25}
26
27#[derive(Clone, Debug, Default)]
29pub struct ListInvitationsParams {
30 pub page_number: Option<i32>,
32 pub page_size: Option<i32>
34}
35
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum CreateInvitationError {
41 UnknownValue(serde_json::Value),
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum DeleteInvitationError {
48 UnknownValue(serde_json::Value),
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum ListInvitationsError {
55 UnknownValue(serde_json::Value),
56}
57
58
59pub async fn create_invitation(configuration: &mut configuration::Configuration, params: CreateInvitationParams) -> Result<crate::models::InvitationResponse, Error<CreateInvitationError>> {
61 let local_var_configuration = configuration;
62
63 let invitation = params.invitation;
65
66
67 let local_var_client = &local_var_configuration.client;
68
69 let local_var_uri_str = format!("{}/invitations", local_var_configuration.base_path);
70 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
71
72 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
73 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
74 }
75 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
76 let local_var_key = local_var_apikey.key.clone();
77 let local_var_value = match local_var_apikey.prefix {
78 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
79 None => local_var_key,
80 };
81 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
82 };
83 local_var_req_builder = local_var_req_builder.json(&invitation);
84
85 let local_var_req = local_var_req_builder.build()?;
86 let local_var_resp = local_var_client.execute(local_var_req).await?;
87
88 if "POST" != "GET" && "POST" != "HEAD" {
89 let headers = local_var_resp.headers();
90 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
91 Some(v) => v.to_str().unwrap().parse().unwrap(),
92 None => configuration::DEFAULT_RATELIMIT,
93 };
94 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
95 Some(v) => v.to_str().unwrap().parse().unwrap(),
96 None => 0,
97 };
98 }
99
100 let local_var_status = local_var_resp.status();
101 let local_var_content = local_var_resp.text().await?;
102
103 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
104 serde_json::from_str(&local_var_content).map_err(Error::from)
105 } else {
106 let local_var_entity: Option<CreateInvitationError> = serde_json::from_str(&local_var_content).ok();
107 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
108 Err(Error::ResponseError(local_var_error))
109 }
110}
111
112pub async fn delete_invitation(configuration: &mut configuration::Configuration, params: DeleteInvitationParams) -> Result<(), Error<DeleteInvitationError>> {
114 let local_var_configuration = configuration;
115
116 let invitation_id = params.invitation_id;
118
119
120 let local_var_client = &local_var_configuration.client;
121
122 let local_var_uri_str = format!("{}/invitations/{invitation_id}", local_var_configuration.base_path, invitation_id=crate::apis::urlencode(invitation_id));
123 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
124
125 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
127 }
128 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
129 let local_var_key = local_var_apikey.key.clone();
130 let local_var_value = match local_var_apikey.prefix {
131 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
132 None => local_var_key,
133 };
134 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
135 };
136
137 let local_var_req = local_var_req_builder.build()?;
138 let local_var_resp = local_var_client.execute(local_var_req).await?;
139
140 if "DELETE" != "GET" && "DELETE" != "HEAD" {
141 let headers = local_var_resp.headers();
142 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
143 Some(v) => v.to_str().unwrap().parse().unwrap(),
144 None => configuration::DEFAULT_RATELIMIT,
145 };
146 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
147 Some(v) => v.to_str().unwrap().parse().unwrap(),
148 None => 0,
149 };
150 }
151
152 let local_var_status = local_var_resp.status();
153 let local_var_content = local_var_resp.text().await?;
154
155 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
156 Ok(())
157 } else {
158 let local_var_entity: Option<DeleteInvitationError> = serde_json::from_str(&local_var_content).ok();
159 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
160 Err(Error::ResponseError(local_var_error))
161 }
162}
163
164pub async fn list_invitations(configuration: &mut configuration::Configuration, params: ListInvitationsParams) -> Result<crate::models::InvitationsResponse, Error<ListInvitationsError>> {
166 let local_var_configuration = configuration;
167
168 let page_number = params.page_number;
170 let page_size = params.page_size;
171
172
173 let local_var_client = &local_var_configuration.client;
174
175 let local_var_uri_str = format!("{}/invitations", local_var_configuration.base_path);
176 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
177
178 if let Some(ref local_var_str) = page_number {
179 local_var_req_builder = local_var_req_builder.query(&[("page[number]", &local_var_str.to_string())]);
180 }
181 if let Some(ref local_var_str) = page_size {
182 local_var_req_builder = local_var_req_builder.query(&[("page[size]", &local_var_str.to_string())]);
183 }
184 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
185 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
186 }
187 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
188 let local_var_key = local_var_apikey.key.clone();
189 let local_var_value = match local_var_apikey.prefix {
190 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
191 None => local_var_key,
192 };
193 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
194 };
195
196 let local_var_req = local_var_req_builder.build()?;
197 let local_var_resp = local_var_client.execute(local_var_req).await?;
198
199 if "GET" != "GET" && "GET" != "HEAD" {
200 let headers = local_var_resp.headers();
201 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
202 Some(v) => v.to_str().unwrap().parse().unwrap(),
203 None => configuration::DEFAULT_RATELIMIT,
204 };
205 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
206 Some(v) => v.to_str().unwrap().parse().unwrap(),
207 None => 0,
208 };
209 }
210
211 let local_var_status = local_var_resp.status();
212 let local_var_content = local_var_resp.text().await?;
213
214 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
215 serde_json::from_str(&local_var_content).map_err(Error::from)
216 } else {
217 let local_var_entity: Option<ListInvitationsError> = serde_json::from_str(&local_var_content).ok();
218 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
219 Err(Error::ResponseError(local_var_error))
220 }
221}
222