This commit is contained in:
@@ -10,7 +10,6 @@ use domain::{
|
||||
use object_store::{ObjectStore, path::Path};
|
||||
use std::sync::Arc;
|
||||
|
||||
|
||||
pub struct ImageStorageAdapter {
|
||||
store: Arc<dyn ObjectStore>,
|
||||
}
|
||||
@@ -76,7 +75,9 @@ impl EventHandler for ImageCleanupHandler {
|
||||
DomainEvent::MovieDeleted { poster_path, .. } => poster_path,
|
||||
_ => return Ok(()),
|
||||
};
|
||||
let Some(path) = poster_path else { return Ok(()) };
|
||||
let Some(path) = poster_path else {
|
||||
return Ok(());
|
||||
};
|
||||
if let Err(e) = self.image_storage.delete(path.value()).await {
|
||||
tracing::warn!("image cleanup failed for {}: {e}", path.value());
|
||||
}
|
||||
@@ -85,7 +86,9 @@ impl EventHandler for ImageCleanupHandler {
|
||||
}
|
||||
|
||||
pub fn create() -> anyhow::Result<Arc<dyn ImageStorage>> {
|
||||
Ok(Arc::new(ImageStorageAdapter::from_config(StorageConfig::from_env()?)))
|
||||
Ok(Arc::new(ImageStorageAdapter::from_config(
|
||||
StorageConfig::from_env()?,
|
||||
)))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -39,7 +39,10 @@ async fn delete_missing_returns_ok() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn cleanup_handler_deletes_on_movie_deleted() {
|
||||
use domain::{events::DomainEvent, value_objects::{MovieId, PosterPath}};
|
||||
use domain::{
|
||||
events::DomainEvent,
|
||||
value_objects::{MovieId, PosterPath},
|
||||
};
|
||||
let inner = Arc::new(adapter());
|
||||
inner.store("some-uuid", b"img").await.unwrap();
|
||||
let path = PosterPath::new("some-uuid".to_string()).unwrap();
|
||||
@@ -51,5 +54,8 @@ async fn cleanup_handler_deletes_on_movie_deleted() {
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
assert!(matches!(inner.get("some-uuid").await, Err(DomainError::NotFound(_))));
|
||||
assert!(matches!(
|
||||
inner.get("some-uuid").await,
|
||||
Err(DomainError::NotFound(_))
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user