2020-07-10 10:55:50 +00:00
|
|
|
//! # Notifications controller
|
|
|
|
//!
|
|
|
|
//! @author Pierre Hubert
|
|
|
|
|
2020-07-11 06:14:30 +00:00
|
|
|
use crate::api_data::notification_api::NotificationAPI;
|
2020-07-10 11:31:40 +00:00
|
|
|
use crate::api_data::res_count_all_unreads::ResCountAllUnread;
|
2020-07-10 10:55:50 +00:00
|
|
|
use crate::api_data::res_number_unread_notifications::ResNumberUnreadNotifications;
|
|
|
|
use crate::controllers::routes::RequestResult;
|
|
|
|
use crate::data::http_request_handler::HttpRequestHandler;
|
2020-07-10 11:31:40 +00:00
|
|
|
use crate::helpers::{conversations_helper, friends_helper, notifications_helper};
|
2020-07-10 10:55:50 +00:00
|
|
|
|
|
|
|
/// Count the number of unread notifications
|
|
|
|
pub fn count_unread(r: &mut HttpRequestHandler) -> RequestResult {
|
|
|
|
let number = notifications_helper::count_unread(r.user_id_ref()?)?;
|
|
|
|
r.set_response(ResNumberUnreadNotifications::new(number))
|
2020-07-10 11:31:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// Count the number of unread notifications
|
|
|
|
pub fn count_all_news(r: &mut HttpRequestHandler) -> RequestResult {
|
|
|
|
let notifications = notifications_helper::count_unread(r.user_id_ref()?)?;
|
|
|
|
let conversations = conversations_helper::count_unread_for_user(r.user_id_ref()?)?;
|
|
|
|
let friends_requests = match r.post_bool_opt("friends_request", false) {
|
|
|
|
true => Some(friends_helper::count_requests(r.user_id_ref()?)?),
|
|
|
|
false => None
|
|
|
|
};
|
|
|
|
|
|
|
|
r.set_response(ResCountAllUnread::new(notifications, conversations as u64, friends_requests))
|
2020-07-11 06:14:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// Get the list of unread notifications
|
|
|
|
pub fn get_list_unread(r: &mut HttpRequestHandler) -> RequestResult {
|
|
|
|
let list = notifications_helper::get_list_unread(r.user_id_ref()?)?;
|
|
|
|
|
|
|
|
r.set_response(NotificationAPI::for_list(&list))
|
2020-07-10 10:55:50 +00:00
|
|
|
}
|