From d4c42f8567f492d1b94f71024dac244f975d9908 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Fri, 12 Jun 2026 01:11:36 +0200 Subject: [PATCH] feat(application): export_diary::execute returns BoxStream --- crates/application/Cargo.toml | 1 + crates/application/src/diary/export_diary.rs | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/application/Cargo.toml b/crates/application/Cargo.toml index 98620b8..cb47320 100644 --- a/crates/application/Cargo.toml +++ b/crates/application/Cargo.toml @@ -15,6 +15,7 @@ sha2 = { workspace = true } rand = { workspace = true } hex = { workspace = true } serde_json = { workspace = true } +bytes = { workspace = true } [features] xlsx = [] diff --git a/crates/application/src/diary/export_diary.rs b/crates/application/src/diary/export_diary.rs index 0eda689..4c80322 100644 --- a/crates/application/src/diary/export_diary.rs +++ b/crates/application/src/diary/export_diary.rs @@ -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, diary_exporter: &Arc, query: ExportQuery, -) -> Result, 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> { + 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) }