directory entries show created at date
This commit is contained in:
@@ -9,14 +9,21 @@ pub struct File {
|
||||
name: FileName,
|
||||
file_type: FileType,
|
||||
mime_type: Option<FileMimeType>,
|
||||
created_at: u64,
|
||||
}
|
||||
|
||||
impl File {
|
||||
pub fn new(name: FileName, file_type: FileType, mime_type: Option<FileMimeType>) -> Self {
|
||||
pub fn new(
|
||||
name: FileName,
|
||||
file_type: FileType,
|
||||
mime_type: Option<FileMimeType>,
|
||||
created_at: u64,
|
||||
) -> Self {
|
||||
Self {
|
||||
name,
|
||||
file_type,
|
||||
mime_type,
|
||||
created_at,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +38,10 @@ impl File {
|
||||
pub fn mime_type(&self) -> Option<&FileMimeType> {
|
||||
self.mime_type.as_ref()
|
||||
}
|
||||
|
||||
pub fn created_at(&self) -> u64 {
|
||||
self.created_at
|
||||
}
|
||||
}
|
||||
|
||||
/// A valid file name
|
||||
|
||||
@@ -68,6 +68,7 @@ pub struct WarrenFileElement {
|
||||
name: String,
|
||||
file_type: FileType,
|
||||
mime_type: Option<String>,
|
||||
created_at: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
|
||||
@@ -82,6 +83,7 @@ impl From<File> for WarrenFileElement {
|
||||
name: value.name().to_string(),
|
||||
file_type: value.file_type().to_owned(),
|
||||
mime_type: value.mime_type().map(FileMimeType::to_string),
|
||||
created_at: value.created_at(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use std::time::UNIX_EPOCH;
|
||||
|
||||
use anyhow::{Context, anyhow};
|
||||
use tokio::{fs, io::AsyncWriteExt as _};
|
||||
|
||||
@@ -67,13 +69,20 @@ impl FileSystem {
|
||||
continue;
|
||||
}
|
||||
};
|
||||
let metadata = entry.metadata().await?;
|
||||
let created_at = metadata.created()?.duration_since(UNIX_EPOCH)?.as_secs();
|
||||
|
||||
let mime_type = match file_type {
|
||||
FileType::File => FileMimeType::from_name(&name),
|
||||
_ => None,
|
||||
};
|
||||
|
||||
files.push(File::new(FileName::new(&name)?, file_type, mime_type));
|
||||
files.push(File::new(
|
||||
FileName::new(&name)?,
|
||||
file_type,
|
||||
mime_type,
|
||||
created_at,
|
||||
));
|
||||
}
|
||||
|
||||
Ok(files)
|
||||
|
||||
Reference in New Issue
Block a user