This commit is contained in:
2019-10-10 12:15:50 +02:00
parent 21c05f72f5
commit c4125f1429
24 changed files with 166 additions and 148 deletions

View File

@@ -4,15 +4,14 @@ import com.fasterxml.jackson.core.type.TypeReference
import com.github.jasync.sql.db.QueryResult
import fr.postgresjson.entity.EntityI
class Query(override val name: String, private val sql: String, override val connection: Connection): EmbedExecutable {
class Query(override val name: String, private val sql: String, override val connection: Connection) : EmbedExecutable {
override fun toString(): String {
return sql
}
/* Select One */
override fun <R: EntityI> select(
override fun <R : EntityI> select(
typeReference: TypeReference<R>,
values: List<Any?>,
block: (QueryResult, R?) -> Unit
@@ -20,13 +19,13 @@ class Query(override val name: String, private val sql: String, override val con
return connection.select(this.toString(), typeReference, values, block)
}
inline fun <reified R: EntityI> selectOne(
inline fun <reified R : EntityI> selectOne(
values: List<Any?> = emptyList(),
noinline block: SelectOneCallback<R> = {}
): R? =
select(object: TypeReference<R>() {}, values, block)
select(object : TypeReference<R>() {}, values, block)
override fun <R: EntityI> select(
override fun <R : EntityI> select(
typeReference: TypeReference<R>,
values: Map<String, Any?>,
block: (QueryResult, R?) -> Unit
@@ -34,15 +33,15 @@ class Query(override val name: String, private val sql: String, override val con
return connection.select(this.toString(), typeReference, values, block)
}
inline fun <reified R: EntityI> selectOne(
inline fun <reified R : EntityI> selectOne(
values: Map<String, Any?>,
noinline block: SelectOneCallback<R> = {}
): R? =
select(object: TypeReference<R>() {}, values, block)
select(object : TypeReference<R>() {}, values, block)
/* Select Multiples */
override fun <R: EntityI> select(
override fun <R : EntityI> select(
typeReference: TypeReference<List<R>>,
values: List<Any?>,
block: (QueryResult, List<R>) -> Unit
@@ -50,13 +49,13 @@ class Query(override val name: String, private val sql: String, override val con
return connection.select(this.toString(), typeReference, values, block)
}
inline fun <reified R: EntityI> select(
inline fun <reified R : EntityI> select(
values: List<Any?> = emptyList(),
noinline block: SelectCallback<R> = {}
): List<R> =
select(object: TypeReference<List<R>>() {}, values, block)
select(object : TypeReference<List<R>>() {}, values, block)
override fun <R: EntityI> select(
override fun <R : EntityI> select(
typeReference: TypeReference<List<R>>,
values: Map<String, Any?>,
block: (QueryResult, List<R>) -> Unit
@@ -64,13 +63,13 @@ class Query(override val name: String, private val sql: String, override val con
return connection.select(this.toString(), typeReference, values, block)
}
inline fun <reified R: EntityI> select(
inline fun <reified R : EntityI> select(
values: Map<String, Any?>,
noinline block: SelectCallback<R> = {}
): List<R> =
select(object: TypeReference<List<R>>() {}, values, block)
select(object : TypeReference<List<R>>() {}, values, block)
override fun <R: EntityI> select(
override fun <R : EntityI> select(
page: Int,
limit: Int,
typeReference: TypeReference<List<R>>,
@@ -82,13 +81,13 @@ class Query(override val name: String, private val sql: String, override val con
/* Select Paginated */
inline fun <reified R: EntityI> select(
inline fun <reified R : EntityI> select(
page: Int,
limit: Int,
values: Map<String, Any?> = emptyMap(),
noinline block: SelectPaginatedCallback<R> = {}
): Paginated<R> =
select(page, limit, object: TypeReference<List<R>>() {}, values, block)
select(page, limit, object : TypeReference<List<R>>() {}, values, block)
/* Execute function without traitements */