diff options
author | vlad <vlad@driver.xyz> | 2017-06-13 16:15:07 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-06-13 16:15:07 -0700 |
commit | 91a4120b4253dc4a1e9552ec39fcb25c303a21e1 (patch) | |
tree | 9173797ed8e3d780f98ac8d0f85507eeb10c8016 /src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala | |
parent | cd1b635b2ae90d9ac2d8b1779183a1fbd8c5fd5c (diff) | |
download | rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.tar.gz rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.tar.bz2 rest-query-91a4120b4253dc4a1e9552ec39fcb25c303a21e1.zip |
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala b/src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala index 672a34e..6b7639a 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/db/MysqlQueryBuilder.scala @@ -15,8 +15,7 @@ object MysqlQueryBuilder { nullableFields: Set[String], links: Set[TableLink], runner: Runner[T], - countRunner: CountRunner) - (implicit ec: ExecutionContext): MysqlQueryBuilder[T] = { + countRunner: CountRunner)(implicit ec: ExecutionContext): MysqlQueryBuilder[T] = { val parameters = MysqlQueryBuilderParameters( tableData = TableData(tableName, lastUpdateFieldName, nullableFields), links = links.map(x => x.foreignTableName -> x)(breakOut) @@ -28,8 +27,7 @@ object MysqlQueryBuilder { lastUpdateFieldName: Option[String], nullableFields: Set[String], links: Set[TableLink], - extractor: (ResultSet) => T) - (implicit sqlContext: SqlContext): MysqlQueryBuilder[T] = { + extractor: (ResultSet) => T)(implicit sqlContext: SqlContext): MysqlQueryBuilder[T] = { val runner = (parameters: QueryBuilderParameters) => { Future { @@ -43,14 +41,19 @@ object MysqlQueryBuilder { val countRunner = (parameters: QueryBuilderParameters) => { Future { val (sql, binder) = parameters.toSql(countQuery = true, namingStrategy = MysqlEscape) - sqlContext.executeQuery[CountResult](sql, binder, { resultSet => - val count = resultSet.getInt(1) - val lastUpdate = if (parameters.tableData.lastUpdateFieldName.isDefined) { - Option(sqlContext.localDateTimeDecoder.decoder(2, resultSet)) - } else None - - (count, lastUpdate) - }).head + sqlContext + .executeQuery[CountResult]( + sql, + binder, { resultSet => + val count = resultSet.getInt(1) + val lastUpdate = if (parameters.tableData.lastUpdateFieldName.isDefined) { + Option(sqlContext.localDateTimeDecoder.decoder(2, resultSet)) + } else None + + (count, lastUpdate) + } + ) + .head }(sqlContext.executionContext) } @@ -65,11 +68,10 @@ object MysqlQueryBuilder { } } -class MysqlQueryBuilder[T](parameters: MysqlQueryBuilderParameters) - (implicit runner: QueryBuilder.Runner[T], - countRunner: QueryBuilder.CountRunner, - ec: ExecutionContext) - extends QueryBuilder[T, MySQLDialect, MysqlEscape](parameters) { +class MysqlQueryBuilder[T](parameters: MysqlQueryBuilderParameters)(implicit runner: QueryBuilder.Runner[T], + countRunner: QueryBuilder.CountRunner, + ec: ExecutionContext) + extends QueryBuilder[T, MySQLDialect, MysqlEscape](parameters) { def withFilter(newFilter: SearchFilterExpr): QueryBuilder[T, MySQLDialect, MysqlEscape] = { new MysqlQueryBuilder[T](parameters.copy(filter = newFilter)) |