aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-12 11:43:17 +0700
committerGitHub <noreply@github.com>2017-10-12 11:43:17 +0700
commit713897ff6023ec20538f098b09e5770428538ea8 (patch)
tree4c45f8287b10e6ceb0b3dc65d3828038c0b060a5
parente15415d69ec990d5243e58704e232e619b80aa6f (diff)
parent69e3209c00484c39440bff4e234e29f589d963cf (diff)
downloadrest-query-0.8.4.tar.gz
rest-query-0.8.4.tar.bz2
rest-query-0.8.4.zip
Merge pull request #44 from drivergroup/PDSUI-1088v0.8.4
PDSUI-1088 Added labelVersion to documents
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala3
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/DocumentGen.scala3
-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
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/document.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala3
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentFormatSuite.scala5
7 files changed, 25 insertions, 13 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
index 258aa03..fa5f4ce 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
@@ -456,7 +456,8 @@ final case class Document(id: LongId[Document] = LongId(0L),
meta: Option[TextJson[Meta]], // not null
startDate: Option[LocalDate], // not null
endDate: Option[LocalDate],
- lastUpdate: LocalDateTime) {
+ lastUpdate: LocalDateTime,
+ labelVersion: Int) {
import Document.Status._
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/DocumentGen.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/DocumentGen.scala
index 0dadc41..cbaa792 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/DocumentGen.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/DocumentGen.scala
@@ -67,7 +67,8 @@ object DocumentGen {
meta = nextOption(nextDocumentMetaJson()),
startDate = dates._1,
endDate = dates._2,
- lastUpdate = nextLocalDateTime
+ lastUpdate = nextLocalDateTime,
+ labelVersion = generators.nextInt(1, 10)
)
}
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)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/document.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/document.scala
index 69e8b75..795a996 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/document.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/document.scala
@@ -126,7 +126,8 @@ object document {
"previousAssignee" -> document.previousAssignee.toJson,
"meta" -> document.meta.toJson,
"lastActiveUser" -> document.lastActiveUserId.toJson,
- "lastUpdate" -> document.lastUpdate.toJson
+ "lastUpdate" -> document.lastUpdate.toJson,
+ "labelVersion" -> document.labelVersion.toJson
)
override def read(json: JsValue): Document = json match {
@@ -185,7 +186,8 @@ object document {
assignee = None,
previousAssignee = None,
lastActiveUserId = None,
- lastUpdate = LocalDateTime.MIN
+ lastUpdate = LocalDateTime.MIN,
+ labelVersion = 0
)
case _ => deserializationError(s"Expected Json Object as Document, but got $json")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
index 7d8a418..915e4e7 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
@@ -82,7 +82,8 @@ class DocumentSuite extends BaseSuite {
startDate = Some(lastUpdate.toLocalDate.minusDays(2)),
endDate = None,
lastUpdate = lastUpdate,
- meta = Some(TextJson(Document.Meta(1.1, 2.2)))
+ meta = Some(TextJson(Document.Meta(1.1, 2.2))),
+ labelVersion = 1
)
}
}
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentFormatSuite.scala
index e6dd4a1..111da6e 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentFormatSuite.scala
@@ -28,14 +28,15 @@ class DocumentFormatSuite extends FlatSpec with Matchers {
requiredType = Some(Document.RequiredType.OPN),
meta = None,
startDate = None,
- endDate = None
+ endDate = None,
+ labelVersion = 0
)
val writtenJson = documentFormat.write(orig)
writtenJson should be(
"""{"id":1,"recordId":101,"physician":"physician","typeId":10,"provider":"provider 21","providerTypeId":21,
"requiredType":"OPN","institutionName":"institution name","startDate":null,"endDate":null,"status":"New","assignee":null,"previousStatus":null,
- "previousAssignee":null,"lastActiveUser":null,"lastUpdate":"2017-08-10T18:00Z","meta":null}""".parseJson)
+ "previousAssignee":null,"lastActiveUser":null,"lastUpdate":"2017-08-10T18:00Z","meta":null,"labelVersion":0}""".parseJson)
val createDocumentJson =
"""{"recordId":101,"physician":"physician","typeId":10,"provider":"provider 21","providerTypeId":21}""".parseJson