feat(application): export_diary::execute returns BoxStream<Bytes>
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user