cargo fmt
This commit is contained in:
@@ -20,14 +20,20 @@ pub struct Attachment {
|
||||
|
||||
impl Attachment {
|
||||
pub fn get_path(&self, preview: bool) -> PathBuf {
|
||||
self.base_path.with_extension(if preview { "preview" } else { "full" })
|
||||
self.base_path
|
||||
.with_extension(if preview { "preview" } else { "full" })
|
||||
}
|
||||
|
||||
pub fn is_downloaded(&self, preview: bool) -> bool {
|
||||
std::fs::exists(&self.get_path(preview))
|
||||
.expect(format!("Wasn't able to check for the existence of an attachment file path at {}", &self.get_path(preview).display()).as_str())
|
||||
std::fs::exists(&self.get_path(preview)).expect(
|
||||
format!(
|
||||
"Wasn't able to check for the existence of an attachment file path at {}",
|
||||
&self.get_path(preview).display()
|
||||
)
|
||||
.as_str(),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<kordophone::model::message::AttachmentMetadata> for AttachmentMetadata {
|
||||
fn from(metadata: kordophone::model::message::AttachmentMetadata) -> Self {
|
||||
@@ -61,4 +67,4 @@ impl From<AttributionInfo> for kordophone::model::message::AttributionInfo {
|
||||
height: info.height,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use chrono::NaiveDateTime;
|
||||
use chrono::DateTime;
|
||||
use chrono::NaiveDateTime;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use crate::daemon::attachment_store::AttachmentStore;
|
||||
use crate::daemon::models::Attachment;
|
||||
use kordophone::model::message::AttachmentMetadata;
|
||||
use kordophone::model::outgoing_message::OutgoingMessage;
|
||||
use crate::daemon::models::Attachment;
|
||||
use crate::daemon::attachment_store::AttachmentStore;
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum Participant {
|
||||
@@ -54,7 +54,7 @@ impl Participant {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Message {
|
||||
pub id: String,
|
||||
pub sender: Participant,
|
||||
@@ -63,24 +63,34 @@ pub struct Message {
|
||||
pub attachments: Vec<Attachment>,
|
||||
}
|
||||
|
||||
fn attachments_from(file_transfer_guids: &Vec<String>, attachment_metadata: &Option<HashMap<String, AttachmentMetadata>>) -> Vec<Attachment> {
|
||||
fn attachments_from(
|
||||
file_transfer_guids: &Vec<String>,
|
||||
attachment_metadata: &Option<HashMap<String, AttachmentMetadata>>,
|
||||
) -> Vec<Attachment> {
|
||||
file_transfer_guids
|
||||
.iter()
|
||||
.map(|guid| {
|
||||
let mut attachment = AttachmentStore::get_attachment_impl(&AttachmentStore::get_default_store_path(), guid);
|
||||
let mut attachment = AttachmentStore::get_attachment_impl(
|
||||
&AttachmentStore::get_default_store_path(),
|
||||
guid,
|
||||
);
|
||||
attachment.metadata = match attachment_metadata {
|
||||
Some(attachment_metadata) => attachment_metadata.get(guid).cloned().map(|metadata| metadata.into()),
|
||||
Some(attachment_metadata) => attachment_metadata
|
||||
.get(guid)
|
||||
.cloned()
|
||||
.map(|metadata| metadata.into()),
|
||||
None => None,
|
||||
};
|
||||
|
||||
attachment
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
}
|
||||
|
||||
impl From<kordophone_db::models::Message> for Message {
|
||||
fn from(message: kordophone_db::models::Message) -> Self {
|
||||
let attachments = attachments_from(&message.file_transfer_guids, &message.attachment_metadata);
|
||||
let attachments =
|
||||
attachments_from(&message.file_transfer_guids, &message.attachment_metadata);
|
||||
Self {
|
||||
id: message.id,
|
||||
sender: message.sender.into(),
|
||||
@@ -105,11 +115,21 @@ impl From<Message> for kordophone_db::models::Message {
|
||||
date: message.date,
|
||||
file_transfer_guids: message.attachments.iter().map(|a| a.guid.clone()).collect(),
|
||||
attachment_metadata: {
|
||||
let metadata_map: HashMap<String, kordophone::model::message::AttachmentMetadata> = message.attachments
|
||||
.iter()
|
||||
.filter_map(|a| a.metadata.as_ref().map(|m| (a.guid.clone(), m.clone().into())))
|
||||
.collect();
|
||||
if metadata_map.is_empty() { None } else { Some(metadata_map) }
|
||||
let metadata_map: HashMap<String, kordophone::model::message::AttachmentMetadata> =
|
||||
message
|
||||
.attachments
|
||||
.iter()
|
||||
.filter_map(|a| {
|
||||
a.metadata
|
||||
.as_ref()
|
||||
.map(|m| (a.guid.clone(), m.clone().into()))
|
||||
})
|
||||
.collect();
|
||||
if metadata_map.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(metadata_map)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -117,7 +137,8 @@ impl From<Message> for kordophone_db::models::Message {
|
||||
|
||||
impl From<kordophone::model::Message> for Message {
|
||||
fn from(message: kordophone::model::Message) -> Self {
|
||||
let attachments = attachments_from(&message.file_transfer_guids, &message.attachment_metadata);
|
||||
let attachments =
|
||||
attachments_from(&message.file_transfer_guids, &message.attachment_metadata);
|
||||
Self {
|
||||
id: message.guid,
|
||||
sender: match message.sender {
|
||||
@@ -130,12 +151,10 @@ impl From<kordophone::model::Message> for Message {
|
||||
text: message.text,
|
||||
date: DateTime::from_timestamp(
|
||||
message.date.unix_timestamp(),
|
||||
message.date.unix_timestamp_nanos()
|
||||
.try_into()
|
||||
.unwrap_or(0),
|
||||
)
|
||||
.unwrap()
|
||||
.naive_local(),
|
||||
message.date.unix_timestamp_nanos().try_into().unwrap_or(0),
|
||||
)
|
||||
.unwrap()
|
||||
.naive_local(),
|
||||
attachments,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,4 +2,4 @@ pub mod attachment;
|
||||
pub mod message;
|
||||
|
||||
pub use attachment::Attachment;
|
||||
pub use message::Message;
|
||||
pub use message::Message;
|
||||
|
||||
Reference in New Issue
Block a user