diff options
author | Vlad Uspensky <v.uspenskiy@icloud.com> | 2017-09-26 19:18:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-26 19:18:13 -0700 |
commit | 9e631cb74e9ad7ed33965e27c64e23a851cf7673 (patch) | |
tree | 8452f8ad4933ee070552af4ca7d21b32376effee | |
parent | 7bb4873042d1bc557a7f2e78b15a44d3ba182bf5 (diff) | |
parent | cd1e685b22db2c69ad3d418b6b24b65fd63472fa (diff) | |
download | rest-query-9e631cb74e9ad7ed33965e27c64e23a851cf7673.tar.gz rest-query-9e631cb74e9ad7ed33965e27c64e23a851cf7673.tar.bz2 rest-query-9e631cb74e9ad7ed33965e27c64e23a851cf7673.zip |
Merge pull request #30 from drivergroup/eq-parserv0.3.20
Make number filter parsing attempt first, because number parsers are more specific
3 files changed, 8 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/QueryBuilder.scala b/src/main/scala/xyz/driver/pdsuicommon/db/QueryBuilder.scala index aa32166..0bf1ed6 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/db/QueryBuilder.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/db/QueryBuilder.scala @@ -57,10 +57,10 @@ sealed trait QueryBuilderParameters { def toSql(countQuery: Boolean, fields: Set[String], namingStrategy: NamingStrategy): (String, QueryBuilder.Binder) = { val escapedTableName = namingStrategy.table(tableData.tableName) val fieldsSql: String = if (countQuery) { - val suffix: String = (tableData.lastUpdateFieldName match { + val suffix: String = tableData.lastUpdateFieldName match { case Some(lastUpdateField) => s", max($escapedTableName.${namingStrategy.column(lastUpdateField)})" case None => "" - }) + } "count(*)" + suffix } else { if (fields == QueryBuilderParameters.AllFields) { diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala index 8aff397..7e86eae 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala @@ -93,8 +93,8 @@ object SearchFilterParser { private val binaryAtomParser: Parser[SearchFilterExpr.Atom.Binary] = P( dimensionParser ~ whitespaceParser ~ ( - (commonOperatorParser.! ~/ whitespaceParser ~/ AnyChar.rep(min = 1).!) - | (numericOperatorParser.! ~/ whitespaceParser ~/ numberParser.!) + (numericOperatorParser.! ~/ whitespaceParser ~/ numberParser.!) | + (commonOperatorParser.! ~/ whitespaceParser ~/ AnyChar.rep(min = 1).!) ) ~ End ).map { case BinaryAtomFromTuple(atom) => atom diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala index 1f73184..839fead 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala @@ -14,6 +14,8 @@ import xyz.driver.pdsuicommon.validation.Validators import xyz.driver.pdsuicommon.validation.Validators.Validator import xyz.driver.pdsuidomain.entities.Document.Meta +import scalaz.Equal + final case class ProviderType(id: LongId[ProviderType], name: String) object ProviderType { @@ -124,6 +126,8 @@ object DocumentType { } } + implicit def equal: Equal[DocumentType] = Equal.equal[DocumentType](_ == _) + implicit def toPhiString(x: DocumentType): PhiString = { import x._ phi"DocumentType(id=$id, name=${Unsafe(name)})" |