aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandr <ognelisar@gmail.com>2017-10-24 11:35:29 +0700
committerAleksandr <ognelisar@gmail.com>2017-10-24 11:35:29 +0700
commita0fe954d3680541de1ff8e0e7a5d762352e90072 (patch)
tree9fdeee0054f1fcf5c61407d29b1b2d24e4509f94
parent3c2a7fdfccc87cb8ec9e8e48c31c622555078c54 (diff)
parent5a6b7a7a3013035d692eb6d8ac369c1eb6dac0f3 (diff)
downloadrest-query-a0fe954d3680541de1ff8e0e7a5d762352e90072.tar.gz
rest-query-a0fe954d3680541de1ff8e0e7a5d762352e90072.tar.bz2
rest-query-a0fe954d3680541de1ff8e0e7a5d762352e90072.zip
Merge branch 'master' into PDSUI-2330
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala13
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala2
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala1
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala10
5 files changed, 23 insertions, 8 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala b/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala
index dc03a52..7d2f085 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala
@@ -6,6 +6,7 @@ import java.time.LocalDateTime
import slick.jdbc.{JdbcProfile, PositionedParameters, SQLActionBuilder, SetParameter}
import xyz.driver.pdsuicommon.db.Sorting.{Dimension, Sequential}
import xyz.driver.pdsuicommon.db.SortingOrder.{Ascending, Descending}
+import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
import scala.concurrent.{ExecutionContext, Future}
@@ -44,6 +45,18 @@ object SlickQueryBuilder {
pp.setObject(v, JDBCType.BINARY.getVendorTypeNumber)
}
}
+
+ implicit def setLongIdQueryParameter[T]: SetParameter[LongId[T]] = SetParameter[LongId[T]] { (v, pp) =>
+ pp.setLong(v.id)
+ }
+
+ implicit def setStringIdQueryParameter[T]: SetParameter[StringId[T]] = SetParameter[StringId[T]] { (v, pp) =>
+ pp.setString(v.id)
+ }
+
+ implicit def setUuidIdQueryParameter[T]: SetParameter[UuidId[T]] = SetParameter[UuidId[T]] { (v, pp) =>
+ pp.setObject(v.id, JDBCType.BINARY.getVendorTypeNumber)
+ }
}
final case class SlickTableLink(keyColumnName: String, foreignTableName: String, foreignKeyColumnName: String)
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
index 85e9149..41533fe 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
@@ -79,7 +79,7 @@ object SearchFilterParser {
}
private val numericOperatorParser: Parser[String] = {
- P(IgnoreCase("eq") | ((IgnoreCase("gt") | IgnoreCase("lt")) ~ IgnoreCase("eq").?)).!
+ P(IgnoreCase("eq") | IgnoreCase("noteq") | ((IgnoreCase("gt") | IgnoreCase("lt")) ~ IgnoreCase("eq").?)).!
}
private val naryOperatorParser: Parser[String] = P(IgnoreCase("in")).!
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
index e557e47..fccdda4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala
@@ -99,7 +99,8 @@ object intervention {
val deliveryMethod = fields
.get("deliveryMethod")
- .map(_.convertTo[String])
+ .map(_.convertTo[Option[String]])
+ .getOrElse(orig.intervention.deliveryMethod)
val origIntervention = orig.intervention
val arms = fields
@@ -112,7 +113,7 @@ object intervention {
typeId = typeId.orElse(origIntervention.typeId),
dosage = dosage.getOrElse(origIntervention.dosage),
isActive = isActive.getOrElse(origIntervention.isActive),
- deliveryMethod = deliveryMethod.orElse(origIntervention.deliveryMethod)
+ deliveryMethod = deliveryMethod
),
arms = arms.getOrElse(orig.arms)
)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
index 09517e6..d00aa14 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
@@ -15,6 +15,7 @@ object record {
import common._
implicit val recordStatusFormat = new EnumJsonFormat[Status](
+ "PreCleaning" -> Status.PreCleaning,
"Unprocessed" -> Status.Unprocessed,
"PreOrganized" -> Status.PreOrganized,
"New" -> Status.New,
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala
index 4532da4..edce9c1 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala
@@ -19,7 +19,7 @@ class InterventionFormatSuite extends FlatSpec with Matchers {
dosage = "",
originalDosage = "",
isActive = true,
- deliveryMethod = Some("pill")
+ deliveryMethod = Some("Inhalation")
)
val arms = List(
InterventionArm(interventionId = intervention.id, armId = LongId(20)),
@@ -34,11 +34,11 @@ class InterventionFormatSuite extends FlatSpec with Matchers {
writtenJson should be(
"""{"id":1,"name":"intervention name","typeId":10,"dosage":"","isActive":true,"arms":[20,21,22],
- "trialId":"NCT000001","deliveryMethod":"pill","originalName":"orig name","originalDosage":"","originalType":"orig type"}""".parseJson)
+ "trialId":"NCT000001","deliveryMethod":"Inhalation","originalName":"orig name","originalDosage":"","originalType":"orig type"}""".parseJson)
val createInterventionJson =
"""{"id":1,"name":"intervention name","typeId":10,"dosage":"","isActive":true,"arms":[20,21,22],
- "trialId":"NCT000001","deliveryMethod":"pill"}""".parseJson
+ "trialId":"NCT000001","deliveryMethod":"Inhalation"}""".parseJson
val parsedCreateIntervention = interventionFormat.read(createInterventionJson)
val expectedCreateIntervention = parsedCreateIntervention.copy(
intervention = intervention.copy(id = LongId(0), originalType = None, originalName = "intervention name"),
@@ -46,9 +46,9 @@ class InterventionFormatSuite extends FlatSpec with Matchers {
)
parsedCreateIntervention should be(expectedCreateIntervention)
- val updateInterventionJson = """{"dosage":"descr","arms":[21,22]}""".parseJson
+ val updateInterventionJson = """{"dosage":"descr","deliveryMethod":null,"arms":[21,22]}""".parseJson
val expectedUpdatedIntervention = orig.copy(
- intervention = intervention.copy(dosage = "descr"),
+ intervention = intervention.copy(dosage = "descr", deliveryMethod = None),
arms = List(
InterventionArm(interventionId = intervention.id, armId = LongId(21)),
InterventionArm(interventionId = intervention.id, armId = LongId(22))