Query changes

This commit is contained in:
Brage Skjønborg 2026-01-29 06:28:29 +01:00
parent 49a3002259
commit a782ad4f8a
5 changed files with 29 additions and 6 deletions

View File

@ -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<String, String> {
val params = LinkedMultiValueMap<String, String>()
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
}
}

View File

@ -5,4 +5,5 @@ interface PagedQuery {
val pageSize: Int
val sort: String
val order: Sort
val key: String?
}

View File

@ -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<String, String> {
val params = LinkedMultiValueMap<String, String>()
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()) }

View File

@ -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%" }
}

View File

@ -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%" } }