feat(application): export_diary::execute returns BoxStream<Bytes>

This commit is contained in:
2026-06-12 01:11:36 +02:00
parent 9c44330f14
commit d4c42f8567
2 changed files with 8 additions and 8 deletions

View File

@@ -15,6 +15,7 @@ sha2 = { workspace = true }
rand = { workspace = true }
hex = { workspace = true }
serde_json = { workspace = true }
bytes = { workspace = true }
[features]
xlsx = []

View File

@@ -1,22 +1,21 @@
use std::sync::Arc;
use bytes::Bytes;
use domain::{
errors::DomainError,
ports::{DiaryExporter, DiaryRepository},
value_objects::UserId,
};
use futures::stream::BoxStream;
use crate::diary::queries::ExportQuery;
pub async fn execute(
pub fn execute(
diary: &Arc<dyn DiaryRepository>,
diary_exporter: &Arc<dyn DiaryExporter>,
query: ExportQuery,
) -> Result<Vec<u8>, DomainError> {
let entries = diary
.get_user_history(&UserId::from_uuid(query.user_id))
.await?;
diary_exporter
.serialize_entries(&entries, query.format)
.await
) -> BoxStream<'static, Result<Bytes, DomainError>> {
let user_id = UserId::from_uuid(query.user_id);
let entry_stream = diary.stream_user_history(user_id);
diary_exporter.stream_entries(entry_stream, query.format)
}