aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-11 11:32:02 +0700
committerGitHub <noreply@github.com>2017-10-11 11:32:02 +0700
commitbbbcaf35a6081dba24dbb9a9aeb9d25fc2ca60be (patch)
treeb6536d1d2b1730a357ab57fa3b17ec6b53f559c9
parent5943f6c0fc71ebc4717eb6212b3dfcc35711665c (diff)
parent3ad026d3de39a0e04f5f1ea32081d49d9cda21fa (diff)
downloadrest-query-bbbcaf35a6081dba24dbb9a9aeb9d25fc2ca60be.tar.gz
rest-query-bbbcaf35a6081dba24dbb9a9aeb9d25fc2ca60be.tar.bz2
rest-query-bbbcaf35a6081dba24dbb9a9aeb9d25fc2ca60be.zip
Merge pull request #43 from drivergroup/PDSUI-2265v0.8.0
PDSUI-2265 Added info about total pages to medical record
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala3
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/MedicalRecordGen.scala3
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiCreateRecord.scala3
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiRecord.scala12
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala4
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/ListResponseSuite.scala5
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala8
8 files changed, 30 insertions, 14 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
index ed35db4..591b8bd 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
@@ -156,7 +156,8 @@ final case class MedicalRecord(id: LongId[MedicalRecord],
caseId: Option[CaseId],
physician: Option[String],
meta: Option[TextJson[List[Meta]]],
- lastUpdate: LocalDateTime) {
+ lastUpdate: LocalDateTime,
+ totalPages: Int) {
import MedicalRecord.Status._
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/MedicalRecordGen.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/MedicalRecordGen.scala
index 254968a..eb475b4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/MedicalRecordGen.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/rep/MedicalRecordGen.scala
@@ -93,7 +93,8 @@ object MedicalRecordGen {
caseId = nextOption(CaseId(generators.nextString())),
physician = nextOption(generators.nextString()),
meta = nextOption(nextMedicalRecordMetasJson()),
- lastUpdate = nextLocalDateTime
+ lastUpdate = nextLocalDateTime,
+ totalPages = nextInt(1, 10)
)
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiCreateRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiCreateRecord.scala
index 1f8c683..fd14f7c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiCreateRecord.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiCreateRecord.scala
@@ -22,7 +22,8 @@ final case class ApiCreateRecord(disease: String, patientId: String, requestId:
caseId = None,
physician = None,
meta = None,
- lastUpdate = LocalDateTime.now()
+ lastUpdate = LocalDateTime.now(),
+ totalPages = 0
)
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiRecord.scala
index fc0a2e7..00441a1 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiRecord.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record/ApiRecord.scala
@@ -41,7 +41,8 @@ object ApiRecord {
(JsPath \ "requestId").format[UUID] and
(JsPath \ "meta").format(Format(Reads { x =>
JsSuccess(Json.stringify(x))
- }, Writes[String](Json.parse)))
+ }, Writes[String](Json.parse))) and
+ (JsPath \ "totalPages").format[Int]
)(ApiRecord.apply, unlift(ApiRecord.unapply))
def fromDomain(record: MedicalRecord) = ApiRecord(
@@ -57,7 +58,8 @@ object ApiRecord {
previousAssignee = record.previousAssignee.map(_.id),
lastActiveUser = record.lastActiveUserId.map(_.id),
requestId = record.requestId.id,
- meta = record.meta.map(x => JsonSerializer.serialize(x.content)).getOrElse(emptyMeta)
+ meta = record.meta.map(x => JsonSerializer.serialize(x.content)).getOrElse(emptyMeta),
+ totalPages = record.totalPages
)
}
@@ -73,7 +75,8 @@ final case class ApiRecord(id: Long,
previousAssignee: Option[String],
lastActiveUser: Option[String],
requestId: UUID,
- meta: String) {
+ meta: String,
+ totalPages: Int) {
private def extractStatus(status: String): Status =
Status
@@ -101,6 +104,7 @@ final case class ApiRecord(id: Long,
Some(TextJson(JsonSerializer.deserialize[List[MedicalRecord.Meta]](this.meta)))
}
},
- lastUpdate = this.lastUpdate.toLocalDateTime()
+ lastUpdate = this.lastUpdate.toLocalDateTime,
+ totalPages = 0
)
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
index 65687c1..e8c0b94 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/record.scala
@@ -172,7 +172,8 @@ object record {
"requestId" -> record.requestId.toJson,
"meta" -> record.meta.getOrElse(TextJson[List[Meta]](List.empty)).toJson,
"lastActiveUser" -> record.lastActiveUserId.toJson,
- "lastUpdate" -> record.lastUpdate.toJson
+ "lastUpdate" -> record.lastUpdate.toJson,
+ "totalPages" -> record.totalPages.toJson
)
override def read(json: JsValue): MedicalRecord = json match {
@@ -205,7 +206,8 @@ object record {
caseId = None,
physician = None,
meta = None,
- lastUpdate = LocalDateTime.now()
+ lastUpdate = LocalDateTime.now(),
+ totalPages = 0
)
case _ => deserializationError(s"Expected Json Object as MedicalRecord, but got $json")
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
index 7a0502b..ebcb0f9 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
@@ -56,7 +56,11 @@ object MedicalRecordService {
sealed trait CreateReply
object CreateReply {
+ type Error = CreateReply with DomainError
+
final case class Created(x: MedicalRecord) extends CreateReply
+
+ final case class CommonError(userMessage: String) extends CreateReply with DomainError
}
sealed trait UpdateReply
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/ListResponseSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/ListResponseSuite.scala
index 2e7481a..65024a3 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/ListResponseSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/ListResponseSuite.scala
@@ -83,13 +83,14 @@ class ListResponseSuite extends FlatSpec with Matchers {
disease = "Breast",
requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
caseId = None,
- patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343")
+ patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
+ totalPages = 10
)
val recordJsonAsString =
"""{"id":1,"status":"New","assignee":null,"previousStatus":null,"previousAssignee":null,"lastActiveUser":null,
"lastUpdate":"2017-08-10T18:00Z","meta":[],"patientId":"748b5884-3528-4cb9-904b-7a8151d6e343","caseId":null,
- "requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast","physician":"physician"}"""
+ "requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast","physician":"physician","totalPages":10}"""
val meta =
ListResponse.Meta(
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
index dd074e5..90d5b6e 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
@@ -26,14 +26,15 @@ class MedicalRecordFormatSuite extends FlatSpec with Matchers {
disease = "Breast",
requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
caseId = None,
- patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343")
+ patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
+ totalPages = 10
)
val writtenJson = recordFormat.write(orig)
writtenJson should be (
"""{"id":1,"status":"New","assignee":null,"previousStatus":null,"previousAssignee":null,"lastActiveUser":null,
"lastUpdate":"2017-08-10T18:00Z","meta":[],"patientId":"748b5884-3528-4cb9-904b-7a8151d6e343","caseId":null,
- "requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast","physician":"physician"}""".parseJson)
+ "requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast","physician":"physician","totalPages":10}""".parseJson)
val createRecordJson =
"""{"disease":"Breast","patientId":"748b5884-3528-4cb9-904b-7a8151d6e343","requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9"}""".parseJson
@@ -50,7 +51,8 @@ class MedicalRecordFormatSuite extends FlatSpec with Matchers {
caseId = None,
physician = None,
meta = None,
- lastUpdate = LocalDateTime.now()
+ lastUpdate = LocalDateTime.now(),
+ totalPages = 0
)
val parsedCreatedRecord = recordFormat.read(createRecordJson).copy(lastUpdate = expectedCreatedRecord.lastUpdate)
parsedCreatedRecord should be(expectedCreatedRecord)