mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-15 19:58:05 +00:00
Can open new conversations
This commit is contained in:
42
src/api_data/conversation_message_api.rs
Normal file
42
src/api_data/conversation_message_api.rs
Normal file
@ -0,0 +1,42 @@
|
||||
//! # Conversation message API
|
||||
//!
|
||||
//! API representation of a conversation message
|
||||
//!
|
||||
//! @author Pierre HUBERT
|
||||
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::data::conversation_message::ConversationMessage;
|
||||
use crate::utils::user_data_utils::user_data_url;
|
||||
|
||||
#[derive(Serialize)]
|
||||
#[allow(non_snake_case)]
|
||||
pub struct ConversationMessageAPI {
|
||||
ID: u64,
|
||||
convID: u64,
|
||||
ID_user: u64,
|
||||
time_insert: u64,
|
||||
message: String,
|
||||
image_path: Option<String>,
|
||||
}
|
||||
|
||||
impl ConversationMessageAPI {
|
||||
/// Turn a conversation message into an API entry
|
||||
pub fn new(msg: &ConversationMessage) -> ConversationMessageAPI {
|
||||
ConversationMessageAPI {
|
||||
ID: msg.id,
|
||||
convID: msg.conv_id,
|
||||
ID_user: msg.user_id as u64,
|
||||
time_insert: msg.time_sent,
|
||||
message: msg.message.clone().unwrap_or(String::new()),
|
||||
image_path: msg.image_path.as_ref().map(|f| user_data_url(f)),
|
||||
}
|
||||
}
|
||||
|
||||
/// Turn a list of conversation messages into API entries
|
||||
pub fn for_list(l: &Vec<ConversationMessage>) -> Vec<ConversationMessageAPI> {
|
||||
l.iter()
|
||||
.map(|m| ConversationMessageAPI::new(m))
|
||||
.collect()
|
||||
}
|
||||
}
|
37
src/api_data/conversations_refresh_api.rs
Normal file
37
src/api_data/conversations_refresh_api.rs
Normal file
@ -0,0 +1,37 @@
|
||||
//! # Conversation refresh result
|
||||
//!
|
||||
//! Note : this structure is now deprecated and should no longer be used for further developments
|
||||
//!
|
||||
//! @author Pierre Hubert
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::api_data::conversation_message_api::ConversationMessageAPI;
|
||||
use crate::data::conversation_message::ConversationMessage;
|
||||
|
||||
#[derive(Serialize)]
|
||||
#[allow(non_snake_case)]
|
||||
pub struct ConversationRefreshResultAPI {
|
||||
#[serde(flatten)]
|
||||
list: HashMap<String, Vec<ConversationMessageAPI>>,
|
||||
}
|
||||
|
||||
impl ConversationRefreshResultAPI {
|
||||
/// Create a new list
|
||||
pub fn new(list: HashMap<u64, Vec<ConversationMessage>>) -> ConversationRefreshResultAPI {
|
||||
let list = list
|
||||
.iter()
|
||||
.map(|v| (
|
||||
format!("conversation-{}", v.0),
|
||||
ConversationMessageAPI::for_list(v.1)
|
||||
))
|
||||
.collect();
|
||||
|
||||
ConversationRefreshResultAPI {
|
||||
list
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,4 +17,6 @@ pub mod res_find_virtual_directory;
|
||||
pub mod res_create_conversation;
|
||||
pub mod conversation_api;
|
||||
mod legacy_api_bool;
|
||||
pub mod res_find_private_conversations;
|
||||
pub mod res_find_private_conversations;
|
||||
pub mod conversation_message_api;
|
||||
pub mod conversations_refresh_api;
|
Reference in New Issue
Block a user