Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04eaa1dff1
|
||
|
|
179a550034 | ||
|
|
a8e173d831 | ||
|
|
6975475330 | ||
|
|
b28d26e26b | ||
|
|
c85ca95016 | ||
|
|
cfd5050f98 |
@@ -2,7 +2,6 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct TwilioConfig {
|
||||
// #[serde(skip_serializing_if = "init::is_uuid_nil")]
|
||||
#[serde(alias = "auth_id")]
|
||||
pub account_sid: uuid::Uuid,
|
||||
#[serde(skip_serializing_if = "String::is_empty")]
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
pub mod config;
|
||||
pub mod contact;
|
||||
pub mod token;
|
||||
pub mod user;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct Claims {
|
||||
pub user_id: uuid::Uuid,
|
||||
pub role: String,
|
||||
#[serde(alias = "iss")]
|
||||
pub issued: String,
|
||||
#[serde(alias = "exp")]
|
||||
pub expired: i64,
|
||||
#[serde(alias = "iat")]
|
||||
pub issued_at: i64,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct LoginResult {
|
||||
pub user_id: uuid::Uuid,
|
||||
pub access_token: String,
|
||||
pub token_type: String,
|
||||
pub expires_in: i64,
|
||||
pub issued_at: i64,
|
||||
}
|
||||
|
||||
// Alias for LoginResult
|
||||
pub type Login = LoginResult;
|
||||
@@ -0,0 +1,69 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct User {
|
||||
pub id: uuid::Uuid,
|
||||
pub phone_number: String,
|
||||
pub username: String,
|
||||
pub password: String,
|
||||
// Firstname is a pointer
|
||||
pub firstname: String,
|
||||
// Lastname is a pointer
|
||||
pub lastname: String,
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub created: Option<time::OffsetDateTime>,
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub last_login: Option<time::OffsetDateTime>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct ServiceUser {
|
||||
pub id: uuid::Uuid,
|
||||
pub username: String,
|
||||
pub passphrase: String,
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub created: Option<time::OffsetDateTime>,
|
||||
// When serializing to json, if empty do not populate
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub last_login: Option<time::OffsetDateTime>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct UserLoginHistory {
|
||||
pub id: uuid::Uuid,
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub login_time: Option<time::OffsetDateTime>,
|
||||
pub user_id: uuid::Uuid,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct ServiceUserLoginHistory {
|
||||
pub id: uuid::Uuid,
|
||||
#[serde(with = "time::serde::rfc3339::option")]
|
||||
pub login_time: Option<time::OffsetDateTime>,
|
||||
pub service_user_id: uuid::Uuid,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct UserProfile {
|
||||
pub user_id: uuid::Uuid,
|
||||
pub phone_number: String,
|
||||
pub username: String,
|
||||
pub firstname: String,
|
||||
pub lastname: String,
|
||||
pub created: Option<time::OffsetDateTime>,
|
||||
pub last_login: Option<time::OffsetDateTime>,
|
||||
}
|
||||
|
||||
pub fn init_user_profile(usr: &User) -> UserProfile {
|
||||
let mut usrProfile = UserProfile::default();
|
||||
usrProfile.user_id = usr.id.clone();
|
||||
usrProfile.phone_number = usr.phone_number.clone();
|
||||
usrProfile.username = usr.username.clone();
|
||||
usrProfile.firstname = usr.firstname.clone();
|
||||
usrProfile.lastname = usr.lastname.clone();
|
||||
usrProfile.created = usr.created.clone();
|
||||
usrProfile.last_login = usr.last_login.clone();
|
||||
|
||||
return usrProfile;
|
||||
}
|
||||
Reference in New Issue
Block a user