mailslurp/apis/
form_controller_api.rs1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17#[derive(Clone, Debug)]
19pub struct SubmitFormParams {
20 pub _email_address: Option<String>,
22 pub _redirect_to: Option<String>,
24 pub _spam_check: Option<String>,
26 pub _subject: Option<String>,
28 pub _success_message: Option<String>,
30 pub _to: Option<String>,
32 pub other_parameters: Option<String>
34}
35
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum SubmitFormError {
41 Status401(),
42 Status403(),
43 Status404(),
44 UnknownValue(serde_json::Value),
45}
46
47
48pub async fn submit_form(configuration: &configuration::Configuration, params: SubmitFormParams) -> Result<String, Error<SubmitFormError>> {
50 let _email_address = params._email_address;
52 let _redirect_to = params._redirect_to;
53 let _spam_check = params._spam_check;
54 let _subject = params._subject;
55 let _success_message = params._success_message;
56 let _to = params._to;
57 let other_parameters = params.other_parameters;
58
59
60 let local_var_client = &configuration.client;
61
62 let local_var_uri_str = format!("{}/forms", configuration.base_path);
63 let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
64
65 if let Some(ref local_var_user_agent) = configuration.user_agent {
66 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
67 }
68 if let Some(ref local_var_apikey) = configuration.api_key {
69 let local_var_key = local_var_apikey.key.clone();
70 let local_var_value = match local_var_apikey.prefix {
71 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
72 None => local_var_key,
73 };
74 local_var_req_builder = local_var_req_builder.header("x-api-key", local_var_value);
75 };
76 let mut local_var_form = reqwest::multipart::Form::new();
77 if let Some(local_var_param_value) = _email_address {
78 local_var_form = local_var_form.text("_emailAddress", local_var_param_value.to_string());
79 }
80 if let Some(local_var_param_value) = _redirect_to {
81 local_var_form = local_var_form.text("_redirectTo", local_var_param_value.to_string());
82 }
83 if let Some(local_var_param_value) = _spam_check {
84 local_var_form = local_var_form.text("_spamCheck", local_var_param_value.to_string());
85 }
86 if let Some(local_var_param_value) = _subject {
87 local_var_form = local_var_form.text("_subject", local_var_param_value.to_string());
88 }
89 if let Some(local_var_param_value) = _success_message {
90 local_var_form = local_var_form.text("_successMessage", local_var_param_value.to_string());
91 }
92 if let Some(local_var_param_value) = _to {
93 local_var_form = local_var_form.text("_to", local_var_param_value.to_string());
94 }
95 if let Some(local_var_param_value) = other_parameters {
96 local_var_form = local_var_form.text("otherParameters", local_var_param_value.to_string());
97 }
98 local_var_req_builder = local_var_req_builder.multipart(local_var_form);
99
100 let local_var_req = local_var_req_builder.build()?;
101 let local_var_resp = local_var_client.execute(local_var_req).await?;
102
103 let local_var_status = local_var_resp.status();
104 let local_var_content = local_var_resp.text().await?;
105
106 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
107 serde_json::from_str(&local_var_content).map_err(Error::from)
108 } else {
109 let local_var_entity: Option<SubmitFormError> = serde_json::from_str(&local_var_content).ok();
110 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
111 Err(Error::ResponseError(local_var_error))
112 }
113}
114