changes
All checks were successful
CI / ci (push) Successful in 19m38s

This commit is contained in:
2026-08-26 20:55:30 +02:00
parent a557c183e9
commit 23d052278a
523 changed files with 24448 additions and 2005 deletions

View File

@@ -4,16 +4,20 @@ use domain::entry::MoodEntryId;
use domain::errors::DomainError;
use domain::events::{DomainEvent, EventEnvelope};
use domain::ports::{
EventPublisherPort, MediaStoragePort, MoodEntryCommandPort, MoodEntryQueryPort,
EntryDimensionPort, EventPublisherPort, MediaStoragePort, MoodEntryCommandPort,
MoodEntryQueryPort,
};
use domain::user::UserId;
use crate::authorization::verify_ownership;
use crate::entry::composition::EntryComposer;
use crate::errors::ApplicationError;
use crate::media::cleanup::delete_media_for;
pub struct Deps {
pub command: Arc<dyn MoodEntryCommandPort>,
pub query: Arc<dyn MoodEntryQueryPort>,
pub dimensions: Vec<Arc<dyn EntryDimensionPort>>,
pub events: Arc<dyn EventPublisherPort>,
pub media_storage: Arc<dyn MediaStoragePort>,
}
@@ -32,23 +36,15 @@ pub async fn execute(
verify_ownership(entry.user_id(), &caller_id)?;
for photo_id in entry.photos() {
if let Err(e) = deps.media_storage.delete_photo(photo_id).await {
tracing::warn!(%e, "failed to delete photo blob");
}
}
for memo_id in entry.voice_memos() {
if let Err(e) = deps.media_storage.delete_voice_memo(memo_id).await {
tracing::warn!(%e, "failed to delete voice memo blob");
}
}
let user_id = entry.user_id().clone();
let composed = EntryComposer::new(deps.dimensions.clone())
.compose(vec![entry])
.await?;
delete_media_for(&composed, &deps.media_storage).await;
deps.command.delete(&entry_id).await?;
let event = DomainEvent::EntryDeleted {
entry_id,
user_id: entry.user_id().clone(),
};
let event = DomainEvent::EntryDeleted { entry_id, user_id };
deps.events.publish(EventEnvelope::wrap(event)).await?;
Ok(())