Add the shared domain event bus.
This commit is contained in:
@@ -10,8 +10,8 @@ use crate::db::queries::media as qm;
|
||||
use crate::db::queries::media_translation as qmt;
|
||||
use crate::db::queries::post as qp;
|
||||
use crate::db::queries::post_media as qpm;
|
||||
use crate::engine::{EngineError, EngineResult};
|
||||
use crate::model::{Media, MediaTranslation, PostMedia};
|
||||
use crate::engine::{EngineError, EngineResult, domain_events};
|
||||
use crate::model::{DomainEntity, Media, MediaTranslation, NotificationAction, PostMedia};
|
||||
use crate::util::sidecar::{
|
||||
MediaSidecar, MediaTranslationSidecar, read_sidecar, read_translation_sidecar,
|
||||
};
|
||||
@@ -178,6 +178,8 @@ pub(crate) fn import_media_at(
|
||||
// Index in FTS
|
||||
fts_index_media(conn, &media)?;
|
||||
|
||||
emit_media(&media, NotificationAction::Created);
|
||||
|
||||
Ok(media)
|
||||
}
|
||||
|
||||
@@ -231,6 +233,8 @@ pub fn update_media(
|
||||
// Re-index FTS
|
||||
fts_index_media(conn, &media)?;
|
||||
|
||||
emit_media(&media, NotificationAction::Updated);
|
||||
|
||||
Ok(media)
|
||||
}
|
||||
|
||||
@@ -338,6 +342,7 @@ pub fn replace_media_file(
|
||||
match apply_result {
|
||||
Ok(()) => {
|
||||
fs::remove_file(backup)?;
|
||||
emit_media(&media, NotificationAction::Updated);
|
||||
Ok(Some(media))
|
||||
}
|
||||
Err(error) => {
|
||||
@@ -416,9 +421,15 @@ pub fn delete_media(conn: &Connection, data_dir: &Path, media_id: &str) -> Engin
|
||||
// Delete from media table
|
||||
qm::delete_media(conn, media_id)?;
|
||||
|
||||
emit_media(&media, NotificationAction::Deleted);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn emit_media(media: &Media, action: NotificationAction) {
|
||||
domain_events::entity_changed(&media.project_id, DomainEntity::Media, &media.id, action);
|
||||
}
|
||||
|
||||
/// Create or update a translation for a media item.
|
||||
pub fn upsert_media_translation(
|
||||
conn: &Connection,
|
||||
|
||||
Reference in New Issue
Block a user