ridewithgps_client/
auth.rs1use crate::{Result, RideWithGpsClient, User};
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize)]
8pub struct CreateAuthTokenRequest {
9 pub email: String,
11
12 pub password: String,
14}
15
16#[derive(Debug, Clone, Deserialize, Serialize)]
18pub struct AuthToken {
19 pub auth_token: String,
21
22 pub user_id: Option<u64>,
24
25 pub user: Option<User>,
27}
28
29impl RideWithGpsClient {
30 pub fn create_auth_token(&self, email: &str, password: &str) -> Result<AuthToken> {
52 let request = CreateAuthTokenRequest {
53 email: email.to_string(),
54 password: password.to_string(),
55 };
56
57 self.post("/api/v1/auth_tokens", &request)
58 }
59}
60
61#[cfg(test)]
62mod tests {
63 use super::*;
64
65 #[test]
66 fn test_auth_token_request_serialization() {
67 let request = CreateAuthTokenRequest {
68 email: "test@example.com".to_string(),
69 password: "password123".to_string(),
70 };
71
72 let json = serde_json::to_string(&request).unwrap();
73 assert!(json.contains("test@example.com"));
74 assert!(json.contains("password123"));
75 }
76}