mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-06-20 08:25:16 +00:00
Create client push notification token
This commit is contained in:
@ -1,7 +1,44 @@
|
||||
use crate::constants::push_notifications_db_prefix::{FIREBASE_PREFIX, INDEPENDENT_PREFIX, NONE_PREFIX};
|
||||
use crate::constants::USER_ACCESS_TOKEN_ACTIVITY_REFRESH;
|
||||
use crate::data::user::UserID;
|
||||
use crate::utils::date_utils::time;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum PushNotificationToken {
|
||||
UNDEFINED,
|
||||
NONE,
|
||||
INDEPENDENT(String),
|
||||
FIREBASE(String),
|
||||
}
|
||||
|
||||
impl PushNotificationToken {
|
||||
pub fn from_db(token: Option<String>) -> Self {
|
||||
match token {
|
||||
None => Self::UNDEFINED,
|
||||
Some(s) => {
|
||||
if s.is_empty() {
|
||||
Self::UNDEFINED
|
||||
} else if s.starts_with(NONE_PREFIX) {
|
||||
Self::NONE
|
||||
} else if s.starts_with(INDEPENDENT_PREFIX) {
|
||||
Self::INDEPENDENT(s.replacen(INDEPENDENT_PREFIX, "", 1))
|
||||
} else {
|
||||
Self::FIREBASE(s.replacen(FIREBASE_PREFIX, "", 1))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn to_db(&self) -> Option<String> {
|
||||
match self {
|
||||
PushNotificationToken::UNDEFINED => None,
|
||||
PushNotificationToken::NONE => Some(NONE_PREFIX.to_string()),
|
||||
PushNotificationToken::INDEPENDENT(k) => Some(format!("{}{}", INDEPENDENT_PREFIX, k)),
|
||||
PushNotificationToken::FIREBASE(k) => Some(format!("{}{}", FIREBASE_PREFIX, k)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// User access token information
|
||||
///
|
||||
/// Author : Pierre Hubert
|
||||
@ -13,6 +50,7 @@ pub struct UserAccessToken {
|
||||
pub token: String,
|
||||
pub last_refresh: u64,
|
||||
pub timeout: u64,
|
||||
pub push_notifications_token: PushNotificationToken,
|
||||
}
|
||||
|
||||
impl UserAccessToken {
|
||||
|
Reference in New Issue
Block a user