mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-11-04 09:34:04 +00:00 
			
		
		
		
	Can set (update) notifications settings
This commit is contained in:
		@@ -16,6 +16,7 @@ use crate::data::http_request_handler::HttpRequestHandler;
 | 
			
		||||
use crate::data::lang_settings::LangSettings;
 | 
			
		||||
use crate::data::new_custom_emoji::NewCustomEmoji;
 | 
			
		||||
use crate::data::new_data_conservation_policy::NewDataConservationPolicy;
 | 
			
		||||
use crate::data::new_notifications_settings::NewNotificationsSettings;
 | 
			
		||||
use crate::data::security_settings::{SecurityQuestion, SecuritySettings};
 | 
			
		||||
use crate::data::user::{AccountImageVisibility, UserPageStatus};
 | 
			
		||||
use crate::helpers::{account_helper, custom_emojies_helper, user_helper};
 | 
			
		||||
@@ -259,9 +260,20 @@ pub fn set_data_conservation_policy(r: &mut HttpRequestHandler) -> RequestResult
 | 
			
		||||
    r.success("Successfully updated data conservation policy!")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get notification settings
 | 
			
		||||
/// Get notifications settings
 | 
			
		||||
pub fn get_notifications(r: &mut HttpRequestHandler) -> RequestResult {
 | 
			
		||||
    let user = user_helper::find_user_by_id(r.user_id_ref()?)?;
 | 
			
		||||
 | 
			
		||||
    r.set_response(NotificationSettingsAPI::new(&user))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Set (update) notifications settings
 | 
			
		||||
pub fn set_notifications(r: &mut HttpRequestHandler) -> RequestResult {
 | 
			
		||||
    account_helper::set_notifications_settings(NewNotificationsSettings {
 | 
			
		||||
        user_id: r.user_id()?,
 | 
			
		||||
        allow_notifications_sound: r.post_bool("allow_notifications_sound")?,
 | 
			
		||||
        allow_conversations: r.post_bool("allow_conversations")?,
 | 
			
		||||
    })?;
 | 
			
		||||
 | 
			
		||||
    r.ok()
 | 
			
		||||
}
 | 
			
		||||
@@ -37,4 +37,5 @@ pub mod new_data_conservation_policy;
 | 
			
		||||
pub mod new_custom_emoji;
 | 
			
		||||
pub mod user_ws_message;
 | 
			
		||||
pub mod user_ws_connection;
 | 
			
		||||
pub mod call_signal;
 | 
			
		||||
pub mod call_signal;
 | 
			
		||||
pub mod new_notifications_settings;
 | 
			
		||||
							
								
								
									
										11
									
								
								src/data/new_notifications_settings.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/data/new_notifications_settings.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
//! # New conversation settings
 | 
			
		||||
//!
 | 
			
		||||
//! @author Pierre Hubert
 | 
			
		||||
 | 
			
		||||
use crate::data::user::UserID;
 | 
			
		||||
 | 
			
		||||
pub struct NewNotificationsSettings {
 | 
			
		||||
    pub user_id: UserID,
 | 
			
		||||
    pub allow_notifications_sound: bool,
 | 
			
		||||
    pub allow_conversations: bool,
 | 
			
		||||
}
 | 
			
		||||
@@ -10,6 +10,7 @@ use crate::data::general_settings::GeneralSettings;
 | 
			
		||||
use crate::data::lang_settings::LangSettings;
 | 
			
		||||
use crate::data::new_account::NewAccount;
 | 
			
		||||
use crate::data::new_data_conservation_policy::NewDataConservationPolicy;
 | 
			
		||||
use crate::data::new_notifications_settings::NewNotificationsSettings;
 | 
			
		||||
use crate::data::security_settings::SecuritySettings;
 | 
			
		||||
use crate::data::user::{AccountImageVisibility, User, UserID, UserPageStatus};
 | 
			
		||||
use crate::data::user_token::UserAccessToken;
 | 
			
		||||
@@ -294,6 +295,15 @@ pub fn set_data_conservation_policy(new_policy: NewDataConservationPolicy) -> Re
 | 
			
		||||
        .exec()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Set new notifications settings
 | 
			
		||||
pub fn set_notifications_settings(new_settings: NewNotificationsSettings) -> Res {
 | 
			
		||||
    database::UpdateInfo::new(USERS_TABLE)
 | 
			
		||||
        .cond_user_id("ID", &new_settings.user_id)
 | 
			
		||||
        .set_legacy_bool("allow_notif_sound", new_settings.allow_notifications_sound)
 | 
			
		||||
        .set_legacy_bool("allow_notif_conv", new_settings.allow_conversations)
 | 
			
		||||
        .exec()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Export an account's data
 | 
			
		||||
pub fn export(user_id: &UserID) -> ResultBoxError<AccountExport> {
 | 
			
		||||
    let mut data = AccountExport {
 | 
			
		||||
 
 | 
			
		||||
@@ -175,6 +175,7 @@ pub fn get_routes() -> Vec<Route> {
 | 
			
		||||
        Route::post("/settings/get_data_conservation_policy", Box::new(settings_controller::get_data_conservation_policy)),
 | 
			
		||||
        Route::limited_post("/settings/set_data_conservation_policy", Box::new(settings_controller::set_data_conservation_policy), LimitPolicy::FAILURE(10)),
 | 
			
		||||
        Route::post("/settings/get_notifications", Box::new(settings_controller::get_notifications)),
 | 
			
		||||
        Route::post("/settings/set_notifications", Box::new(settings_controller::set_notifications)),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // Friends controller
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user