Skip to main content

hinge_rs/api/
auth.rs

1use crate::client::HingeClient;
2use crate::errors::HingeError;
3use crate::models::LoginTokens;
4use crate::storage::Storage;
5
6pub struct AuthApi<'a, S: Storage + Clone> {
7    pub(super) client: &'a mut HingeClient<S>,
8}
9
10impl<S: Storage + Clone> AuthApi<'_, S> {
11    pub async fn initiate_sms(&mut self) -> Result<(), HingeError> {
12        self.client.initiate_login().await
13    }
14
15    pub async fn submit_otp(&mut self, otp: &str) -> Result<LoginTokens, HingeError> {
16        self.client.submit_otp(otp).await
17    }
18
19    pub async fn submit_email_code(
20        &mut self,
21        case_id: &str,
22        email_code: &str,
23    ) -> Result<LoginTokens, HingeError> {
24        self.client.submit_email_code(case_id, email_code).await
25    }
26
27    pub fn load_tokens_secure(&mut self) -> Result<(), HingeError> {
28        self.client.load_tokens_secure()
29    }
30
31    pub async fn is_session_valid(&mut self) -> Result<bool, HingeError> {
32        self.client.is_session_valid().await
33    }
34}