1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-02-22 16:51:17 +00:00
comunicapiv3/src/api_data/push_notifications_status_api.rs

31 lines
977 B
Rust
Raw Normal View History

//! # Push notification status API
use serde::Serialize;
2021-04-12 17:03:42 +02:00
use crate::data::config::conf;
use crate::data::user_token::PushNotificationToken;
#[derive(Serialize)]
pub struct PushNotificationsStatusAPI {
pub status: String,
2021-04-12 17:03:42 +02:00
pub independent_push_url: Option<String>,
}
impl PushNotificationsStatusAPI {
pub fn new(t: &PushNotificationToken) -> Self {
Self {
status: match t {
PushNotificationToken::UNDEFINED => "undefined",
PushNotificationToken::NONE => "disabled",
PushNotificationToken::INDEPENDENT(_) => "independent",
PushNotificationToken::FIREBASE(_) => "firebase",
}.to_string(),
2021-04-12 17:03:42 +02:00
independent_push_url: match (t, &conf().independent_push_service) {
(PushNotificationToken::INDEPENDENT(i), Some(conf)) =>
Some(conf.public_url.replace("{TOKEN_URL}", i)),
_ => None,
},
}
}
}