1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-04-10 14:40:54 +00:00
comunicapiv3/src/api_data/general_settings_api.rs
2021-04-16 15:13:35 +02:00

49 lines
1.5 KiB
Rust

//! # General settings API
//!
//! @author Pierre Hubert
use serde::Serialize;
use crate::data::user::User;
#[derive(Serialize)]
#[allow(non_snake_case)]
pub struct GeneralSettingsAPI {
id: u64,
email: String,
firstName: String,
lastName: String,
is_public: bool,
is_open: bool,
allow_comments: bool,
allow_posts_from_friends: bool,
allow_comunic_mails: bool,
public_friends_list: bool,
public_email: bool,
virtual_directory: String,
personnal_website: String,
publicNote: String,
location: Option<String>,
}
impl GeneralSettingsAPI {
pub fn new(user: &User) -> GeneralSettingsAPI {
GeneralSettingsAPI {
id: user.id.id(),
email: user.email.clone(),
firstName: user.first_name.clone(),
lastName: user.last_name.clone(),
is_public: user.is_page_public(),
is_open: user.is_page_open(),
allow_comments: !user.block_comments_on_his_page,
allow_posts_from_friends: user.allow_posts_from_friends,
allow_comunic_mails: user.allow_mails,
public_friends_list: user.public_friends_list,
public_email: user.is_email_public,
virtual_directory: user.virtual_directory.clone().unwrap_or(String::new()),
personnal_website: user.personal_website.clone().unwrap_or(String::new()),
publicNote: user.public_note.clone().unwrap_or(String::new()),
location: user.location.clone(),
}
}
}