aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/ListResponse.scala28
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion/ApiCriterion.scala17
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/hypothesis/ApiHypothesis.scala13
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiInterventionType.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/studydesign/ApiStudyDesign.scala6
5 files changed, 52 insertions, 18 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/ListResponse.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/ListResponse.scala
index 9faa77f..c823df5 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/ListResponse.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/ListResponse.scala
@@ -23,9 +23,9 @@ object ListResponse {
((JsPath \ "itemsCount").read[Int] and
(JsPath \ "pageNumber").read[Int] and
(JsPath \ "pageSize").read[Int] and
- (JsPath \ "lastUpdate").readNullable[LocalDateTime]
- ).apply { (itemsCount: Int, pageNumber: Int, pageSize: Int, lastUpdate: Option[LocalDateTime]) =>
- Meta(itemsCount, pageNumber, pageSize, lastUpdate)
+ (JsPath \ "lastUpdate").readNullable[LocalDateTime]).apply {
+ (itemsCount: Int, pageNumber: Int, pageSize: Int, lastUpdate: Option[LocalDateTime]) =>
+ Meta(itemsCount, pageNumber, pageSize, lastUpdate)
}
}
@@ -34,21 +34,23 @@ object ListResponse {
(JsPath \ "pageNumber").write[Int] and
(JsPath \ "pageSize").write[Int] and
(JsPath \ "lastUpdate").write[Option[LocalDateTime]]
- ) (unlift(Meta.unapply))
+ )(unlift(Meta.unapply))
implicit val listResponseMetaJsonFormat: Format[Meta] = Format(
listResponseMetaJsonReads,
listResponseMetaJsonWrites
)
- implicit def listResponseJsonWrites[T](implicit f: Writes[T]): Writes[ListResponse[T]] = (
- (JsPath \ "items").write[Seq[T]] and
- (JsPath \ "meta").write[Meta]
- ) (unlift(ListResponse.unapply[T]))
-
- implicit def listResponseJsonFormat[T](implicit f: Format[T]): Format[ListResponse[T]] = (
- (JsPath \ "items").format(seqJsonFormat[T]) and
- (JsPath \ "meta").format[Meta]
- ) (ListResponse.apply[T], unlift(ListResponse.unapply[T]))
+ implicit def listResponseJsonWrites[T](implicit f: Writes[T]): Writes[ListResponse[T]] =
+ (
+ (JsPath \ "items").write[Seq[T]] and
+ (JsPath \ "meta").write[Meta]
+ )(unlift(ListResponse.unapply[T]))
+
+ implicit def listResponseJsonFormat[T](implicit f: Format[T]): Format[ListResponse[T]] =
+ (
+ (JsPath \ "items").format(seqJsonFormat[T]) and
+ (JsPath \ "meta").format[Meta]
+ )(ListResponse.apply[T], unlift(ListResponse.unapply[T]))
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion/ApiCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion/ApiCriterion.scala
index 1e7114a..4986b17 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion/ApiCriterion.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/criterion/ApiCriterion.scala
@@ -3,6 +3,8 @@ package xyz.driver.pdsuidomain.formats.json.criterion
import xyz.driver.pdsuicommon.json.Serialization.seqJsonFormat
import play.api.libs.functional.syntax._
import play.api.libs.json._
+import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import xyz.driver.pdsuidomain.entities.{Arm, Criterion, Trial}
import xyz.driver.pdsuidomain.formats.json.label.ApiCriterionLabel
import xyz.driver.pdsuidomain.services.CriterionService.RichCriterion
@@ -12,7 +14,20 @@ final case class ApiCriterion(id: Long,
text: Option[String],
isCompound: Boolean,
labels: Seq[ApiCriterionLabel],
- trialId: String)
+ trialId: String) {
+
+ def toDomain = RichCriterion(
+ criterion = Criterion(
+ id = LongId[Criterion](id),
+ trialId = StringId[Trial](trialId),
+ text,
+ isCompound,
+ meta.getOrElse("")
+ ),
+ armIds = arms.map(LongId[Arm]),
+ labels = labels.map(_.toDomain(LongId[Criterion](id)))
+ )
+}
object ApiCriterion {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/hypothesis/ApiHypothesis.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/hypothesis/ApiHypothesis.scala
index 7446ec3..bf18a60 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/hypothesis/ApiHypothesis.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/hypothesis/ApiHypothesis.scala
@@ -2,11 +2,20 @@ package xyz.driver.pdsuidomain.formats.json.hypothesis
import java.util.UUID
-import xyz.driver.pdsuidomain.entities.Hypothesis
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
+import xyz.driver.pdsuicommon.domain.UuidId
+import xyz.driver.pdsuidomain.entities.Hypothesis
+
+final case class ApiHypothesis(id: UUID, name: String, treatmentType: String, description: String) {
-final case class ApiHypothesis(id: UUID, name: String, treatmentType: String, description: String)
+ def toDomain = Hypothesis(
+ id = UuidId[Hypothesis](id),
+ name = name,
+ treatmentType = treatmentType,
+ description = description
+ )
+}
object ApiHypothesis {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiInterventionType.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiInterventionType.scala
index 54d2cb7..ebef225 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiInterventionType.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/intervention/ApiInterventionType.scala
@@ -2,9 +2,13 @@ package xyz.driver.pdsuidomain.formats.json.intervention
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.InterventionType
-final case class ApiInterventionType(id: Long, name: String)
+final case class ApiInterventionType(id: Long, name: String) {
+
+ def toDomain = InterventionType(id = LongId[InterventionType](id), name = name)
+}
object ApiInterventionType {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/studydesign/ApiStudyDesign.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/studydesign/ApiStudyDesign.scala
index 26c7352..1e9a226 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/studydesign/ApiStudyDesign.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/studydesign/ApiStudyDesign.scala
@@ -3,8 +3,12 @@ package xyz.driver.pdsuidomain.formats.json.studydesign
import xyz.driver.pdsuidomain.entities.StudyDesign
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
+import xyz.driver.pdsuicommon.domain.LongId
-final case class ApiStudyDesign(id: Long, name: String)
+final case class ApiStudyDesign(id: Long, name: String) {
+
+ def toDomain = StudyDesign(id = LongId[StudyDesign](id), name = name)
+}
object ApiStudyDesign {