dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
use std::str::FromStr;

use serde_variant::to_variant_name;

use dialtone_common::rest::users::web_user::UserStatus;
use dialtone_sqlx_macros::SqlxEnumProxy;

pub use crate::control::user::create::create_user;

pub mod change_status;
pub mod check_bcrypt;
pub mod check_name_available;
pub mod fetch_auth_and_mark_seen;
pub mod fetch_info;
pub mod fetch_sysinfo;
pub mod insert;
pub mod page;
pub mod update_auth;
pub mod update_prefs;
pub mod update_system_data;

#[derive(sqlx::Type, Debug, PartialEq, SqlxEnumProxy)]
#[sqlx(type_name = "user_principal_status_type")]
#[proxy_for(UserStatus)]
pub enum UserPrincipalStatusType {
    Active,

    Suspended,

    #[sqlx(rename = "Pending Approval")]
    PendingApproval,
}

pub const WEB_USER_JSON_OBJECT: &str = r#"
json_build_object(
    'user_authz', json_build_object(
        'acct', acct,
        'system_permissions', system_permissions
    ),
    'preferences', preferences,
    'last_seen_data', last_seen_data,
    'last_login_data', last_login_data,
    'status', status,
    'created_at', created_at,
    'modified_at', modified_at 
)
"#;

pub const USER_SYSTEM_INFO_JSON_OBJECT: &str = r#"
json_build_object(
    'system_data', system_data,
    'created_at', created_at,
    'modified_at', modified_at 
)
"#;