Minor changes
This commit is contained in:
parent
c39366960f
commit
15f8c4c076
@ -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.events.StoreContentAndMetadataTaskCreatedEvent
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.StoreContentAndMetadataTask
|
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.model.ContentExport
|
||||||
|
import no.iktdev.mediaprocessing.shared.common.projection.CollectProjection
|
||||||
import no.iktdev.mediaprocessing.shared.common.projection.StoreProjection
|
import no.iktdev.mediaprocessing.shared.common.projection.StoreProjection
|
||||||
import no.iktdev.mediaprocessing.shared.database.stores.TaskStore
|
import no.iktdev.mediaprocessing.shared.database.stores.TaskStore
|
||||||
|
|
||||||
@ -49,8 +50,9 @@ class StoreContentAndMetadataListener: EventListener() {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!projection.canStoreAutomatically()) {
|
val collectProjection = CollectProjection(useHistory)
|
||||||
log.info { "Not storing content and metadata automatically for collection: $collection @ ${useEvent.referenceId}" }
|
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." }
|
log.info { "A manual allow completion event is required to proceed." }
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,14 +50,17 @@ class CollectProjection(val events: List<Event>) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun isStorePermitted(): Boolean {
|
fun isStorePermitted(): Boolean {
|
||||||
val isAuto = events.filterIsInstance<StartProcessingEvent>().lastOrNull()?.data?.flow == StartFlow.Auto
|
val start = events.filterIsInstance<StartProcessingEvent>().firstOrNull()
|
||||||
if (isAuto) {
|
?: return false // ingen start → ingen store
|
||||||
return true
|
|
||||||
|
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? {
|
private fun projectUseFile(): File? {
|
||||||
val added = events.filterIsInstance<FileAddedEvent>().firstOrNull()?.data
|
val added = events.filterIsInstance<FileAddedEvent>().firstOrNull()?.data
|
||||||
val startEvent = projectStartedWith()
|
val startEvent = projectStartedWith()
|
||||||
|
|||||||
@ -4,19 +4,12 @@ import no.iktdev.eventi.models.Event
|
|||||||
import no.iktdev.eventi.models.store.TaskStatus
|
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.MediaParsedInfoEvent
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.MigrateContentToStoreTaskResultEvent
|
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.ContentExport
|
||||||
import no.iktdev.mediaprocessing.shared.common.model.MigrateStatus
|
import no.iktdev.mediaprocessing.shared.common.model.MigrateStatus
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class StoreProjection(val events: List<Event>) {
|
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? {
|
fun projectMetadata(): ContentExport.MetadataExport? {
|
||||||
val metadata = CollectProjection(events).metadata
|
val metadata = CollectProjection(events).metadata
|
||||||
if (metadata != null) {
|
if (metadata != null) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user