#
mcaptcha/api/v1/account/
mod.rs

    1// Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
    2// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
    3//
    4// SPDX-License-Identifier: AGPL-3.0-or-later
    5
    6use serde::{Deserialize, Serialize};
    7
    8pub mod delete;
    9pub mod email;
    10pub mod password;
    11pub mod secret;
    12#[cfg(test)]
    13pub mod test;
    14pub mod username;
    15
    16pub use super::auth;
    17pub use super::mcaptcha;
    18
    19pub mod routes {
    20
    21    pub struct Account {
    22        pub delete: &'static str,
    23        pub email_exists: &'static str,
    24        pub get_secret: &'static str,
    25        pub update_email: &'static str,
    26        pub update_password: &'static str,
    27        pub update_secret: &'static str,
    28        pub username_exists: &'static str,
    29        pub update_username: &'static str,
    30    }
    31
    32    impl Account {
    33        pub const fn new() -> Account {
    34            let get_secret = "/api/v1/account/secret/get";
    35            let update_secret = "/api/v1/account/secret/update";
    36            let delete = "/api/v1/account/delete";
    37            let email_exists = "/api/v1/account/email/exists";
    38            let username_exists = "/api/v1/account/username/exists";
    39            let update_username = "/api/v1/account/username/update";
    40            let update_email = "/api/v1/account/email/update";
    41            let update_password = "/api/v1/account/password/update";
    42            Account {
    43                delete,
    44                email_exists,
    45                get_secret,
    46                update_email,
    47                update_password,
    48                update_secret,
    49                username_exists,
    50                update_username,
    51            }
    52        }
    53    }
    54}
    55
    56#[derive(Clone, Debug, Deserialize, Serialize)]
    57pub struct AccountCheckPayload {
    58    pub val: String,
    59}
    60
    61#[derive(Clone, Debug, Deserialize, Serialize)]
    62pub struct AccountCheckResp {
    63    pub exists: bool,
    64}
    65
    66pub fn services(cfg: &mut actix_web::web::ServiceConfig) {
    67    delete::services(cfg);
    68    email::services(cfg);
    69    username::services(cfg);
    70    secret::services(cfg);
    71    password::services(cfg);
    72}