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:
29
src/api_data/custom_emoji.rs
Normal file
29
src/api_data/custom_emoji.rs
Normal 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),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
@ -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(),
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user