From e2313321736520e6acaeb9aaa6ab426e6a8415ff Mon Sep 17 00:00:00 2001 From: Vyatcheslav Suharnikov Date: Wed, 12 Jul 2017 11:39:40 +0300 Subject: PDSUI-2018 Change user type from LongId to StringId --- .../scala/xyz/driver/pdsuicommon/domain/User.scala | 2 +- .../xyz/driver/pdsuicommon/logging/TimeLogger.scala | 4 ++-- .../xyz/driver/pdsuidomain/entities/Document.scala | 10 +++++----- .../driver/pdsuidomain/entities/LinkedPatient.scala | 2 +- .../driver/pdsuidomain/entities/MedicalRecord.scala | 8 ++++---- .../xyz/driver/pdsuidomain/entities/Message.scala | 2 +- .../xyz/driver/pdsuidomain/entities/Patient.scala | 8 ++++---- .../pdsuidomain/entities/PatientCriterion.scala | 4 +--- .../xyz/driver/pdsuidomain/entities/Trial.scala | 6 +++--- .../driver/pdsuidomain/entities/TrialHistory.scala | 21 ++++++++++----------- .../driver/pdsuidomain/entities/TrialIssue.scala | 2 +- .../driver/pdsuidomain/entities/UserHistory.scala | 19 ++++--------------- .../formats/json/document/ApiDocument.scala | 12 ++++++------ .../formats/json/document/ApiPartialDocument.scala | 14 +++++++------- .../formats/json/message/ApiMessage.scala | 4 ++-- .../formats/json/message/ApiPartialMessage.scala | 2 +- .../formats/json/patient/ApiPatient.scala | 12 ++++++------ .../pdsuidomain/formats/json/record/ApiRecord.scala | 12 ++++++------ .../formats/json/record/ApiUpdateRecord.scala | 14 +++++++------- .../pdsuidomain/formats/json/trial/ApiTrial.scala | 12 ++++++------ .../formats/json/trialhistory/ApiTrialHistory.scala | 2 +- .../json/trialissue/ApiPartialTrialIssue.scala | 2 +- .../formats/json/trialissue/ApiTrialIssue.scala | 4 ++-- .../formats/json/user/ApiPartialUser.scala | 8 +++++--- .../pdsuidomain/formats/json/user/ApiUser.scala | 8 ++++++-- .../formats/json/userhistory/ApiUserHistory.scala | 4 ++-- .../services/PatientCriterionService.scala | 2 +- .../pdsuidomain/services/TrialHistoryService.scala | 11 +++-------- .../driver/pdsuidomain/services/UserService.scala | 8 ++++---- .../scala/xyz/driver/pdsuicommon/BaseSuite.scala | 4 ++-- .../db/QueryBuilderParametersSuite.scala | 4 ++-- .../formats/json/ApiPartialDocumentSuite.scala | 2 +- 32 files changed, 108 insertions(+), 121 deletions(-) (limited to 'src') diff --git a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala b/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala index bf4970e..8d2d86d 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala @@ -8,7 +8,7 @@ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.domain.User.Role import xyz.driver.pdsuicommon.utils.Utils -case class User(id: LongId[User], +case class User(id: StringId[User], email: Email, name: String, role: Role, diff --git a/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala b/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala index dd5ba5e..297b0e1 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala @@ -2,11 +2,11 @@ package xyz.driver.pdsuicommon.logging import java.time.{LocalDateTime, ZoneId} -import xyz.driver.pdsuicommon.domain.{LongId, User} +import xyz.driver.pdsuicommon.domain.{StringId, User} object TimeLogger extends PhiLogging { - def logTime(userId: LongId[User], label: String, obj: String): Unit = { + def logTime(userId: StringId[User], label: String, obj: String): Unit = { val now = LocalDateTime.now(ZoneId.of("Z")) logger.info(phi"User id=$userId performed an action at ${Unsafe(label)}=$now with a ${Unsafe(obj)} ") } diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala index 5c957fb..d324fcd 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala @@ -6,13 +6,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.core.{JsonGenerator, JsonParser} import com.fasterxml.jackson.databind._ import com.fasterxml.jackson.databind.annotation.{JsonDeserialize, JsonSerialize} -import xyz.driver.pdsuicommon.domain.{LongId, TextJson, User} +import xyz.driver.pdsuicommon.compat.Implicits._ +import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils import xyz.driver.pdsuicommon.validation.Validators import xyz.driver.pdsuicommon.validation.Validators.Validator import xyz.driver.pdsuidomain.entities.Document.Meta -import xyz.driver.pdsuicommon.compat.Implicits._ final case class ProviderType(id: LongId[ProviderType], name: String) @@ -269,9 +269,9 @@ object Document { final case class Document(id: LongId[Document] = LongId(0L), status: Document.Status, previousStatus: Option[Document.Status], - assignee: Option[LongId[User]], - previousAssignee: Option[LongId[User]], - lastActiveUserId: Option[LongId[User]], + assignee: Option[StringId[User]], + previousAssignee: Option[StringId[User]], + lastActiveUserId: Option[StringId[User]], recordId: LongId[MedicalRecord], physician: Option[String], typeId: Option[LongId[DocumentType]], // not null diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/LinkedPatient.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/LinkedPatient.scala index 1b30c64..28f279f 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/LinkedPatient.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/LinkedPatient.scala @@ -11,4 +11,4 @@ object LinkedPatient { } } -case class LinkedPatient(userId: LongId[User], patientId: UuidId[Patient], trialId: StringId[Trial]) +case class LinkedPatient(userId: StringId[User], patientId: UuidId[Patient], trialId: StringId[Trial]) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala index 0e30fa0..9f38283 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala @@ -5,7 +5,7 @@ import java.time.LocalDateTime import com.fasterxml.jackson.annotation.JsonSubTypes.Type import com.fasterxml.jackson.annotation.{JsonProperty, JsonSubTypes, JsonTypeInfo} -import xyz.driver.pdsuicommon.domain.{LongId, TextJson, User, UuidId} +import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils import xyz.driver.pdsuidomain.entities.MedicalRecord.Meta @@ -142,9 +142,9 @@ object MedicalRecord { case class MedicalRecord(id: LongId[MedicalRecord], status: MedicalRecord.Status, previousStatus: Option[MedicalRecord.Status], - assignee: Option[LongId[User]], - previousAssignee: Option[LongId[User]], - lastActiveUserId: Option[LongId[User]], + assignee: Option[StringId[User]], + previousAssignee: Option[StringId[User]], + lastActiveUserId: Option[StringId[User]], patientId: UuidId[Patient], requestId: RecordRequestId, disease: String, diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala index 2a73922..f02f481 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala @@ -8,7 +8,7 @@ import xyz.driver.pdsuicommon.logging._ final case class Message(id: LongId[Message], text: String, lastUpdate: LocalDateTime, - userId: LongId[User], + userId: StringId[User], isDraft: Boolean, recordId: Option[LongId[MedicalRecord]], documentId: Option[LongId[Document]], diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala index 695245c..6be0b88 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala @@ -2,7 +2,7 @@ package xyz.driver.pdsuidomain.entities import java.time.{LocalDate, LocalDateTime} -import xyz.driver.pdsuicommon.domain.{LongId, User, UuidId} +import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils @@ -54,10 +54,10 @@ final case class Patient(id: UuidId[Patient], status: Patient.Status, name: String, dob: LocalDate, - assignee: Option[LongId[User]], + assignee: Option[StringId[User]], previousStatus: Option[Patient.Status], - previousAssignee: Option[LongId[User]], - lastActiveUserId: Option[LongId[User]], + previousAssignee: Option[StringId[User]], + lastActiveUserId: Option[StringId[User]], isUpdateRequired: Boolean, condition: String, orderId: PatientOrderId, diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala index 6c14458..469b21c 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientCriterion.scala @@ -64,6 +64,4 @@ object PatientCriterionArm { } -final case class PatientCriterionArm(patientCriterionId: LongId[PatientCriterion], - armId: LongId[Arm], - armName: String) +final case class PatientCriterionArm(patientCriterionId: LongId[PatientCriterion], armId: LongId[Arm], armName: String) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala index 0f478ca..3fe8176 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala @@ -78,10 +78,10 @@ object Trial { final case class Trial(id: StringId[Trial], externalId: UuidId[Trial], status: Status, - assignee: Option[LongId[User]], + assignee: Option[StringId[User]], previousStatus: Option[Status], - previousAssignee: Option[LongId[User]], - lastActiveUserId: Option[LongId[User]], + previousAssignee: Option[StringId[User]], + lastActiveUserId: Option[StringId[User]], lastUpdate: LocalDateTime, condition: Condition, phase: String, diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala index 829a351..c73aefe 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala @@ -16,10 +16,10 @@ object TrialHistory { sealed trait State object State { - case object Summarize extends State + case object Summarize extends State case object Criteriarize extends State - case object Review extends State - case object Flag extends State + case object Review extends State + case object Flag extends State val All: Set[State] = Set[State](Summarize, Criteriarize, Review, Flag) @@ -50,12 +50,12 @@ object TrialHistory { } object Action { - case object Start extends Action - case object Submit extends Action + case object Start extends Action + case object Submit extends Action case object Unassign extends Action - case object Resolve extends Action - case object Flag extends Action - case object Archive extends Action + case object Resolve extends Action + case object Flag extends Action + case object Archive extends Action val All: Set[Action] = Set[Action](Start, Submit, Unassign, Resolve, Flag, Archive) @@ -85,9 +85,8 @@ object TrialHistory { } final case class TrialHistory(id: LongId[TrialHistory], - executor: LongId[User], + executor: StringId[User], trialId: StringId[Trial], state: State, action: Action, - created: LocalDateTime = - LocalDateTime.now(ZoneId.of("Z"))) + created: LocalDateTime = LocalDateTime.now(ZoneId.of("Z"))) diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala index 34895b6..2514f4d 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala @@ -6,7 +6,7 @@ import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} import xyz.driver.pdsuicommon.logging._ final case class TrialIssue(id: LongId[TrialIssue], - userId: LongId[User], + userId: StringId[User], trialId: StringId[Trial], lastUpdate: LocalDateTime, isDraft: Boolean, diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala index 4abb205..9be26b9 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala @@ -7,7 +7,7 @@ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils final case class UserHistory(id: LongId[UserHistory], - executor: LongId[User], + executor: StringId[User], recordId: Option[LongId[MedicalRecord]] = None, documentId: Option[LongId[Document]] = None, trialId: Option[StringId[Trial]] = None, @@ -18,7 +18,7 @@ final case class UserHistory(id: LongId[UserHistory], object UserHistory { - def forDocument(executor: LongId[User], + def forDocument(executor: StringId[User], documentId: LongId[Document], state: UserHistory.State, action: UserHistory.Action): UserHistory = UserHistory( @@ -29,7 +29,7 @@ object UserHistory { action = action ) - def forRecord(executor: LongId[User], + def forRecord(executor: StringId[User], recordId: LongId[MedicalRecord], state: UserHistory.State, action: UserHistory.Action): UserHistory = UserHistory( @@ -40,18 +40,7 @@ object UserHistory { action = action ) - def forTrial(executor: LongId[User], - trialId: StringId[Trial], - state: UserHistory.State, - action: UserHistory.Action): UserHistory = UserHistory( - id = LongId(0L), - executor = executor, - trialId = Some(trialId), - state = state, - action = action - ) - - def forPatient(executor: LongId[User], + def forPatient(executor: StringId[User], patientId: UuidId[Patient], state: UserHistory.State, action: UserHistory.Action): UserHistory = UserHistory( 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 diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala index 5c9aa19..c2f7b50 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala @@ -73,7 +73,7 @@ object PatientCriterionService { case class CommonError(userMessage: String) extends GetByIdReply with DomainError implicit def toPhiString(reply: GetByIdReply): PhiString = reply match { - case x: DomainError => phi"GetByIdReply.Error($x)" + case x: DomainError => phi"GetByIdReply.Error($x)" case Entity(x, labelId, armList) => phi"GetByIdReply.Entity(entity=$x, labelId=$labelId, armList=$armList)" } } diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala index 17111a9..9ad9fc1 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala @@ -22,15 +22,11 @@ object TrialHistoryService { sealed trait GetListReply object GetListReply { - case class EntityList(xs: Seq[TrialHistory], - totalFound: Int, - lastUpdate: Option[LocalDateTime]) + case class EntityList(xs: Seq[TrialHistory], totalFound: Int, lastUpdate: Option[LocalDateTime]) extends GetListReply case object AuthorizationError - extends GetListReply - with DomainError.AuthorizationError - with DefaultAccessDeniedError + extends GetListReply with DomainError.AuthorizationError with DefaultAccessDeniedError } } @@ -43,7 +39,6 @@ trait TrialHistoryService { filter: SearchFilterExpr = SearchFilterExpr.Empty, sorting: Option[Sorting] = None, pagination: Option[Pagination] = None)( - implicit requestContext: AuthenticatedRequestContext) - : Future[GetListReply] + implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] } diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/UserService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/UserService.scala index a1d4800..b54b6a9 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/UserService.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/UserService.scala @@ -2,7 +2,7 @@ package xyz.driver.pdsuidomain.services import xyz.driver.pdsuicommon.auth.{AnonymousRequestContext, AuthenticatedRequestContext} import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting} -import xyz.driver.pdsuicommon.domain.{Email, LongId, User} +import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.error.DomainError import scala.concurrent.Future @@ -103,10 +103,10 @@ trait UserService { /** * Utility method for getting request executor. */ - def activateExecutor(executorId: LongId[User])( + def activateExecutor(executorId: StringId[User])( implicit requestContext: AnonymousRequestContext): Future[ActivateExecutorReply] - def getById(userId: LongId[User])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] + def getById(userId: StringId[User])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] def getByEmail(email: Email)(implicit requestContext: AnonymousRequestContext): Future[GetByEmailReply] @@ -123,5 +123,5 @@ trait UserService { def update(origUser: User, draftUser: User)( implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] - def delete(userId: LongId[User])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] + def delete(userId: StringId[User])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] } diff --git a/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala b/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala index 71f8ebf..1cfb70b 100644 --- a/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala +++ b/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala @@ -6,7 +6,7 @@ import org.scalatest.FreeSpecLike import org.scalatest.concurrent.ScalaFutures import org.scalatest.time.{Millis, Span} import xyz.driver.pdsuicommon.db._ -import xyz.driver.pdsuicommon.domain.{Email, LongId, PasswordHash, User} +import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.error.UnexpectedFilterException import xyz.driver.pdsuicommon.utils.DiffUtils @@ -16,7 +16,7 @@ trait BaseSuite extends FreeSpecLike with DiffUtils with ScalaFutures { implicit val sqlContext = new MockMySqlContext() def sampleUser(role: User.Role, email: String = "test@example.com", password: String = "123") = User( - id = LongId(2001), + id = StringId("2001"), email = Email(email), name = "Test", role = role, diff --git a/src/test/scala/xyz/driver/pdsuicommon/db/QueryBuilderParametersSuite.scala b/src/test/scala/xyz/driver/pdsuicommon/db/QueryBuilderParametersSuite.scala index df8e417..2c23b92 100644 --- a/src/test/scala/xyz/driver/pdsuicommon/db/QueryBuilderParametersSuite.scala +++ b/src/test/scala/xyz/driver/pdsuicommon/db/QueryBuilderParametersSuite.scala @@ -5,7 +5,7 @@ import java.time.LocalDateTime import io.getquill.MysqlEscape import org.scalatest.FreeSpecLike import xyz.driver.pdsuicommon.db.QueryBuilder.TableData -import xyz.driver.pdsuicommon.domain.{Email, LongId, User} +import xyz.driver.pdsuicommon.domain._ class QueryBuilderParametersSuite extends FreeSpecLike { @@ -20,7 +20,7 @@ class QueryBuilderParametersSuite extends FreeSpecLike { case class Entity(id: LongId[Entity], name: String, email: Email, - optionUser: Option[LongId[User]], + optionUser: Option[StringId[User]], date: LocalDateTime, optionDate: Option[LocalDateTime], kindId: Long) diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiPartialDocumentSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiPartialDocumentSuite.scala index 7fe1658..2ae52f9 100644 --- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiPartialDocumentSuite.scala +++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiPartialDocumentSuite.scala @@ -126,7 +126,7 @@ class ApiPartialDocumentSuite extends FreeSpecLike { val apiPartialDocument = apiPartialDocumentExample.copy(assignee = newAssignee) val newDocument = apiPartialDocument.applyTo(origDocument) - assert(newDocument.assignee === newAssignee.toOption.map(LongId[User])) + assert(newDocument.assignee === newAssignee.toOption.map(StringId[User])) } } -- cgit v1.2.3