aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/formats/json/document
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json/document')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiDocument.scala12
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiPartialDocument.scala6
2 files changed, 12 insertions, 6 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiDocument.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiDocument.scala
index 3f1ecfe..250e650 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiDocument.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiDocument.scala
@@ -25,7 +25,8 @@ final case class ApiDocument(id: Long,
assignee: Option[String],
previousAssignee: Option[String],
lastActiveUser: Option[String],
- meta: Option[String]) {
+ meta: Option[String],
+ labelVersion: Int) {
private def extractStatus(status: String): Document.Status =
Document.Status.fromString(status).getOrElse(throw new NoSuchElementException(s"Status $status unknown"))
@@ -50,7 +51,8 @@ final case class ApiDocument(id: Long,
meta = this.meta.map(x => TextJson(JsonSerializer.deserialize[Document.Meta](x))),
startDate = this.startDate,
endDate = this.endDate,
- lastUpdate = this.lastUpdate.toLocalDateTime()
+ lastUpdate = this.lastUpdate.toLocalDateTime(),
+ labelVersion = this.labelVersion
)
}
@@ -83,7 +85,8 @@ object ApiDocument {
(JsPath \ "lastActiveUser").formatNullable[String] and
(JsPath \ "meta").formatNullable(Format(Reads { x =>
JsSuccess(Json.stringify(x))
- }, Writes[String](Json.parse)))
+ }, Writes[String](Json.parse))) and
+ (JsPath \ "labelVersion").format[Int]
)(ApiDocument.apply, unlift(ApiDocument.unapply))
def fromDomain(document: Document): ApiDocument = {
@@ -104,7 +107,8 @@ object ApiDocument {
assignee = document.assignee.map(_.id),
previousAssignee = document.previousAssignee.map(_.id),
lastActiveUser = document.lastActiveUserId.map(_.id),
- meta = document.meta.map(meta => JsonSerializer.serialize(meta.content))
+ meta = document.meta.map(meta => JsonSerializer.serialize(meta.content)),
+ labelVersion = document.labelVersion
)
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiPartialDocument.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiPartialDocument.scala
index 032ddf6..ecbdaed 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiPartialDocument.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document/ApiPartialDocument.scala
@@ -47,7 +47,8 @@ final case class ApiPartialDocument(recordId: Option[Long],
meta = meta.cata(x => Some(TextJson(JsonSerializer.deserialize[Meta](x))), None, orig.meta),
startDate = startDate.cata(Some(_), None, orig.startDate),
endDate = endDate.cata(Some(_), None, orig.endDate),
- lastUpdate = LocalDateTime.MIN // Should update internally in a business logic module
+ lastUpdate = LocalDateTime.MIN, // Should update internally in a business logic module,
+ labelVersion = orig.labelVersion
)
def toDomain: Try[Document] = Try {
@@ -75,7 +76,8 @@ final case class ApiPartialDocument(recordId: Option[Long],
assignee = None,
previousAssignee = None,
lastActiveUserId = None,
- lastUpdate = LocalDateTime.MIN
+ lastUpdate = LocalDateTime.MIN,
+ labelVersion = 0
)
} else {
throw new JsonValidationException(validationErrors)