1
0
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:
2021-04-11 17:32:50 +02:00
parent e5f9de0507
commit 9c6bd0a75a
3 changed files with 51 additions and 1 deletions

View File

@ -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 {