diff options
author | vlad <vlad@driver.xyz> | 2017-07-21 15:11:19 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-07-21 15:11:19 -0700 |
commit | 4c9d4f0679f7b1f4ab179c8d3208cf207c81635a (patch) | |
tree | 399852c34f3c5bb734a8deb5df4e85fae09cfd3d /src/main/scala/xyz/driver/pdsuidomain/formats | |
parent | 5279d01cedb35a759347f194c0e8adb21d19e88e (diff) | |
download | rest-query-4c9d4f0679f7b1f4ab179c8d3208cf207c81635a.tar.gz rest-query-4c9d4f0679f7b1f4ab179c8d3208cf207c81635a.tar.bz2 rest-query-4c9d4f0679f7b1f4ab179c8d3208cf207c81635a.zip |
Export service separation
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats')
6 files changed, 42 insertions, 47 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala deleted file mode 100644 index 0c9cb71..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrial.scala +++ /dev/null @@ -1,26 +0,0 @@ -package xyz.driver.pdsuidomain.formats.json.export - -import java.time.ZoneId - -import play.api.libs.functional.syntax._ -import play.api.libs.json.{Format, JsPath} -import xyz.driver.pdsuidomain.entities.export.trial.ExportTrial - -final case class ApiExportTrial(nctId: String, trialId: String, disease: String, lastReviewed: Long) - -object ApiExportTrial { - - implicit val format: Format[ApiExportTrial] = ( - (JsPath \ "nctId").format[String] and - (JsPath \ "trialId").format[String] and - (JsPath \ "disease").format[String] and - (JsPath \ "lastReviewed").format[Long] - )(ApiExportTrial.apply, unlift(ApiExportTrial.unapply)) - - def fromDomain(trial: ExportTrial): ApiExportTrial = ApiExportTrial( - nctId = trial.nctId.id, - trialId = trial.trialId.toString, - disease = trial.condition.toString.toUpperCase, - lastReviewed = trial.lastReviewed.atZone(ZoneId.of("Z")).toEpochSecond - ) -} diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala index b2b02eb..ea96f58 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialArm.scala @@ -2,9 +2,16 @@ package xyz.driver.pdsuidomain.formats.json.export import play.api.libs.functional.syntax._ import play.api.libs.json._ +import xyz.driver.pdsuicommon.domain.LongId +import xyz.driver.pdsuidomain.entities.Arm import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialArm -final case class ApiExportTrialArm(armId: String, armName: String) +final case class ApiExportTrialArm(armId: String, armName: String) { + + def toDomain: ExportTrialArm = { + ExportTrialArm(LongId[Arm](armId.toLong), armName) + } +} object ApiExportTrialArm { diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala index 2564efe..df1ebb4 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialLabelCriterion.scala @@ -1,9 +1,10 @@ package xyz.driver.pdsuidomain.formats.json.export -import xyz.driver.pdsuicommon.domain.FuzzyValue import play.api.libs.functional.syntax._ import play.api.libs.json._ +import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId} import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialLabelCriterion +import xyz.driver.pdsuidomain.entities.{Arm, Criterion, Label} final case class ApiExportTrialLabelCriterion(value: String, labelId: String, @@ -11,7 +12,20 @@ final case class ApiExportTrialLabelCriterion(value: String, criterionText: String, armIds: List[String], isCompound: Boolean, - isDefining: Boolean) + isDefining: Boolean) { + + def toDomain: ExportTrialLabelCriterion = { + ExportTrialLabelCriterion( + LongId[Criterion](criterionId.toLong), + FuzzyValue.fromString.lift(value).map(_ == FuzzyValue.Yes), + LongId[Label](labelId.toLong), + armIds.map(armId => LongId[Arm](armId.toLong)).toSet, + criterionText, + isCompound, + isDefining + ) + } +} object ApiExportTrialLabelCriterion { diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala deleted file mode 100644 index 93ee42e..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialList.scala +++ /dev/null @@ -1,15 +0,0 @@ -package xyz.driver.pdsuidomain.formats.json.export - -import play.api.libs.json.{Format, Json} -import xyz.driver.pdsuidomain.entities.export.trial.ExportTrial - -final case class ApiExportTrialList(trials: Seq[ApiExportTrial]) - -object ApiExportTrialList { - - implicit val format: Format[ApiExportTrialList] = Json.format - - def fromDomain(trialList: Seq[ExportTrial]) = ApiExportTrialList( - trials = trialList.map(ApiExportTrial.fromDomain) - ) -} diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala index de76ac0..e383a1f 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export/ApiExportTrialWithLabels.scala @@ -1,9 +1,11 @@ package xyz.driver.pdsuidomain.formats.json.export -import java.time.ZoneId +import java.time.{Instant, ZoneId} import play.api.libs.functional.syntax._ import play.api.libs.json.{Format, JsPath} +import xyz.driver.pdsuicommon.domain.{StringId, UuidId} +import xyz.driver.pdsuidomain.entities.Trial import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialWithLabels final case class ApiExportTrialWithLabels(nctId: String, @@ -12,7 +14,20 @@ final case class ApiExportTrialWithLabels(nctId: String, lastReviewed: Long, labelVersion: Long, arms: List[ApiExportTrialArm], - criteria: List[ApiExportTrialLabelCriterion]) + criteria: List[ApiExportTrialLabelCriterion]) { + + def toDomain: ExportTrialWithLabels = { + ExportTrialWithLabels( + StringId[Trial](nctId), + UuidId[Trial](trialId), + condition, + lastReviewed = Instant.ofEpochMilli(lastReviewed).atZone(ZoneId.of("Z")).toLocalDateTime, + labelVersion, + arms.map(_.toDomain), + criteria.map(_.toDomain) + ) + } +} object ApiExportTrialWithLabels { diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala index f59836e..51bd03f 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala @@ -36,7 +36,7 @@ final case class ApiTrial(id: String, previousStatus = this.previousStatus.map(s => TrialStatus.statusFromString(s)), previousAssignee = this.previousAssignee.map(id => StringId(id)), lastActiveUserId = this.lastActiveUser.map(id => StringId(id)), - lastUpdate = this.lastUpdate.toLocalDateTime(), + lastUpdate = this.lastUpdate.toLocalDateTime, condition = Trial.Condition .fromString(this.condition) .getOrElse( |