pocketbase_rs/records/auth/
request_verification.rs1use std::collections::HashMap;
2
3use crate::Collection;
4use crate::error::RequestError;
5
6impl<'a> Collection<'a> {
7 pub async fn request_verification(&self, email: &'a str) -> Result<(), RequestError> {
16 let url = format!(
17 "{}/api/collections/{}/request-verification",
18 self.client.base_url, self.name
19 );
20
21 let email: HashMap<String, String> = HashMap::from([("email".to_string(), email.into())]);
22
23 let request = (self.client.request_post_json(&url, &email)).send().await;
24
25 match request {
26 Ok(response) => match response.status() {
27 reqwest::StatusCode::NO_CONTENT => Ok(()),
28 reqwest::StatusCode::BAD_REQUEST => Err(RequestError::BadRequest(String::new())),
29 reqwest::StatusCode::NOT_FOUND => Err(RequestError::NotFound),
30 _ => Err(RequestError::Unhandled),
31 },
32 Err(error) => {
33 if let Some(error_status) = error.status() {
34 match error_status {
35 reqwest::StatusCode::UNAUTHORIZED => {
36 return Err(RequestError::Unauthorized);
37 }
38 reqwest::StatusCode::FORBIDDEN => {
39 return Err(RequestError::Forbidden);
40 }
41 reqwest::StatusCode::NOT_FOUND => {
42 return Err(RequestError::NotFound);
43 }
44 _ => return Err(RequestError::Unhandled),
45 }
46 }
47
48 Err(RequestError::Unhandled)
49 }
50 }
51 }
52}