aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala
index 732bcad..8da719c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/criterion.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.formats.json.sprayformats
import spray.json._
+import xyz.driver.entities.labels.{Label, LabelCategory}
import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuidomain.entities._
import xyz.driver.pdsuidomain.services.CriterionService.RichCriterion
@@ -29,7 +30,7 @@ object criterion {
val categoryId = fields
.get("categoryId")
- .map(_.convertTo[LongId[Category]])
+ .map(_.convertTo[LongId[LabelCategory]])
val value = fields
.get("value")
@@ -72,6 +73,11 @@ object criterion {
.map(_.convertTo[Option[String]].getOrElse("{}"))
.getOrElse(orig.criterion.meta)
+ val inclusion = fields
+ .get("inclusion")
+ .map(_.convertTo[Option[Boolean]])
+ .getOrElse(orig.criterion.inclusion)
+
val arms = fields
.get("arms")
.map(_.convertTo[Option[List[LongId[Arm]]]].getOrElse(List.empty[LongId[Arm]]))
@@ -87,7 +93,8 @@ object criterion {
criterion = orig.criterion.copy(
meta = meta,
text = text,
- isCompound = isCompound
+ isCompound = isCompound,
+ inclusion = inclusion
),
armIds = arms,
labels = labels
@@ -105,7 +112,8 @@ object criterion {
"text" -> obj.criterion.text.toJson,
"isCompound" -> obj.criterion.isCompound.toJson,
"labels" -> obj.labels.map(_.toJson).toJson,
- "trialId" -> obj.criterion.trialId.toJson
+ "trialId" -> obj.criterion.trialId.toJson,
+ "inclusion" -> obj.criterion.inclusion.toJson
)
override def read(json: JsValue): RichCriterion = json match {
@@ -128,6 +136,11 @@ object criterion {
.map(_.convertTo[String])
.getOrElse("")
+ val inclusion = fields
+ .get("inclusion")
+ .map(_.convertTo[Option[Boolean]])
+ .getOrElse(None)
+
val arms = fields
.get("arms")
.map(_.convertTo[List[LongId[Arm]]])
@@ -145,7 +158,8 @@ object criterion {
trialId = trialId,
text = text,
isCompound = isCompound,
- meta = meta
+ meta = meta,
+ inclusion = inclusion
),
armIds = arms,
labels = labels