diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala deleted file mode 100644 index 79882c2..0000000 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala +++ /dev/null @@ -1,134 +0,0 @@ -package xyz.driver.pdsuidomain.formats.json - -import java.time.LocalDateTime - -import spray.json.{RootJsonReader, _} -import xyz.driver.core.{Id, auth} -import xyz.driver.core.auth.User -import xyz.driver.core.json._ -import xyz.driver.pdsuicommon.domain.{LongId, StringId} -import xyz.driver.pdsuidomain.entities._ - -object trialissue { - - import DefaultJsonProtocol._ - import common._ - - private def deserializationErrorFieldMessage(field: String, json: JsValue)(implicit className: String) = { - deserializationError(s"$className json object do not contain '$field' field: $json") - } - - private def deserializationErrorEntityMessage(json: JsValue)(implicit className: String) = { - deserializationError(s"Expected Json Object as $className, but got $json") - } - - def applyUpdateToTrialIssue(json: JsValue, orig: TrialIssue): TrialIssue = { - json.asJsObject.getFields("text", "evidence", "archiveRequired", "meta") match { - case Seq(text, evidence, archiveRequired, meta) => - orig.copy( - text = text.convertTo[String], - evidence = evidence.convertTo[String], - archiveRequired = archiveRequired.convertTo[Boolean], - meta = meta.convertTo[String] - ) - - case _ => deserializationError(s"Expected Json Object as partial TrialIssue, but got $json") - } - } - - def jsValueToTrialIssue(json: JsValue, trialId: StringId[Trial], userId: xyz.driver.core.Id[User]): TrialIssue = { - json.asJsObject.getFields("text", "evidence", "meta") match { - case Seq(text, evidence, meta) => - TrialIssue( - id = json.asJsObject.fields.get("id").flatMap(_.convertTo[Option[LongId[TrialIssue]]]).getOrElse(LongId(0)), - userId = userId, - trialId = trialId, - lastUpdate = LocalDateTime.MIN, - isDraft = true, - text = text.convertTo[String], - evidence = evidence.convertTo[String], - archiveRequired = false, - meta = meta.convertTo[String] - ) - - case _ => deserializationError(s"Expected Json Object as TrialIssue, but got $json") - } - - } - - implicit val trialIssueWriter = new RootJsonWriter[TrialIssue] { - override def write(obj: TrialIssue) = JsObject( - "id" -> obj.id.toJson, - "text" -> obj.text.toJson, - "lastUpdate" -> obj.lastUpdate.toJson, - "userId" -> obj.userId.toJson, - "isDraft" -> obj.isDraft.toJson, - "evidence" -> obj.evidence.toJson, - "archiveRequired" -> obj.archiveRequired.toJson, - "meta" -> obj.meta.toJson - ) - } - - def trialIssueReader(trialId: StringId[Trial]): RootJsonReader[TrialIssue] = - new RootJsonReader[TrialIssue] { - implicit val className: String = "TrialIssue" - - override def read(json: JsValue): TrialIssue = json match { - case JsObject(fields) => - val id = fields - .get("id") - .map(_.convertTo[LongId[TrialIssue]]) - .getOrElse(deserializationErrorFieldMessage("id", json)) - - val text = fields - .get("text") - .map(_.convertTo[String]) - .getOrElse(deserializationErrorFieldMessage("text", json)) - - val lastUpdate = fields - .get("lastUpdate") - .map(_.convertTo[LocalDateTime]) - .getOrElse(deserializationErrorFieldMessage("lastUpdate", json)) - - val userId = fields - .get("userId") - .map(_.convertTo[Id[auth.User]]) - .getOrElse(deserializationErrorFieldMessage("userId", json)) - - val isDraft = fields - .get("isDraft") - .map(_.convertTo[Boolean]) - .getOrElse(deserializationErrorFieldMessage("isDraft", json)) - - val evidence = fields - .get("evidence") - .map(_.convertTo[String]) - .getOrElse(deserializationErrorFieldMessage("evidence", json)) - - val archiveRequired = fields - .get("archiveRequired") - .map(_.convertTo[Boolean]) - .getOrElse(deserializationErrorFieldMessage("archiveRequired", json)) - - val meta = fields - .get("meta") - .map(_.convertTo[String]) - .getOrElse(deserializationErrorFieldMessage("meta", json)) - - TrialIssue( - id = id, - userId = userId, - trialId = trialId, - lastUpdate = lastUpdate, - isDraft = isDraft, - text = text, - evidence = evidence, - archiveRequired = archiveRequired, - meta = meta - ) - - case _ => deserializationErrorEntityMessage(json) - } - } - -} |