27 lines
949 B
Rust
27 lines
949 B
Rust
use magnetar_calckey_model::ck;
|
|
use magnetar_sdk::types::drive::{DriveFileBase, ImageMeta};
|
|
use serde::Deserialize;
|
|
|
|
use crate::model::{PackType, PackingContext};
|
|
|
|
impl PackType<&ck::drive_file::Model> for DriveFileBase {
|
|
fn extract(_context: &PackingContext, file: &ck::drive_file::Model) -> Self {
|
|
let media_metadata = ImageMeta::deserialize(file.properties.clone()).unwrap_or_default();
|
|
|
|
DriveFileBase {
|
|
name: file.name.clone(),
|
|
created_at: file.created_at.into(),
|
|
size: file.size as u64,
|
|
hash: None, // TODO: blake3
|
|
mime_type: file.r#type.clone(),
|
|
media_metadata,
|
|
url: Some(file.url.clone()),
|
|
thumbnail_url: file.thumbnail_url.clone(),
|
|
sensitive: file.is_sensitive,
|
|
comment: file.comment.clone(),
|
|
folder_id: file.folder_id.clone(),
|
|
user_id: file.user_id.clone(),
|
|
}
|
|
}
|
|
}
|