1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Get user custom emojies

This commit is contained in:
2020-05-26 19:45:38 +02:00
parent 2b1161c3f0
commit c4f8e5fa97
9 changed files with 106 additions and 4 deletions

View File

@ -0,0 +1,29 @@
//! # Custom emoji API object
//!
//! @author Pierre Hubert
use serde::Serialize;
use crate::data::custom_emoji::CustomEmoji;
use crate::utils::user_data_utils::user_data_url;
#[derive(Serialize)]
#[allow(non_snake_case)]
pub struct CustomEmojiAPI {
id: u64,
userID: i64,
shortcut: String,
url: String
}
impl CustomEmojiAPI {
/// Create a new Custom Emoji API entry
pub fn new(custom_emoji: &CustomEmoji) -> CustomEmojiAPI {
CustomEmojiAPI {
id: custom_emoji.id,
userID: custom_emoji.user_id,
shortcut: custom_emoji.shortcut.to_string(),
url: user_data_url(&custom_emoji.path),
}
}
}

View File

@ -10,4 +10,5 @@
pub mod http_error;
pub mod login_success;
pub mod current_user_id;
pub mod user_info;
pub mod user_info;
pub mod custom_emoji;

View File

@ -4,10 +4,11 @@
use serde::Serialize;
use crate::data::user::{User, UserPageStatus, UserID};
use crate::helpers::friends_helper;
use crate::helpers::{friends_helper, custom_emojies_helper};
use crate::data::error::ResultBoxError;
use crate::utils::user_data_utils::user_data_url;
use crate::data::user::AccountImageVisibility::{EVERYONE, COMUNIC_USERS};
use crate::api_data::custom_emoji::CustomEmojiAPI;
#[derive(Serialize)]
#[allow(non_snake_case)]
@ -19,6 +20,7 @@ pub struct APIUserInfo {
openPage: bool,
virtualDirectory: String,
accountImage: String,
customEmojis: Vec<CustomEmojiAPI>,
}
impl APIUserInfo {
@ -33,6 +35,10 @@ impl APIUserInfo {
openPage: info.status == UserPageStatus::OPEN,
virtualDirectory: info.virtual_directory.clone().unwrap_or(String::new()),
accountImage: APIUserInfo::get_account_image_url(user_id, info)?,
customEmojis: custom_emojies_helper::get_list_user(info.id)?
.iter()
.map(|f| CustomEmojiAPI::new(f))
.collect(),
})
}