Minor changes

This commit is contained in:
Brage Skjønborg 2026-01-31 13:26:41 +01:00
parent c39366960f
commit 15f8c4c076
3 changed files with 12 additions and 14 deletions

View File

@ -9,6 +9,7 @@ import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.Migrat
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.StoreContentAndMetadataTaskCreatedEvent
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.StoreContentAndMetadataTask
import no.iktdev.mediaprocessing.shared.common.model.ContentExport
import no.iktdev.mediaprocessing.shared.common.projection.CollectProjection
import no.iktdev.mediaprocessing.shared.common.projection.StoreProjection
import no.iktdev.mediaprocessing.shared.database.stores.TaskStore
@ -49,8 +50,9 @@ class StoreContentAndMetadataListener: EventListener() {
return null
}
if (!projection.canStoreAutomatically()) {
log.info { "Not storing content and metadata automatically for collection: $collection @ ${useEvent.referenceId}" }
val collectProjection = CollectProjection(useHistory)
if (!collectProjection.isStorePermitted()) {
log.info { "\uD83D\uDED1 Not storing content and metadata automatically for collection: $collection @ ${useEvent.referenceId}" }
log.info { "A manual allow completion event is required to proceed." }
return null
}

View File

@ -50,14 +50,17 @@ class CollectProjection(val events: List<Event>) {
)
fun isStorePermitted(): Boolean {
val isAuto = events.filterIsInstance<StartProcessingEvent>().lastOrNull()?.data?.flow == StartFlow.Auto
if (isAuto) {
return true
val start = events.filterIsInstance<StartProcessingEvent>().firstOrNull()
?: return false // ingen start → ingen store
return when (start.data.flow) {
StartFlow.Auto -> true
StartFlow.Manual -> events.any { it is ManualAllowCompletionEvent }
null -> false // eksplisitt: ukjent flow → ikke tillatt
}
val anyAllow = events.filterIsInstance<ManualAllowCompletionEvent>().lastOrNull()
return anyAllow != null
}
private fun projectUseFile(): File? {
val added = events.filterIsInstance<FileAddedEvent>().firstOrNull()?.data
val startEvent = projectStartedWith()

View File

@ -4,19 +4,12 @@ import no.iktdev.eventi.models.Event
import no.iktdev.eventi.models.store.TaskStatus
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.MediaParsedInfoEvent
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.MigrateContentToStoreTaskResultEvent
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.StartFlow
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.StartProcessingEvent
import no.iktdev.mediaprocessing.shared.common.model.ContentExport
import no.iktdev.mediaprocessing.shared.common.model.MigrateStatus
import java.io.File
class StoreProjection(val events: List<Event>) {
fun canStoreAutomatically(): Boolean {
val manualEvent = events.filterIsInstance<StartProcessingEvent>().lastOrNull()
return manualEvent?.data?.flow != StartFlow.Manual
}
fun projectMetadata(): ContentExport.MetadataExport? {
val metadata = CollectProjection(events).metadata
if (metadata != null) {