rs_firebase_admin_sdk/api_uri/
mod.rs

1//! API URI builder interface and API path definitions
2
3/// Firebase Auth admin REST API endpoints
4pub enum FirebaseAuthRestApi {
5    CreateUser,
6    GetUsers,
7    ListUsers,
8    DeleteUser,
9    DeleteUsers,
10    UpdateUser,
11    ImportUsers,
12    CreateSessionCookie,
13    SendOobCode,
14}
15
16impl From<FirebaseAuthRestApi> for &'static str {
17    fn from(path: FirebaseAuthRestApi) -> Self {
18        match path {
19            FirebaseAuthRestApi::CreateUser => "/accounts",
20            FirebaseAuthRestApi::GetUsers => "/accounts:lookup",
21            FirebaseAuthRestApi::ListUsers => "/accounts:batchGet",
22            FirebaseAuthRestApi::DeleteUser => "/accounts:delete",
23            FirebaseAuthRestApi::DeleteUsers => "/accounts:batchDelete",
24            FirebaseAuthRestApi::UpdateUser => "/accounts:update",
25            FirebaseAuthRestApi::ImportUsers => "/accounts:batchCreate",
26            FirebaseAuthRestApi::CreateSessionCookie => ":createSessionCookie",
27            FirebaseAuthRestApi::SendOobCode => "/accounts:sendOobCode",
28        }
29    }
30}
31
32/// Firebase Auth emulator admin REST API endpoints
33pub enum FirebaseAuthEmulatorRestApi {
34    ClearUserAccounts,
35    Configuration,
36    OobCodes,
37    SmsVerificationCodes,
38}
39
40impl From<FirebaseAuthEmulatorRestApi> for &'static str {
41    fn from(path: FirebaseAuthEmulatorRestApi) -> Self {
42        match path {
43            FirebaseAuthEmulatorRestApi::ClearUserAccounts => "/accounts",
44            FirebaseAuthEmulatorRestApi::Configuration => "/config",
45            FirebaseAuthEmulatorRestApi::OobCodes => "/oobCodes",
46            FirebaseAuthEmulatorRestApi::SmsVerificationCodes => "/verificationCodes",
47        }
48    }
49}
50
51#[derive(Debug, Clone)]
52pub struct ApiUriBuilder {
53    root_prefix: String,
54}
55
56impl ApiUriBuilder {
57    pub fn new(root_prefix: String) -> Self {
58        Self { root_prefix }
59    }
60
61    pub fn build<PathT: Into<&'static str>>(&self, path: PathT) -> String {
62        self.root_prefix.clone() + path.into()
63    }
64}