diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/EventQuery.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/EventQuery.kt index 3758be7a..cce797ae 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/EventQuery.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/EventQuery.kt @@ -1,16 +1,34 @@ package no.iktdev.mediaprocessing.shared.common.dto +import org.springframework.util.LinkedMultiValueMap +import org.springframework.util.MultiValueMap import java.time.Instant data class EventQuery( val referenceId: String? = null, val eventId: String? = null, - val event: String? = null, val from: Instant? = null, val to: Instant? = null, override val sort: String = "persistedAt", override val order: Sort = Sort.DESC, override val page: Int = 0, - override val pageSize: Int = 50 -) : PagedQuery + override val pageSize: Int = 50, + override val key: String? +) : PagedQuery { + + fun toQueryParams(): MultiValueMap { + val params = LinkedMultiValueMap() + key?.let { params.add("key", it) } + referenceId?.let { params.add("referenceId", it) } + eventId?.let { params.add("eventId", it) } + from?.let { params.add("from", it.toString()) } + to?.let { params.add("to", it.toString()) } + params.add("sort", sort) + params.add("order", order.name) + params.add("page", page.toString()) + params.add("pageSize", pageSize.toString()) + + return params + } +} diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/PagedQuery.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/PagedQuery.kt index 444cc3f9..037f3ca2 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/PagedQuery.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/PagedQuery.kt @@ -5,4 +5,5 @@ interface PagedQuery { val pageSize: Int val sort: String val order: Sort + val key: String? } diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/TaskQuery.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/TaskQuery.kt index ed52a7e6..51dce0e1 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/TaskQuery.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/dto/TaskQuery.kt @@ -14,11 +14,13 @@ data class TaskQuery( override val sort: String = "persistedAt", override val order: Sort = Sort.DESC, override val page: Int = 0, - override val pageSize: Int = 50 + override val pageSize: Int = 50, + override val key: String? = null ): PagedQuery { fun toQueryParams(): MultiValueMap { val params = LinkedMultiValueMap() + key?.let { params.add("key", it) } status?.forEach { params.add("status", it) } claimed?.let { params.add("claimed", it.toString()) } consumed?.let { params.add("consumed", it.toString()) } diff --git a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt index ed67355c..416e05b3 100644 --- a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt +++ b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt @@ -37,7 +37,7 @@ object EventStore: EventStore { where { EventsTable.eventId like "%$id%" } } - query.event?.let { ev -> + query.key?.let { ev -> where { EventsTable.event like "%$ev%" } } diff --git a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt index 8dd8ba37..1bf06af8 100644 --- a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt +++ b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt @@ -36,7 +36,9 @@ object TaskStore: TaskStore { val enums = statuses.map { TaskStatus.valueOf(it) } where { TasksTable.status inList enums } } - + query.key?.let { k -> + where { TasksTable.task like "%$k%" } + } query.claimed?.let { where { TasksTable.claimed eq it } } query.consumed?.let { where { TasksTable.consumed eq it } } query.referenceId?.let { where { TasksTable.referenceId like "%$it%" } }