From a997aa6539d1f0af4ab4fc395ff2033335da312a Mon Sep 17 00:00:00 2001 From: vlad Date: Fri, 30 Jun 2017 12:29:54 -0700 Subject: Latest PDS UI utils --- .../formats/json/record/ApiUpdateRecord.scala | 31 +++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiUpdateRecord.scala') diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiUpdateRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiUpdateRecord.scala index b752a4c..0d17b66 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiUpdateRecord.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiUpdateRecord.scala @@ -10,9 +10,7 @@ import play.api.libs.functional.syntax._ import play.api.libs.json._ import xyz.driver.pdsuicommon.json.JsonSerializer -final case class ApiUpdateRecord(status: Option[String], - assignee: Tristate[Long], - meta: Tristate[String]) { +final case class ApiUpdateRecord(status: Option[String], assignee: Tristate[Long], meta: Tristate[String]) { def applyTo(orig: MedicalRecord): MedicalRecord = { orig.copy( @@ -26,22 +24,29 @@ final case class ApiUpdateRecord(status: Option[String], object ApiUpdateRecord { private val reads: Reads[ApiUpdateRecord] = ( - (JsPath \ "status").readNullable[String](Reads.of[String].filter(ValidationError("unknown status"))({ - case x if MedicalRecordStatus.statusFromString.isDefinedAt(x) => true - case _ => false - })) and + (JsPath \ "status").readNullable[String]( + Reads + .of[String] + .filter(ValidationError("unknown status"))({ + case x if MedicalRecordStatus.statusFromString.isDefinedAt(x) => true + case _ => false + })) and (JsPath \ "assignee").readTristate[Long] and - (JsPath \ "meta").readTristate(Reads { x => JsSuccess(Json.stringify(x)) }).map { - case Tristate.Present("{}") => Tristate.Absent - case x => x - } - ) (ApiUpdateRecord.apply _) + (JsPath \ "meta") + .readTristate(Reads { x => + JsSuccess(Json.stringify(x)) + }) + .map { + case Tristate.Present("{}") => Tristate.Absent + case x => x + } + )(ApiUpdateRecord.apply _) private val writes: Writes[ApiUpdateRecord] = ( (JsPath \ "status").writeNullable[String] and (JsPath \ "assignee").writeTristate[Long] and (JsPath \ "meta").writeTristate(Writes[String](Json.parse)) - ) (unlift(ApiUpdateRecord.unapply)) + )(unlift(ApiUpdateRecord.unapply)) implicit val format: Format[ApiUpdateRecord] = Format(reads, writes) } -- cgit v1.2.3