Skip to content
Clone
eba4fd1
59 lines 1.6 KB Rust
use admin::services::storage::{
DeleteObjectResp, DownloadUrlDto, StorageCategoryDto, StorageObjectDto, StorageObjectPageDto,
StorageOverviewDto,
};
use crate::convert::ts;
use crate::proto as pb;
pub fn overview(value: StorageOverviewDto) -> pb::StorageOverview {
pb::StorageOverview {
bucket: value.bucket,
total_bytes: value.total_bytes,
total_objects: value.total_objects,
categories: value.categories.into_iter().map(category).collect(),
generated_at: ts(value.generated_at),
cached: value.cached,
}
}
pub fn category(value: StorageCategoryDto) -> pb::StorageCategory {
pb::StorageCategory {
name: value.name,
prefix: value.prefix,
bytes: value.bytes,
objects: value.objects,
}
}
pub fn object(value: StorageObjectDto) -> pb::StorageObject {
pb::StorageObject {
key: value.key,
size: value.size,
last_modified: value.last_modified.map(|value| value.to_string()),
etag: value.etag,
}
}
pub fn object_page(value: StorageObjectPageDto) -> pb::StorageObjectPage {
pb::StorageObjectPage {
prefix: value.prefix,
items: value.items.into_iter().map(object).collect(),
next_token: value.next_token,
}
}
pub fn download_url(value: DownloadUrlDto) -> pb::DownloadUrl {
pb::DownloadUrl {
key: value.key,
url: value.url,
expires_in_secs: value.expires_in_secs,
}
}
pub fn delete_resp(value: DeleteObjectResp) -> pb::DeleteObjectResp {
pb::DeleteObjectResp {
key: value.key,
deleted: value.deleted,
}
}