Changed SQL and expanded to multi key search/filter
This commit is contained in:
parent
1ca711a3e2
commit
76fa917104
@ -13,12 +13,12 @@ data class EventQuery(
|
|||||||
override val order: Sort = Sort.DESC,
|
override val order: Sort = Sort.DESC,
|
||||||
override val page: Int = 0,
|
override val page: Int = 0,
|
||||||
override val pageSize: Int = 50,
|
override val pageSize: Int = 50,
|
||||||
override val key: String?
|
override val key: List<String>?
|
||||||
) : PagedQuery {
|
) : PagedQuery {
|
||||||
|
|
||||||
fun toQueryParams(): MultiValueMap<String, String> {
|
fun toQueryParams(): MultiValueMap<String, String> {
|
||||||
val params = LinkedMultiValueMap<String, String>()
|
val params = LinkedMultiValueMap<String, String>()
|
||||||
key?.let { params.add("key", it) }
|
key?.forEach { params.add("key", it) }
|
||||||
referenceId?.let { params.add("referenceId", it) }
|
referenceId?.let { params.add("referenceId", it) }
|
||||||
eventId?.let { params.add("eventId", it) }
|
eventId?.let { params.add("eventId", it) }
|
||||||
from?.let { params.add("from", it.toString()) }
|
from?.let { params.add("from", it.toString()) }
|
||||||
|
|||||||
@ -5,5 +5,5 @@ interface PagedQuery {
|
|||||||
val pageSize: Int
|
val pageSize: Int
|
||||||
val sort: String
|
val sort: String
|
||||||
val order: Sort
|
val order: Sort
|
||||||
val key: String?
|
val key: List<String>?
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,12 +15,12 @@ data class TaskQuery(
|
|||||||
override val order: Sort = Sort.DESC,
|
override val order: Sort = Sort.DESC,
|
||||||
override val page: Int = 0,
|
override val page: Int = 0,
|
||||||
override val pageSize: Int = 50,
|
override val pageSize: Int = 50,
|
||||||
override val key: String? = null
|
override val key: List<String>? = null
|
||||||
): PagedQuery {
|
): PagedQuery {
|
||||||
fun toQueryParams(): MultiValueMap<String, String> {
|
fun toQueryParams(): MultiValueMap<String, String> {
|
||||||
val params = LinkedMultiValueMap<String, String>()
|
val params = LinkedMultiValueMap<String, String>()
|
||||||
|
|
||||||
key?.let { params.add("key", it) }
|
key?.forEach { params.add("key", it) }
|
||||||
status?.forEach { params.add("status", it) }
|
status?.forEach { params.add("status", it) }
|
||||||
claimed?.let { params.add("claimed", it.toString()) }
|
claimed?.let { params.add("claimed", it.toString()) }
|
||||||
consumed?.let { params.add("consumed", it.toString()) }
|
consumed?.let { params.add("consumed", it.toString()) }
|
||||||
|
|||||||
@ -10,7 +10,9 @@ import no.iktdev.mediaprocessing.shared.common.dto.Paginated
|
|||||||
import no.iktdev.mediaprocessing.shared.database.queries.pagedQuery
|
import no.iktdev.mediaprocessing.shared.database.queries.pagedQuery
|
||||||
import no.iktdev.mediaprocessing.shared.database.tables.EventsTable
|
import no.iktdev.mediaprocessing.shared.database.tables.EventsTable
|
||||||
import no.iktdev.mediaprocessing.shared.database.withTransaction
|
import no.iktdev.mediaprocessing.shared.database.withTransaction
|
||||||
|
import org.jetbrains.exposed.sql.Op
|
||||||
import org.jetbrains.exposed.sql.insert
|
import org.jetbrains.exposed.sql.insert
|
||||||
|
import org.jetbrains.exposed.sql.or
|
||||||
import org.jetbrains.exposed.sql.selectAll
|
import org.jetbrains.exposed.sql.selectAll
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -37,8 +39,14 @@ object EventStore: EventStore {
|
|||||||
where { EventsTable.eventId like "%$id%" }
|
where { EventsTable.eventId like "%$id%" }
|
||||||
}
|
}
|
||||||
|
|
||||||
query.key?.let { ev ->
|
query.key?.let { keys ->
|
||||||
where { EventsTable.event like "%$ev%" }
|
if (keys.isNotEmpty()) {
|
||||||
|
where {
|
||||||
|
keys
|
||||||
|
.map { key -> EventsTable.event like "%$key%" }
|
||||||
|
.reduce(Op<Boolean>::or)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
query.from?.let { from ->
|
query.from?.let { from ->
|
||||||
|
|||||||
@ -11,10 +11,7 @@ import no.iktdev.mediaprocessing.shared.common.dto.TaskQuery
|
|||||||
import no.iktdev.mediaprocessing.shared.database.queries.pagedQuery
|
import no.iktdev.mediaprocessing.shared.database.queries.pagedQuery
|
||||||
import no.iktdev.mediaprocessing.shared.database.tables.TasksTable
|
import no.iktdev.mediaprocessing.shared.database.tables.TasksTable
|
||||||
import no.iktdev.mediaprocessing.shared.database.withTransaction
|
import no.iktdev.mediaprocessing.shared.database.withTransaction
|
||||||
import org.jetbrains.exposed.sql.and
|
import org.jetbrains.exposed.sql.*
|
||||||
import org.jetbrains.exposed.sql.insert
|
|
||||||
import org.jetbrains.exposed.sql.selectAll
|
|
||||||
import org.jetbrains.exposed.sql.update
|
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@ -36,9 +33,16 @@ object TaskStore: TaskStore {
|
|||||||
val enums = statuses.map { TaskStatus.valueOf(it) }
|
val enums = statuses.map { TaskStatus.valueOf(it) }
|
||||||
where { TasksTable.status inList enums }
|
where { TasksTable.status inList enums }
|
||||||
}
|
}
|
||||||
query.key?.let { k ->
|
query.key?.let { keys ->
|
||||||
where { TasksTable.task like "%$k%" }
|
if (keys.isNotEmpty()) {
|
||||||
|
where {
|
||||||
|
keys
|
||||||
|
.map { key -> TasksTable.task like "%$key%" }
|
||||||
|
.reduce(Op<Boolean>::or)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
query.claimed?.let { where { TasksTable.claimed eq it } }
|
query.claimed?.let { where { TasksTable.claimed eq it } }
|
||||||
query.consumed?.let { where { TasksTable.consumed eq it } }
|
query.consumed?.let { where { TasksTable.consumed eq it } }
|
||||||
query.referenceId?.let { where { TasksTable.referenceId like "%$it%" } }
|
query.referenceId?.let { where { TasksTable.referenceId like "%$it%" } }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user