start add standard repo utils

This commit is contained in:
2020-07-30 19:40:33 +06:00
parent f31631c08f
commit 3baf6cc3c6
29 changed files with 590 additions and 32 deletions

View File

@@ -1,7 +1,22 @@
package com.insanusmokrassar.postssystem.exposed.commons
import com.insanusmokrassar.postssystem.core.utils.pagination.Pagination
import com.insanusmokrassar.postssystem.core.utils.pagination.firstIndex
import org.jetbrains.exposed.sql.Query
import com.insanusmokrassar.postssystem.utils.repos.pagination.*
import org.jetbrains.exposed.sql.*
fun Query.paginate(pagination: Pagination) = limit(pagination.size, pagination.firstIndex.toLong())
fun Query.paginate(with: Pagination, orderBy: Pair<Expression<*>, SortOrder>? = null) = limit(
with.size,
(if (orderBy ?.second == SortOrder.DESC) {
with.lastIndex
} else {
with.firstIndex
}).toLong()
).let {
if (orderBy != null) {
it.orderBy(
orderBy.first,
orderBy.second
)
} else {
it
}
}