diff options
author | Vyatcheslav Suharnikov <arz.freezy@gmail.com> | 2017-07-12 11:39:40 +0300 |
---|---|---|
committer | Vyatcheslav Suharnikov <arz.freezy@gmail.com> | 2017-07-12 14:07:05 +0300 |
commit | e2313321736520e6acaeb9aaa6ab426e6a8415ff (patch) | |
tree | d95187e353f2b03644ec02d8a92711ce9ec69efb /src/main/scala/xyz/driver/pdsuidomain/formats/json | |
parent | 7ab16021fe2b7e1f7d9d7800458e737d015e7630 (diff) | |
download | rest-query-e2313321736520e6acaeb9aaa6ab426e6a8415ff.tar.gz rest-query-e2313321736520e6acaeb9aaa6ab426e6a8415ff.tar.bz2 rest-query-e2313321736520e6acaeb9aaa6ab426e6a8415ff.zip |
PDSUI-2018 Change user type from LongId to StringId
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/formats/json')
14 files changed, 58 insertions, 52 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 859972c..c01e65c 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 @@ -20,9 +20,9 @@ final case class ApiDocument(id: Long, requiredType: Option[String], status: Option[String], previousStatus: Option[String], - assignee: Option[Long], - previousAssignee: Option[Long], - lastActiveUser: Option[Long], + assignee: Option[String], + previousAssignee: Option[String], + lastActiveUser: Option[String], meta: Option[String]) object ApiDocument { @@ -48,9 +48,9 @@ object ApiDocument { (JsPath \ "requiredType").formatNullable[String] and (JsPath \ "status").formatNullable(statusFormat) and (JsPath \ "previousStatus").formatNullable(statusFormat) and - (JsPath \ "assignee").formatNullable[Long] and - (JsPath \ "previousAssignee").formatNullable[Long] and - (JsPath \ "lastActiveUser").formatNullable[Long] and + (JsPath \ "assignee").formatNullable[String] and + (JsPath \ "previousAssignee").formatNullable[String] and + (JsPath \ "lastActiveUser").formatNullable[String] and (JsPath \ "meta").formatNullable(Format(Reads { x => JsSuccess(Json.stringify(x)) }, Writes[String](Json.parse))) 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 84e9e09..e9485e7 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 @@ -2,16 +2,16 @@ package xyz.driver.pdsuidomain.formats.json.document import java.time.{LocalDate, LocalDateTime} -import xyz.driver.pdsuicommon.domain.{LongId, TextJson} -import xyz.driver.pdsuidomain.entities.Document.Meta -import xyz.driver.pdsuidomain.entities._ import org.davidbild.tristate.Tristate import org.davidbild.tristate.contrib.play.ToJsPathOpsFromJsPath import play.api.data.validation._ import play.api.libs.functional.syntax._ import play.api.libs.json._ +import xyz.driver.pdsuicommon.domain.{LongId, StringId, TextJson} import xyz.driver.pdsuicommon.json.{JsonSerializer, JsonValidationException} import xyz.driver.pdsuicommon.validation.{AdditionalConstraints, JsonValidationErrors} +import xyz.driver.pdsuidomain.entities.Document.Meta +import xyz.driver.pdsuidomain.entities._ import scala.collection.breakOut import scala.util.Try @@ -24,7 +24,7 @@ final case class ApiPartialDocument(recordId: Option[Long], provider: Tristate[String], providerTypeId: Tristate[Long], status: Option[String], - assignee: Tristate[Long], + assignee: Tristate[String], meta: Tristate[String]) { import xyz.driver.pdsuicommon.domain.User @@ -33,7 +33,7 @@ final case class ApiPartialDocument(recordId: Option[Long], id = orig.id, status = status.map(Document.Status.fromString).getOrElse(orig.status), previousStatus = orig.previousStatus, - assignee = assignee.map(LongId[User]).cata(Some(_), None, orig.assignee), + assignee = assignee.map(StringId[User]).cata(Some(_), None, orig.assignee), previousAssignee = orig.previousAssignee, lastActiveUserId = orig.lastActiveUserId, recordId = recordId.map(LongId[MedicalRecord]).getOrElse(orig.recordId), @@ -94,7 +94,7 @@ object ApiPartialDocument { case x if Document.Status.fromString.isDefinedAt(x) => true case _ => false })) and - (JsPath \ "assignee").readTristate[Long] and + (JsPath \ "assignee").readTristate[String] and (JsPath \ "meta").readTristate(Reads { x => JsSuccess(Json.stringify(x)) }).map { case Tristate.Present("{}") => Tristate.Absent case x => x @@ -110,7 +110,7 @@ object ApiPartialDocument { (JsPath \ "provider").writeTristate[String] and (JsPath \ "providerTypeId").writeTristate[Long] and (JsPath \ "status").writeNullable[String] and - (JsPath \ "assignee").writeTristate[Long] and + (JsPath \ "assignee").writeTristate[String] and (JsPath \ "meta").writeTristate(Writes[String](Json.parse)) ) (unlift(ApiPartialDocument.unapply)) diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiMessage.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiMessage.scala index 05f9564..2591509 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiMessage.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiMessage.scala @@ -9,7 +9,7 @@ import xyz.driver.pdsuidomain.entities.Message final case class ApiMessage(id: Long, text: String, lastUpdate: ZonedDateTime, - userId: Long, + userId: String, isDraft: Boolean, recordId: Option[Long], documentId: Option[Long], @@ -44,7 +44,7 @@ object ApiMessage { (JsPath \ "id").format[Long] and (JsPath \ "text").format[String] and (JsPath \ "lastUpdate").format[ZonedDateTime] and - (JsPath \ "userId").format[Long] and + (JsPath \ "userId").format[String] and (JsPath \ "isDraft").format[Boolean] and (JsPath \ "recordId").formatNullable[Long] and (JsPath \ "documentId").formatNullable[Long] and diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiPartialMessage.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiPartialMessage.scala index 88dd5a3..a2656f2 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiPartialMessage.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/message/ApiPartialMessage.scala @@ -18,7 +18,7 @@ final case class ApiPartialMessage(text: Option[String], archiveRequired: Option[Boolean], meta: Option[String]) { - def toDomain(userId: LongId[User]) = Message( + def toDomain(userId: StringId[User]) = Message( id = LongId(0), text = text.getOrElse(""), userId = userId, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/ApiPatient.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/ApiPatient.scala index 68e965c..05a57e4 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/ApiPatient.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient/ApiPatient.scala @@ -10,10 +10,10 @@ final case class ApiPatient(id: String, status: String, name: String, dob: LocalDate, - assignee: Option[Long], + assignee: Option[String], previousStatus: Option[String], - previousAssignee: Option[Long], - lastActiveUser: Option[Long], + previousAssignee: Option[String], + lastActiveUser: Option[String], lastUpdate: ZonedDateTime, condition: String) @@ -24,10 +24,10 @@ object ApiPatient { (JsPath \ "status").format[String] and (JsPath \ "name").format[String] and (JsPath \ "dob").format[LocalDate] and - (JsPath \ "assignee").formatNullable[Long] and + (JsPath \ "assignee").formatNullable[String] and (JsPath \ "previousStatus").formatNullable[String] and - (JsPath \ "previousAssignee").formatNullable[Long] and - (JsPath \ "lastActiveUser").formatNullable[Long] and + (JsPath \ "previousAssignee").formatNullable[String] and + (JsPath \ "lastActiveUser").formatNullable[String] and (JsPath \ "lastUpdate").format[ZonedDateTime] and (JsPath \ "condition").format[String] )(ApiPatient.apply, unlift(ApiPatient.unapply)) 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 4197bc6..0e0b4d9 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 @@ -16,9 +16,9 @@ final case class ApiRecord(id: Long, lastUpdate: ZonedDateTime, status: String, previousStatus: Option[String], - assignee: Option[Long], - previousAssignee: Option[Long], - lastActiveUser: Option[Long], + assignee: Option[String], + previousAssignee: Option[String], + lastActiveUser: Option[String], meta: String) object ApiRecord { @@ -40,9 +40,9 @@ object ApiRecord { (JsPath \ "lastUpdate").format[ZonedDateTime] and (JsPath \ "status").format(statusFormat) and (JsPath \ "previousStatus").formatNullable(statusFormat) and - (JsPath \ "assignee").formatNullable[Long] and - (JsPath \ "previousAssignee").formatNullable[Long] and - (JsPath \ "lastActiveUser").formatNullable[Long] and + (JsPath \ "assignee").formatNullable[String] and + (JsPath \ "previousAssignee").formatNullable[String] and + (JsPath \ "lastActiveUser").formatNullable[String] and (JsPath \ "meta").format(Format(Reads { x => JsSuccess(Json.stringify(x)) }, Writes[String](Json.parse))) 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 0d17b66..47bc493 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 @@ -1,21 +1,21 @@ package xyz.driver.pdsuidomain.formats.json.record -import xyz.driver.pdsuidomain.entities.MedicalRecord.Meta -import xyz.driver.pdsuidomain.entities._ -import xyz.driver.pdsuicommon.domain.{LongId, TextJson, User} import org.davidbild.tristate.Tristate import org.davidbild.tristate.contrib.play.ToJsPathOpsFromJsPath import play.api.data.validation.ValidationError import play.api.libs.functional.syntax._ import play.api.libs.json._ +import xyz.driver.pdsuicommon.domain.{StringId, TextJson, User} import xyz.driver.pdsuicommon.json.JsonSerializer +import xyz.driver.pdsuidomain.entities.MedicalRecord.Meta +import xyz.driver.pdsuidomain.entities._ -final case class ApiUpdateRecord(status: Option[String], assignee: Tristate[Long], meta: Tristate[String]) { +final case class ApiUpdateRecord(status: Option[String], assignee: Tristate[String], meta: Tristate[String]) { def applyTo(orig: MedicalRecord): MedicalRecord = { orig.copy( status = status.map(MedicalRecordStatus.statusFromString).getOrElse(orig.status), - assignee = assignee.map(LongId[User]).cata(Some(_), None, orig.assignee), + assignee = assignee.map(StringId[User]).cata(Some(_), None, orig.assignee), meta = meta.cata(x => Some(TextJson(JsonSerializer.deserialize[List[Meta]](x))), None, orig.meta) ) } @@ -31,7 +31,7 @@ object ApiUpdateRecord { case x if MedicalRecordStatus.statusFromString.isDefinedAt(x) => true case _ => false })) and - (JsPath \ "assignee").readTristate[Long] and + (JsPath \ "assignee").readTristate[String] and (JsPath \ "meta") .readTristate(Reads { x => JsSuccess(Json.stringify(x)) @@ -44,7 +44,7 @@ object ApiUpdateRecord { private val writes: Writes[ApiUpdateRecord] = ( (JsPath \ "status").writeNullable[String] and - (JsPath \ "assignee").writeTristate[Long] and + (JsPath \ "assignee").writeTristate[String] and (JsPath \ "meta").writeTristate(Writes[String](Json.parse)) )(unlift(ApiUpdateRecord.unapply)) diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala index 97bab5e..940f1f0 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial/ApiTrial.scala @@ -10,10 +10,10 @@ import play.api.libs.json._ final case class ApiTrial(id: String, lastUpdate: Option[ZonedDateTime], status: String, - assignee: Option[Long], + assignee: Option[String], previousStatus: Option[String], - previousAssignee: Option[Long], - lastActiveUser: Option[Long], + previousAssignee: Option[String], + lastActiveUser: Option[String], condition: Option[String], phase: Option[String], hypothesisId: Option[UUID], @@ -30,10 +30,10 @@ object ApiTrial { (JsPath \ "id").format[String] and (JsPath \ "lastUpdate").formatNullable[ZonedDateTime] and (JsPath \ "status").format[String] and - (JsPath \ "assignee").formatNullable[Long] and + (JsPath \ "assignee").formatNullable[String] and (JsPath \ "previousStatus").formatNullable[String] and - (JsPath \ "previousAssignee").formatNullable[Long] and - (JsPath \ "lastActiveUser").formatNullable[Long] and + (JsPath \ "previousAssignee").formatNullable[String] and + (JsPath \ "lastActiveUser").formatNullable[String] and (JsPath \ "condition").formatNullable[String] and (JsPath \ "phase").formatNullable[String] and (JsPath \ "hypothesisId").formatNullable[UUID] and diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory/ApiTrialHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory/ApiTrialHistory.scala index 60f72a6..38faeb8 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory/ApiTrialHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory/ApiTrialHistory.scala @@ -6,7 +6,7 @@ import play.api.libs.json.{Format, Json} import xyz.driver.pdsuidomain.entities.TrialHistory final case class ApiTrialHistory(id: Long, - executor: Long, + executor: String, trialId: String, state: String, action: String, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiPartialTrialIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiPartialTrialIssue.scala index 5dcde8a..fc31371 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiPartialTrialIssue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiPartialTrialIssue.scala @@ -15,7 +15,7 @@ final case class ApiPartialTrialIssue(text: String, evidence: String, archiveReq meta = meta ) - def toDomain(userId: LongId[User], trialId: StringId[Trial]) = TrialIssue( + def toDomain(userId: StringId[User], trialId: StringId[Trial]) = TrialIssue( id = LongId(0), userId = userId, trialId = trialId, diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiTrialIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiTrialIssue.scala index a5399aa..852c4f6 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiTrialIssue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue/ApiTrialIssue.scala @@ -9,7 +9,7 @@ import xyz.driver.pdsuidomain.entities.TrialIssue final case class ApiTrialIssue(id: Long, text: String, lastUpdate: ZonedDateTime, - userId: Long, + userId: String, isDraft: Boolean, evidence: String, archiveRequired: Boolean, @@ -20,7 +20,7 @@ object ApiTrialIssue { (JsPath \ "id").format[Long] and (JsPath \ "text").format[String] and (JsPath \ "lastUpdate").format[ZonedDateTime] and - (JsPath \ "userId").format[Long] and + (JsPath \ "userId").format[String] and (JsPath \ "isDraft").format[Boolean] and (JsPath \ "evidence").format[String] and (JsPath \ "archiveRequired").format[Boolean] and diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala index a37fea8..f31efb3 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala @@ -1,6 +1,8 @@ package xyz.driver.pdsuidomain.formats.json.user -import xyz.driver.pdsuicommon.domain.{Email, LongId, PasswordHash, User} +import java.util.UUID + +import xyz.driver.pdsuicommon.domain._ import play.api.data.validation._ import play.api.libs.functional.syntax._ import play.api.libs.json._ @@ -29,7 +31,7 @@ final case class ApiPartialUser(email: Option[String], name: Option[String], rol } } - def toDomain(id: LongId[User] = LongId(0L)): Try[User] = Try { + def toDomain(id: StringId[User] = StringId(UUID.randomUUID().toString)): Try[User] = Try { val validation = Map( JsPath \ "email" -> AdditionalConstraints.optionNonEmptyConstraint(email), JsPath \ "name" -> AdditionalConstraints.optionNonEmptyConstraint(name), @@ -62,7 +64,7 @@ object ApiPartialUser { implicit val format: Format[ApiPartialUser] = ( (JsPath \ "email").formatNullable[String](Format(Reads.email, Writes.StringWrites)) and (JsPath \ "name").formatNullable[String](Format( - Reads.filterNot[String](ValidationError("Username is too long (max length is 255 chars)", 255))(_.size > 255), + Reads.filterNot[String](ValidationError("Username is too long (max length is 255 chars)", 255))(_.length > 255), Writes.StringWrites )) and (JsPath \ "roleId").formatNullable[String]( diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala index 29138ed..8dbedfe 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiUser.scala @@ -7,12 +7,16 @@ import play.api.data.validation.ValidationError import play.api.libs.functional.syntax._ import play.api.libs.json._ -final case class ApiUser(id: Long, email: String, name: String, roleId: String, latestActivity: Option[ZonedDateTime]) +final case class ApiUser(id: String, + email: String, + name: String, + roleId: String, + latestActivity: Option[ZonedDateTime]) object ApiUser { implicit val format: Format[ApiUser] = ( - (JsPath \ "id").format[Long] and + (JsPath \ "id").format[String] and (JsPath \ "email").format[String](Reads.email) and (JsPath \ "name").format[String] and (JsPath \ "roleId").format[String]( diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/userhistory/ApiUserHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/userhistory/ApiUserHistory.scala index 2d0df80..127337f 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/userhistory/ApiUserHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/userhistory/ApiUserHistory.scala @@ -7,7 +7,7 @@ import play.api.libs.json.{Format, JsPath} import xyz.driver.pdsuidomain.entities.UserHistory final case class ApiUserHistory(id: Long, - executor: Long, + executor: String, recordId: Option[Long], documentId: Option[Long], trialId: Option[String], @@ -19,7 +19,7 @@ final case class ApiUserHistory(id: Long, object ApiUserHistory { implicit val format: Format[ApiUserHistory] = ( (JsPath \ "id").format[Long] and - (JsPath \ "executor").format[Long] and + (JsPath \ "executor").format[String] and (JsPath \ "recordId").formatNullable[Long] and (JsPath \ "documentId").formatNullable[Long] and (JsPath \ "trialId").formatNullable[String] and |