aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Uspensky <v.uspenskiy@icloud.com>2017-11-02 20:40:31 -0700
committerGitHub <noreply@github.com>2017-11-02 20:40:31 -0700
commitaedb5274932db81a32f9d89938636df114dc9a44 (patch)
tree13a0a8a51f477a4fce2bb8f4d5cd8248de54a73b
parent4583af5213b9f7b1e8a06f58321813556763f2d1 (diff)
parent5515c834853cbe3ce60460a4819a94805cfe24f7 (diff)
downloadrest-query-aedb5274932db81a32f9d89938636df114dc9a44.tar.gz
rest-query-aedb5274932db81a32f9d89938636df114dc9a44.tar.bz2
rest-query-aedb5274932db81a32f9d89938636df114dc9a44.zip
Merge pull request #59 from drivergroup/common-contextsv0.13.1
Using common request contexts and user objects
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala46
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala36
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/domain/Email.scala3
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/domain/User.scala163
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala9
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala29
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/CaseId.scala10
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala12
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/DocumentIssue.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala21
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordHistory.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordIssue.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala30
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientHistory.scala8
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientIssue.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/PatientOrderId.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientDocument.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/RecordRequestId.scala15
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/export.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala33
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala19
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/fakes/entities/trialcuration.scala13
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala2
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala2
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala8
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala1
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala22
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala8
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala27
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala2
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala8
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala2
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala6
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/ArmService.scala20
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/CriterionService.scala18
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/DocumentHistoryService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/DocumentIssueService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/DocumentService.scala39
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/DocumentTypeService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/EligibilityArmService.scala19
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/ExtractedDataService.scala17
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/HypothesisService.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/InterventionService.scala18
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/InterventionTypeService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordHistoryService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordIssueService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala36
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientEligibleTrialService.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientHistoryService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientHypothesisService.scala9
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientIssueService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelEvidenceService.scala7
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelService.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/PatientService.scala29
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/ProviderTypeService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/QueueUploadService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/SlotArmService.scala19
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/StudyDesignService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala5
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/TrialIssueService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/TrialService.scala40
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/fake/FakeTrialService.scala38
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestArmService.scala16
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestCriterionService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala38
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentTypeService.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestExtractedDataService.scala16
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala17
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHypothesisService.scala10
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionService.scala14
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionTypeService.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestMedicalRecordService.scala39
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientCriterionService.scala10
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientLabelService.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientService.scala28
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestProviderTypeService.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestStudyDesignService.scala4
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala39
-rw-r--r--src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala23
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala10
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentHistoryFormatSuite.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentIssueFormatSuite.scala8
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/ExportFormatSuite.scala7
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/ListResponseFormatSuite.scala7
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordFormatSuite.scala9
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordHistoryFormatSuite.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordIssueFormatSuite.scala8
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientHistoryFormatSuite.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientIssueFormatSuite.scala6
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialHistoryFormatSuite.scala2
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialIssueFormatSuite.scala4
105 files changed, 692 insertions, 838 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala b/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala
index 3eb1a65..c1907cd 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala
@@ -1,22 +1,32 @@
package xyz.driver.pdsuicommon.acl
+import xyz.driver.core.auth.Role
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.logging._
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
/**
* @see https://driverinc.atlassian.net/wiki/display/RA/User+permissions#UserPermissions-AccessControlList
*/
object ACL extends PhiLogging {
- import xyz.driver.pdsuicommon.domain.User.Role
- import Role._
-
type AclCheck = Role => Boolean
val Forbid: AclCheck = _ => false
val Allow: AclCheck = _ => true
+ val RepRoles: Set[Role] = Set[Role](RecordAdmin, RecordCleaner, RecordOrganizer, DocumentExtractor)
+
+ val TcRoles: Set[Role] = Set[Role](TrialSummarizer, CriteriaCurator, TrialAdmin)
+
+ val TreatmentMatchingRoles: Set[Role] = Set[Role](RoutesCurator, EligibilityVerifier, TreatmentMatchingAdmin)
+
+ val PepRoles: Set[Role] = Set[Role](ResearchOncologist)
+
+ val All: Set[Role] = RepRoles ++ TcRoles ++ TreatmentMatchingRoles ++ PepRoles + AdministratorRole
+
// Common
object UserHistory
@@ -28,9 +38,9 @@ object ACL extends PhiLogging {
object Queue
extends BaseACL(
label = "queue",
- create = Set(SystemUser),
- read = Set(SystemUser),
- update = Set(SystemUser)
+ create = Set(AdministratorRole),
+ read = Set(AdministratorRole),
+ update = Set(AdministratorRole)
)
// REP
@@ -38,7 +48,7 @@ object ACL extends PhiLogging {
object MedicalRecord
extends BaseACL(
label = "medical record",
- read = RepRoles + RoutesCurator + TreatmentMatchingAdmin + ResearchOncologist + SystemUser,
+ read = RepRoles + RoutesCurator + TreatmentMatchingAdmin + ResearchOncologist + AdministratorRole,
update = RepRoles - DocumentExtractor
)
@@ -116,7 +126,7 @@ object ACL extends PhiLogging {
object Trial
extends BaseACL(
label = "trial",
- read = TcRoles + RoutesCurator + TreatmentMatchingAdmin + ResearchOncologist + SystemUser,
+ read = TcRoles + RoutesCurator + TreatmentMatchingAdmin + ResearchOncologist + AdministratorRole,
update = TcRoles
)
@@ -187,7 +197,7 @@ object ACL extends PhiLogging {
object Patient
extends BaseACL(
label = "patient",
- read = TreatmentMatchingRoles + ResearchOncologist + SystemUser,
+ read = TreatmentMatchingRoles + ResearchOncologist + AdministratorRole,
update = TreatmentMatchingRoles
)
@@ -248,20 +258,20 @@ object ACL extends PhiLogging {
update: AclCheck = Forbid,
delete: AclCheck = Forbid) {
- def isCreateAllow()(implicit requestContext: AuthenticatedRequestContext): Boolean = {
- check("create", create)(requestContext.executor.roles)
+ def isCreateAllow()(implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Boolean = {
+ check("create", create)(requestContext.authenticatedUser.roles)
}
- def isReadAllow()(implicit requestContext: AuthenticatedRequestContext): Boolean = {
- check("read", read)(requestContext.executor.roles)
+ def isReadAllow()(implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Boolean = {
+ check("read", read)(requestContext.authenticatedUser.roles)
}
- def isUpdateAllow()(implicit requestContext: AuthenticatedRequestContext): Boolean = {
- check("update", update)(requestContext.executor.roles)
+ def isUpdateAllow()(implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Boolean = {
+ check("update", update)(requestContext.authenticatedUser.roles)
}
- def isDeleteAllow()(implicit requestContext: AuthenticatedRequestContext): Boolean = {
- check("delete", delete)(requestContext.executor.roles)
+ def isDeleteAllow()(implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Boolean = {
+ check("delete", delete)(requestContext.authenticatedUser.roles)
}
private def check(action: String, isAllowed: AclCheck)(executorRoles: Set[Role]): Boolean = {
diff --git a/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala
deleted file mode 100644
index c677ef8..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala
+++ /dev/null
@@ -1,11 +0,0 @@
-package xyz.driver.pdsuicommon.auth
-
-class AnonymousRequestContext(val requestId: RequestId) {
-
- override def equals(that: Any): Boolean = {
- that.getClass == classOf[AnonymousRequestContext] &&
- that.asInstanceOf[AnonymousRequestContext].requestId == requestId
- }
-
- override def hashCode(): Int = requestId.hashCode()
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala
deleted file mode 100644
index 5c07a9a..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala
+++ /dev/null
@@ -1,36 +0,0 @@
-package xyz.driver.pdsuicommon.auth
-
-import xyz.driver.entities.users.AuthUserInfo
-import xyz.driver.pdsuicommon.logging._
-import xyz.driver.pdsuicommon.domain.User
-
-class AuthenticatedRequestContext(val driverUser: AuthUserInfo,
- override val requestId: RequestId,
- val authToken: String)
- extends AnonymousRequestContext(requestId) {
-
- val executor: User = new User(driverUser)
-
- override def equals(that: Any): Boolean = {
- that.getClass == this.getClass && {
- val another = that.asInstanceOf[AuthenticatedRequestContext]
- another.executor == executor && another.requestId == requestId
- }
- }
-
- override def hashCode(): Int = {
- val initial = 37
- val first = initial * 17 + executor.hashCode()
- first * 17 + requestId.hashCode()
- }
-}
-
-object AuthenticatedRequestContext {
-
- def apply(driverUser: AuthUserInfo, authToken: String = "") =
- new AuthenticatedRequestContext(driverUser, RequestId(), authToken)
-
- implicit def toPhiString(x: AuthenticatedRequestContext): PhiString = {
- phi"AuthenticatedRequestContext(executor=${x.executor}, requestId=${x.requestId})"
- }
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala
deleted file mode 100644
index 9982bb0..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-package xyz.driver.pdsuicommon.auth
-
-import xyz.driver.pdsuicommon.logging._
-import xyz.driver.pdsuicommon.auth.RequestId._
-import xyz.driver.pdsuicommon.utils.RandomUtils
-
-final case class RequestId(value: String = RandomUtils.randomString(IdLength))
-
-object RequestId {
-
- private val IdLength = 20
-
- implicit def toPhiString(x: RequestId): PhiString = phi"RequestId(${Unsafe(x.value)})"
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/domain/Email.scala b/src/main/scala/xyz/driver/pdsuicommon/domain/Email.scala
deleted file mode 100644
index 092ad40..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/domain/Email.scala
+++ /dev/null
@@ -1,3 +0,0 @@
-package xyz.driver.pdsuicommon.domain
-
-final case class Email(value: String)
diff --git a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala b/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala
deleted file mode 100644
index f75f391..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala
+++ /dev/null
@@ -1,163 +0,0 @@
-package xyz.driver.pdsuicommon.domain
-
-import java.math.BigInteger
-import java.security.SecureRandom
-import java.time.{Instant, LocalDateTime, ZoneId}
-
-import xyz.driver.pdsuicommon.logging._
-import xyz.driver.pdsuicommon.domain.User.Role
-import xyz.driver.pdsuicommon.utils.Utils
-
-final case class User(id: StringId[User],
- email: Email,
- name: String,
- roles: Set[Role],
- latestActivity: Option[LocalDateTime],
- deleted: Option[LocalDateTime]) {
-
- def this(driverUser: xyz.driver.entities.users.AuthUserInfo) {
- this(
- id = StringId[xyz.driver.pdsuicommon.domain.User](driverUser.id.value),
- email = Email(driverUser.email.toString),
- name = driverUser.name.toString,
- roles = driverUser.roles.flatMap(User.mapRoles),
- latestActivity =
- driverUser.lastLoginTime.map(t => Instant.ofEpochMilli(t.millis).atZone(ZoneId.of("Z")).toLocalDateTime),
- deleted = Option.empty[LocalDateTime]
- )
- }
-}
-
-object User {
-
- sealed trait Role extends Product with Serializable {
-
- /**
- * Bit representation of this role
- */
- def bit: Int
-
- def is(that: Role): Boolean = this == that
-
- def oneOf(roles: Role*): Boolean = roles.contains(this)
-
- def oneOf(roles: Set[Role]): Boolean = roles.contains(this)
- }
-
- object Role extends PhiLogging {
- case object RecordAdmin extends Role { val bit = 1 << 0 }
- case object RecordCleaner extends Role { val bit = 1 << 1 }
- case object RecordOrganizer extends Role { val bit = 1 << 2 }
- case object DocumentExtractor extends Role { val bit = 1 << 3 }
- case object TrialSummarizer extends Role { val bit = 1 << 4 }
- case object CriteriaCurator extends Role { val bit = 1 << 5 }
- case object TrialAdmin extends Role { val bit = 1 << 6 }
- case object EligibilityVerifier extends Role { val bit = 1 << 7 }
- case object TreatmentMatchingAdmin extends Role { val bit = 1 << 8 }
- case object RoutesCurator extends Role { val bit = 1 << 9 }
- case object SystemUser extends Role { val bit = 1 << 10 }
- case object ResearchOncologist extends Role { val bit = 1 << 11 }
-
- val RepRoles = Set[Role](RecordAdmin, RecordCleaner, RecordOrganizer, DocumentExtractor)
-
- val TcRoles = Set[Role](TrialSummarizer, CriteriaCurator, TrialAdmin)
-
- val TreatmentMatchingRoles = Set[Role](RoutesCurator, EligibilityVerifier, TreatmentMatchingAdmin)
-
- val PepRoles = Set[Role](ResearchOncologist)
-
- val All = RepRoles ++ TcRoles ++ TreatmentMatchingRoles ++ PepRoles + SystemUser
-
- def apply(bitMask: Int): Role = {
- def extractRole(role: Role): Set[Role] =
- if ((bitMask & role.bit) != 0) Set(role) else Set.empty[Role]
-
- val roles = All.flatMap(extractRole)
- roles.size match {
- case 1 => roles.head
- case _ =>
- logger.error(phi"Can't convert a bit mask ${Unsafe(bitMask)} to any role")
- throw new IllegalArgumentException()
- }
- }
-
- implicit def toPhiString(x: Role): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass))
- }
-
- implicit def toPhiString(x: User): PhiString = {
- import x._
- phi"User(id=$id, roles=${Unsafe(roles.map(_.toString).mkString(", "))})"
- }
-
- // SecureRandom is thread-safe, see the implementation
- private val random = new SecureRandom()
-
- def createPassword: String = new BigInteger(240, random).toString(32)
-
- def mapRoles(coreRole: xyz.driver.core.auth.Role): Set[xyz.driver.pdsuicommon.domain.User.Role] = {
- coreRole match {
- case xyz.driver.entities.auth.AdministratorRole =>
- Set(
- xyz.driver.pdsuicommon.domain.User.Role.SystemUser,
- xyz.driver.pdsuicommon.domain.User.Role.RecordAdmin,
- xyz.driver.pdsuicommon.domain.User.Role.TrialAdmin,
- xyz.driver.pdsuicommon.domain.User.Role.TreatmentMatchingAdmin
- )
- case xyz.driver.entities.auth.RecordAdmin =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.RecordAdmin)
- case xyz.driver.entities.auth.RecordCleaner =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.RecordCleaner)
- case xyz.driver.entities.auth.RecordOrganizer =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.RecordOrganizer)
- case xyz.driver.entities.auth.DocumentExtractor =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.DocumentExtractor)
- case xyz.driver.entities.auth.TrialSummarizer =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.TrialSummarizer)
- case xyz.driver.entities.auth.CriteriaCurator =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.CriteriaCurator)
- case xyz.driver.entities.auth.TrialAdmin =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.TrialAdmin)
- case xyz.driver.entities.auth.EligibilityVerifier =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.EligibilityVerifier)
- case xyz.driver.entities.auth.TreatmentMatchingAdmin =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.TreatmentMatchingAdmin)
- case xyz.driver.entities.auth.RoutesCurator =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.RoutesCurator)
- case xyz.driver.entities.auth.ResearchOncologist =>
- Set(xyz.driver.pdsuicommon.domain.User.Role.ResearchOncologist)
- case _ =>
- Set.empty[xyz.driver.pdsuicommon.domain.User.Role]
- }
- }
-
- def mapRolesToDriver(pdsuiRole: xyz.driver.pdsuicommon.domain.User.Role): Set[xyz.driver.core.auth.Role] = {
- pdsuiRole match {
- case xyz.driver.pdsuicommon.domain.User.Role.SystemUser =>
- Set(xyz.driver.entities.auth.AdministratorRole)
- case xyz.driver.pdsuicommon.domain.User.Role.RecordAdmin =>
- Set(xyz.driver.entities.auth.RecordAdmin)
- case xyz.driver.pdsuicommon.domain.User.Role.RecordCleaner =>
- Set(xyz.driver.entities.auth.RecordCleaner)
- case xyz.driver.pdsuicommon.domain.User.Role.RecordOrganizer =>
- Set(xyz.driver.entities.auth.RecordOrganizer)
- case xyz.driver.pdsuicommon.domain.User.Role.DocumentExtractor =>
- Set(xyz.driver.entities.auth.DocumentExtractor)
- case xyz.driver.pdsuicommon.domain.User.Role.TrialSummarizer =>
- Set(xyz.driver.entities.auth.TrialSummarizer)
- case xyz.driver.pdsuicommon.domain.User.Role.CriteriaCurator =>
- Set(xyz.driver.entities.auth.CriteriaCurator)
- case xyz.driver.pdsuicommon.domain.User.Role.TrialAdmin =>
- Set(xyz.driver.entities.auth.TrialAdmin)
- case xyz.driver.pdsuicommon.domain.User.Role.EligibilityVerifier =>
- Set(xyz.driver.entities.auth.EligibilityVerifier)
- case xyz.driver.pdsuicommon.domain.User.Role.TreatmentMatchingAdmin =>
- Set(xyz.driver.entities.auth.TreatmentMatchingAdmin)
- case xyz.driver.pdsuicommon.domain.User.Role.RoutesCurator =>
- Set(xyz.driver.entities.auth.RoutesCurator)
- case xyz.driver.pdsuicommon.domain.User.Role.ResearchOncologist =>
- Set(xyz.driver.entities.auth.ResearchOncologist)
- case _ =>
- Set.empty[xyz.driver.core.auth.Role]
- }
- }
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala b/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala
index ccb84c2..4d6aa0b 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala
@@ -2,9 +2,8 @@ package xyz.driver.pdsuicommon.error
import spray.json._
import ErrorsResponse.ResponseError
-import xyz.driver.pdsuicommon.auth.RequestId
-final case class ErrorsResponse(errors: Seq[ResponseError], requestId: RequestId)
+final case class ErrorsResponse(errors: Seq[ResponseError], requestId: String)
object ErrorsResponse {
import DefaultJsonProtocol._
@@ -28,11 +27,11 @@ object ErrorsResponse {
override def write(obj: ErrorsResponse): JsValue = {
JsObject(
"errors" -> obj.errors.map(_.toJson).toJson,
- "requestId" -> obj.requestId.value.toJson
+ "requestId" -> obj.requestId.toJson
)
}
- override def read(json: JsValue) = json match {
+ override def read(json: JsValue): ErrorsResponse = json match {
case JsObject(fields) =>
val errors = fields
.get("errors")
@@ -41,7 +40,7 @@ object ErrorsResponse {
val requestId = fields
.get("requestId")
- .map(id => RequestId(id.convertTo[String]))
+ .map(id => id.convertTo[String])
.getOrElse(deserializationError(s"ErrorsResponse json object does not contain `requestId` field: $json"))
ErrorsResponse(errors, requestId)
diff --git a/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala b/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
index 4f5cd8a..93eb62f 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
@@ -4,9 +4,6 @@ import akka.http.scaladsl.server._
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.model._
import xyz.driver.core.app.DriverApp
-import xyz.driver.core.rest.ContextHeaders
-import xyz.driver.entities.users.AuthUserInfo
-import xyz.driver.pdsuicommon.auth._
import xyz.driver.pdsuicommon.error._
import xyz.driver.pdsuicommon.error.DomainError._
import xyz.driver.pdsuicommon.error.ErrorsResponse.ResponseError
@@ -14,7 +11,9 @@ import xyz.driver.pdsuicommon.parsers._
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain._
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
-import xyz.driver.core.rest.auth.AuthProvider
+import xyz.driver.core.generators
+import xyz.driver.core.rest.ContextHeaders
+
import scala.util.control._
import scala.util._
@@ -69,7 +68,7 @@ trait Directives {
case other => other
}
- def domainExceptionHandler(req: RequestId): ExceptionHandler = {
+ def domainExceptionHandler(req: String): ExceptionHandler = {
def errorResponse(ex: Throwable) =
ErrorsResponse(Seq(ResponseError(None, ex.getMessage, 1)), req)
ExceptionHandler {
@@ -81,7 +80,7 @@ trait Directives {
}
}
- def domainRejectionHandler(req: RequestId): RejectionHandler = {
+ def domainRejectionHandler(req: String): RejectionHandler = {
def wrapContent(message: String) = {
import ErrorsResponse._
val err: ErrorsResponse = ErrorsResponse(Seq(ResponseError(None, message, 1)), req)
@@ -95,27 +94,15 @@ trait Directives {
}
}
- val tracked: Directive1[RequestId] = optionalHeaderValueByName(ContextHeaders.TrackingIdHeader) flatMap {
- case Some(id) => provide(RequestId(id))
- case None => provide(RequestId())
+ val tracked: Directive1[String] = optionalHeaderValueByName(ContextHeaders.TrackingIdHeader) flatMap {
+ case Some(id) => provide(id)
+ case None => provide(generators.nextUuid().toString)
}
val domainResponse: Directive0 = tracked.flatMap { id =>
handleExceptions(domainExceptionHandler(id)) & handleRejections(domainRejectionHandler(id))
}
- implicit class AuthProviderWrapper(provider: AuthProvider[AuthUserInfo]) {
- val authenticated: Directive1[AuthenticatedRequestContext] = (provider.authorize() & tracked) tflatMap {
- case (core, requestId) =>
- provide(
- new AuthenticatedRequestContext(
- core.authenticatedUser,
- requestId,
- core.contextHeaders(ContextHeaders.AuthenticationTokenHeader)
- ))
- }
- }
-
}
object Directives extends Directives
diff --git a/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala b/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala
index 297b0e1..fbd17eb 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/logging/TimeLogger.scala
@@ -2,12 +2,12 @@ package xyz.driver.pdsuicommon.logging
import java.time.{LocalDateTime, ZoneId}
-import xyz.driver.pdsuicommon.domain.{StringId, User}
+import xyz.driver.core.auth.User
object TimeLogger extends PhiLogging {
- def logTime(userId: StringId[User], label: String, obj: String): Unit = {
+ def logTime(userId: xyz.driver.core.Id[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)} ")
+ logger.info(phi"User id=${Unsafe(userId)} performed an action at ${Unsafe(label)}=$now with a ${Unsafe(obj)} ")
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/CaseId.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/CaseId.scala
deleted file mode 100644
index 751545e..0000000
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/CaseId.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-package xyz.driver.pdsuidomain.entities
-
-import java.util.UUID
-
-final case class CaseId(id: String)
-
-object CaseId {
-
- def apply() = new CaseId(UUID.randomUUID().toString)
-}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
index fa5f4ce..471d345 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Document.scala
@@ -6,6 +6,7 @@ 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.core.auth.User
import xyz.driver.pdsuicommon.compat.Implicits._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
@@ -403,8 +404,9 @@ object Document {
implicit def toPhiString(x: Document): PhiString = {
import x._
- phi"Document(id=$id, status=$status, assignee=$assignee, " +
- phi"previousAssignee=$previousAssignee, lastActiveUserId=$lastActiveUserId, recordId=$recordId)"
+ phi"Document(id=$id, status=$status, assignee=${Unsafe(assignee)}, " +
+ phi"previousAssignee=${Unsafe(previousAssignee)}, " +
+ phi"lastActiveUserId=${Unsafe(lastActiveUserId)}, recordId=$recordId)"
}
val validator: Validator[Document, Document] = { input =>
@@ -443,9 +445,9 @@ object Document {
final case class Document(id: LongId[Document] = LongId(0L),
status: Document.Status,
previousStatus: Option[Document.Status],
- assignee: Option[StringId[User]],
- previousAssignee: Option[StringId[User]],
- lastActiveUserId: Option[StringId[User]],
+ assignee: Option[xyz.driver.core.Id[User]],
+ previousAssignee: Option[xyz.driver.core.Id[User]],
+ lastActiveUserId: Option[xyz.driver.core.Id[User]],
recordId: LongId[MedicalRecord],
physician: Option[String],
typeId: Option[LongId[DocumentType]], // not null
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala
index a82da12..0a8480b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala
@@ -2,6 +2,7 @@ package xyz.driver.pdsuidomain.entities
import java.time.{LocalDateTime, ZoneId}
+import xyz.driver.core.auth.User
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
@@ -11,7 +12,7 @@ object DocumentHistory {
implicit def toPhiString(x: DocumentHistory): PhiString = {
import x._
- phi"DocumentHistory(id=$id, executor=$executor, documentId=$documentId, state=$state, action=$action, " +
+ phi"DocumentHistory(id=$id, executor=${Unsafe(executor)}, documentId=$documentId, state=$state, action=$action, " +
phi"created=$created)"
}
@@ -83,7 +84,7 @@ object DocumentHistory {
}
final case class DocumentHistory(id: LongId[DocumentHistory],
- executor: StringId[User],
+ executor: xyz.driver.core.Id[User],
documentId: LongId[Document],
state: State,
action: Action,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentIssue.scala
index 0ec8b00..279ef38 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentIssue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentIssue.scala
@@ -2,11 +2,12 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.logging._
final case class DocumentIssue(id: LongId[DocumentIssue],
- userId: StringId[User],
+ userId: xyz.driver.core.Id[User],
documentId: LongId[Document],
startPage: Option[Double],
endPage: Option[Double],
@@ -18,6 +19,6 @@ final case class DocumentIssue(id: LongId[DocumentIssue],
object DocumentIssue {
implicit def toPhiString(x: DocumentIssue): PhiString = {
import x._
- phi"DocumentIssue(id=$id, userId=$userId, documentId=$documentId)"
+ phi"DocumentIssue(id=$id, userId=${Unsafe(userId)}, documentId=$documentId)"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
index 591b8bd..d3bc56e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecord.scala
@@ -5,6 +5,9 @@ import java.time.LocalDateTime
import com.fasterxml.jackson.annotation.JsonSubTypes.Type
import com.fasterxml.jackson.annotation.{JsonProperty, JsonSubTypes, JsonTypeInfo}
+import xyz.driver.core.auth.User
+import xyz.driver.entities.assays.PatientCase
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
@@ -109,7 +112,7 @@ object MedicalRecord {
case _ => None
}
- val All = Set[Status](
+ val All: Set[Status] = Set[Status](
Unprocessed,
PreCleaning,
New,
@@ -123,7 +126,7 @@ object MedicalRecord {
Archived
)
- val AllPrevious = Set[Status](New, Cleaned, Reviewed, Organized)
+ val AllPrevious: Set[Status] = Set[Status](New, Cleaned, Reviewed, Organized)
implicit def toPhiString(x: Status): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass))
}
@@ -139,21 +142,21 @@ object MedicalRecord {
implicit def toPhiString(x: MedicalRecord): PhiString = {
import x._
- phi"MedicalRecord(id=$id, status=$status, assignee=$assignee, " +
- phi"previousAssignee=$previousAssignee, lastActiveUserId=$lastActiveUserId)"
+ phi"MedicalRecord(id=$id, status=$status, assignee=${Unsafe(assignee)}, " +
+ phi"previousAssignee=${Unsafe(previousAssignee)}, lastActiveUserId=${Unsafe(lastActiveUserId)})"
}
}
final case class MedicalRecord(id: LongId[MedicalRecord],
status: MedicalRecord.Status,
previousStatus: Option[MedicalRecord.Status],
- assignee: Option[StringId[User]],
- previousAssignee: Option[StringId[User]],
- lastActiveUserId: Option[StringId[User]],
+ assignee: Option[xyz.driver.core.Id[User]],
+ previousAssignee: Option[xyz.driver.core.Id[User]],
+ lastActiveUserId: Option[xyz.driver.core.Id[User]],
patientId: UuidId[Patient],
- requestId: RecordRequestId,
+ requestId: xyz.driver.core.Id[ClinicalRecord],
disease: String,
- caseId: Option[CaseId],
+ caseId: Option[xyz.driver.core.Id[PatientCase]],
physician: Option[String],
meta: Option[TextJson[List[Meta]]],
lastUpdate: LocalDateTime,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordHistory.scala
index d01433c..4259737 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordHistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordHistory.scala
@@ -2,6 +2,7 @@ package xyz.driver.pdsuidomain.entities
import java.time.{LocalDateTime, ZoneId}
+import xyz.driver.core.auth.User
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
@@ -11,7 +12,7 @@ object MedicalRecordHistory {
implicit def toPhiString(x: MedicalRecordHistory): PhiString = {
import x._
- phi"MedicalRecordHistory(id=$id, executor=$executor, recordId=$recordId, state=$state, action=$action, " +
+ phi"MedicalRecordHistory(id=$id, executor=${Unsafe(executor)}, recordId=$recordId, state=$state, action=$action, " +
phi"created=$created)"
}
@@ -86,7 +87,7 @@ object MedicalRecordHistory {
}
final case class MedicalRecordHistory(id: LongId[MedicalRecordHistory],
- executor: StringId[User],
+ executor: xyz.driver.core.Id[User],
recordId: LongId[MedicalRecord],
state: State,
action: Action,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordIssue.scala
index 0d5a498..6cdad49 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordIssue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/MedicalRecordIssue.scala
@@ -2,11 +2,12 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.logging._
final case class MedicalRecordIssue(id: LongId[MedicalRecordIssue],
- userId: StringId[User],
+ userId: xyz.driver.core.Id[User],
recordId: LongId[MedicalRecord],
startPage: Option[Double],
endPage: Option[Double],
@@ -18,6 +19,6 @@ final case class MedicalRecordIssue(id: LongId[MedicalRecordIssue],
object MedicalRecordIssue {
implicit def toPhiString(x: MedicalRecordIssue): PhiString = {
import x._
- phi"MedicalRecordIssue(id=$id, userId=$userId, recordId=$recordId)"
+ phi"MedicalRecordIssue(id=$id, userId=${Unsafe(userId)}, recordId=$recordId)"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala
index 3bdbac8..68fd5cd 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Message.scala
@@ -2,13 +2,14 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
import xyz.driver.pdsuicommon.logging._
final case class Message(id: LongId[Message],
text: String,
lastUpdate: LocalDateTime,
- userId: StringId[User],
+ userId: xyz.driver.core.Id[User],
isDraft: Boolean,
recordId: Option[LongId[MedicalRecord]],
documentId: Option[LongId[Document]],
@@ -29,6 +30,6 @@ object Message {
.orElse(documentId.map(_.toString))
.orElse(patientId.map(_.toString))
- phi"Message(id=$id, userId=$userId, isDraft=$isDraft, entityId=${Unsafe(entityId)}"
+ phi"Message(id=$id, userId=${Unsafe(userId)}, isDraft=$isDraft, entityId=${Unsafe(entityId)}"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala
index 598b11e..c48e0d9 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Patient.scala
@@ -2,6 +2,8 @@ package xyz.driver.pdsuidomain.entities
import java.time.{LocalDate, LocalDateTime}
+import xyz.driver.core.auth.User
+import xyz.driver.entities.clinic.TestOrder
import xyz.driver.entities.common.FullName
import xyz.driver.entities.patient.CancerType
import xyz.driver.pdsuicommon.domain._
@@ -26,29 +28,17 @@ object Patient {
case object Flagged extends Status
case object Done extends Status
- val AllPrevious = Set[Status](
- New,
- Verified,
- Reviewed,
- Curated
- )
+ val AllPrevious: Set[Status] = Set[Status](New, Verified, Reviewed, Curated)
- val All = Set[Status](
- New,
- Verified,
- Reviewed,
- Curated,
- Flagged,
- Done
- )
+ val All: Set[Status] = Set[Status](New, Verified, Reviewed, Curated, Flagged, Done)
implicit def toPhiString(x: Status): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass))
}
implicit def toPhiString(x: Patient): PhiString = {
import x._
- phi"Patient(id=$id, status=$status, previousStatus=$previousStatus, lastActiveUserId=$lastActiveUserId" +
- phi"assignee=$assignee, previousAssignee=$previousAssignee)"
+ phi"Patient(id=$id, status=$status, previousStatus=$previousStatus, lastActiveUserId=${Unsafe(lastActiveUserId)}" +
+ phi"assignee=${Unsafe(assignee)}, previousAssignee=${Unsafe(previousAssignee)})"
}
}
@@ -56,13 +46,13 @@ final case class Patient(id: UuidId[Patient],
status: Patient.Status,
name: FullName[Patient],
dob: LocalDate,
- assignee: Option[StringId[User]],
+ assignee: Option[xyz.driver.core.Id[User]],
previousStatus: Option[Patient.Status],
- previousAssignee: Option[StringId[User]],
- lastActiveUserId: Option[StringId[User]],
+ previousAssignee: Option[xyz.driver.core.Id[User]],
+ lastActiveUserId: Option[xyz.driver.core.Id[User]],
isUpdateRequired: Boolean,
disease: CancerType,
- orderId: PatientOrderId,
+ orderId: xyz.driver.core.Id[TestOrder],
lastUpdate: LocalDateTime) {
import Patient.Status._
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientHistory.scala
index 39817c4..bea2c3b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientHistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientHistory.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.entities
import java.time.{LocalDateTime, ZoneId}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
import xyz.driver.pdsuidomain.entities.PatientHistory.{Action, State}
@@ -11,7 +12,8 @@ object PatientHistory {
implicit def toPhiString(x: PatientHistory): PhiString = {
import x._
- phi"PatientHistory(id=$id, executor=$executor, patientId=$patientId, state=$state, action=$action, created=$created)"
+ phi"PatientHistory(id=$id, executor=${Unsafe(executor)}, patientId=$patientId, " +
+ phi"state=$state, action=$action, created=$created)"
}
sealed trait State
@@ -85,7 +87,7 @@ object PatientHistory {
}
final case class PatientHistory(id: LongId[PatientHistory],
- executor: StringId[User],
+ executor: xyz.driver.core.Id[User],
patientId: UuidId[Patient],
state: State,
action: Action,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientIssue.scala
index f616754..b60c2ea 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientIssue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientIssue.scala
@@ -2,11 +2,12 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
+import xyz.driver.core.auth.User
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
final case class PatientIssue(id: LongId[PatientIssue],
- userId: StringId[User],
+ userId: xyz.driver.core.Id[User],
patientId: UuidId[Patient],
lastUpdate: LocalDateTime,
isDraft: Boolean,
@@ -16,6 +17,6 @@ final case class PatientIssue(id: LongId[PatientIssue],
object PatientIssue {
implicit def toPhiString(x: PatientIssue): PhiString = {
import x._
- phi"PatientIssue(id=$id, userId=$userId, patientId=$patientId)"
+ phi"PatientIssue(id=$id, userId=${Unsafe(userId)}, patientId=$patientId)"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientOrderId.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/PatientOrderId.scala
deleted file mode 100644
index 50a97ce..0000000
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/PatientOrderId.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-package xyz.driver.pdsuidomain.entities
-
-import java.util.UUID
-
-final case class PatientOrderId(id: UUID) {
- override def toString: String = id.toString
-}
-
-object PatientOrderId {
-
- def apply() = new PatientOrderId(UUID.randomUUID())
-
- def apply(x: String) = new PatientOrderId(UUID.fromString(x))
-}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientDocument.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientDocument.scala
index b66483c..45cdc4e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientDocument.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/RawPatientDocument.scala
@@ -2,12 +2,14 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDate
+import xyz.driver.core.Id
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.logging._
final case class RawPatientDocument(disease: String,
patientId: UuidId[Patient],
- requestId: RecordRequestId,
+ requestId: Id[ClinicalRecord],
recordId: LongId[MedicalRecord],
recordStatus: MedicalRecord.Status,
documentId: LongId[Document],
@@ -20,7 +22,7 @@ object RawPatientDocument {
implicit def toPhiString(x: RawPatientDocument): PhiString = {
import x._
- phi"RawPatientDocument(disease=${Unsafe(disease)}, patientId=$patientId, requestId=$requestId, " +
+ phi"RawPatientDocument(disease=${Unsafe(disease)}, patientId=$patientId, requestId=${Unsafe(requestId)}, " +
phi"recordId=$recordId, recordStatus=$recordStatus, documentId=$documentId, " +
phi"documentType=${Unsafe(documentType)}, providerType=${Unsafe(documentProviderType)}, " +
phi"startDate=$documentStartDate, documentStatus=$documentStatus)"
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/RecordRequestId.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/RecordRequestId.scala
deleted file mode 100644
index 5df87c2..0000000
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/RecordRequestId.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-package xyz.driver.pdsuidomain.entities
-
-import java.util.UUID
-import xyz.driver.pdsuicommon.logging._
-
-final case class RecordRequestId(id: UUID) {
- override def toString: String = id.toString
-}
-
-object RecordRequestId {
-
- def apply() = new RecordRequestId(UUID.randomUUID())
-
- implicit def toPhiString(x: RecordRequestId): PhiString = phi"${x.id}"
-}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
index e734779..cb75803 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
import xyz.driver.pdsuidomain.entities.Trial.Status
@@ -86,7 +87,7 @@ object Trial {
implicit def toPhiString(x: Trial): PhiString = {
import x._
phi"Trial(id=$id, externalId=$externalId, status=$status, previousStatus=$previousStatus, " +
- phi"lastActiveUserId=$lastActiveUserId, assignee=$assignee, previousAssignee=$previousAssignee, "
+ phi"lastActiveUserId=${Unsafe(lastActiveUserId)}, assignee=${Unsafe(assignee)}, previousAssignee=${Unsafe(previousAssignee)})"
}
final case class Locations(locations: List[String])
@@ -95,10 +96,10 @@ object Trial {
final case class Trial(id: StringId[Trial],
externalId: UuidId[Trial],
status: Status,
- assignee: Option[StringId[User]],
+ assignee: Option[xyz.driver.core.Id[User]],
previousStatus: Option[Status],
- previousAssignee: Option[StringId[User]],
- lastActiveUserId: Option[StringId[User]],
+ previousAssignee: Option[xyz.driver.core.Id[User]],
+ lastActiveUserId: Option[xyz.driver.core.Id[User]],
lastUpdate: LocalDateTime,
phase: String,
hypothesisId: Option[UuidId[Hypothesis]],
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala
index c73aefe..c66048b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialHistory.scala
@@ -6,12 +6,13 @@ import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
import TrialHistory._
+import xyz.driver.core.auth.User
object TrialHistory {
implicit def toPhiString(x: TrialHistory): PhiString = {
import x._
- phi"TrialHistory(id=$id, executor=$executor, trialId=$trialId, state=$state, action=$action, created=$created)"
+ phi"TrialHistory(id=$id, executor=${Unsafe(executor)}, trialId=$trialId, state=$state, action=$action, created=$created)"
}
sealed trait State
@@ -85,7 +86,7 @@ object TrialHistory {
}
final case class TrialHistory(id: LongId[TrialHistory],
- executor: StringId[User],
+ executor: xyz.driver.core.Id[User],
trialId: StringId[Trial],
state: State,
action: Action,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala
index 2514f4d..f69e681 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/TrialIssue.scala
@@ -2,11 +2,12 @@ package xyz.driver.pdsuidomain.entities
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuicommon.logging._
final case class TrialIssue(id: LongId[TrialIssue],
- userId: StringId[User],
+ userId: xyz.driver.core.Id[User],
trialId: StringId[Trial],
lastUpdate: LocalDateTime,
isDraft: Boolean,
@@ -18,6 +19,6 @@ final case class TrialIssue(id: LongId[TrialIssue],
object TrialIssue {
implicit def toPhiString(x: TrialIssue): PhiString = {
import x._
- phi"TrialIssue(id=$id, userId=$userId, trialId=$trialId)"
+ phi"TrialIssue(id=$id, userId=${Unsafe(userId)}, trialId=$trialId)"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala
index 9be26b9..6299ed4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/UserHistory.scala
@@ -2,12 +2,13 @@ package xyz.driver.pdsuidomain.entities
import java.time.{LocalDateTime, ZoneId}
+import xyz.driver.core.auth.User
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuicommon.utils.Utils
final case class UserHistory(id: LongId[UserHistory],
- executor: StringId[User],
+ executor: xyz.driver.core.Id[User],
recordId: Option[LongId[MedicalRecord]] = None,
documentId: Option[LongId[Document]] = None,
trialId: Option[StringId[Trial]] = None,
@@ -18,7 +19,7 @@ final case class UserHistory(id: LongId[UserHistory],
object UserHistory {
- def forDocument(executor: StringId[User],
+ def forDocument(executor: xyz.driver.core.Id[User],
documentId: LongId[Document],
state: UserHistory.State,
action: UserHistory.Action): UserHistory = UserHistory(
@@ -29,7 +30,7 @@ object UserHistory {
action = action
)
- def forRecord(executor: StringId[User],
+ def forRecord(executor: xyz.driver.core.Id[User],
recordId: LongId[MedicalRecord],
state: UserHistory.State,
action: UserHistory.Action): UserHistory = UserHistory(
@@ -40,7 +41,7 @@ object UserHistory {
action = action
)
- def forPatient(executor: StringId[User],
+ def forPatient(executor: xyz.driver.core.Id[User],
patientId: UuidId[Patient],
state: UserHistory.State,
action: UserHistory.Action): UserHistory = UserHistory(
@@ -138,7 +139,7 @@ object UserHistory {
implicit def toPhiString(x: UserHistory): PhiString = {
import x._
- phi"UserHistory(id=$id, executor=$executor, recordId=$recordId, " +
+ phi"UserHistory(id=$id, executor=${Unsafe(executor)}, recordId=$recordId, " +
phi"documentId=$documentId, trialId=$trialId, patientId=$patientId, " +
phi"state=$state, action=$action, created=$created)"
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala
index 467170b..1b3a6d6 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/entities/export/patient/ExportPatientLabelEvidenceDocument.scala
@@ -2,12 +2,13 @@ package xyz.driver.pdsuidomain.entities.export.patient
import java.time.LocalDate
-import xyz.driver.pdsuicommon.domain._
+import xyz.driver.entities.clinic.ClinicalRecord
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.logging._
import xyz.driver.pdsuidomain.entities._
final case class ExportPatientLabelEvidenceDocument(documentId: LongId[Document],
- requestId: RecordRequestId,
+ requestId: xyz.driver.core.Id[ClinicalRecord],
documentType: DocumentType,
providerType: ProviderType,
date: LocalDate)
@@ -16,7 +17,7 @@ object ExportPatientLabelEvidenceDocument extends PhiLogging {
implicit def toPhiString(x: ExportPatientLabelEvidenceDocument): PhiString = {
import x._
- phi"ExportPatientLabelEvidenceDocument(documentId=$documentId, requestId=$requestId, " +
+ phi"ExportPatientLabelEvidenceDocument(documentId=$documentId, requestId=${Unsafe(requestId)}, " +
phi"documentType=${Unsafe(documentType)}, providerType=${Unsafe(providerType)}, date=$date)"
}
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/export.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/export.scala
index 33da392..12eff61 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/export.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/export.scala
@@ -1,13 +1,10 @@
package xyz.driver.pdsuidomain.fakes.entities
+import xyz.driver.core.generators
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.entities.labels.Label
import xyz.driver.fakes
-import xyz.driver.pdsuidomain.entities.export.patient.{
- ExportPatientLabel,
- ExportPatientLabelEvidence,
- ExportPatientLabelEvidenceDocument,
- ExportPatientWithLabels
-}
+import xyz.driver.pdsuidomain.entities.export.patient._
import xyz.driver.pdsuidomain.entities.export.trial._
import xyz.driver.pdsuidomain.entities._
@@ -45,7 +42,7 @@ object export {
def nextExportPatientLabelEvidenceDocument(): ExportPatientLabelEvidenceDocument = {
ExportPatientLabelEvidenceDocument(
documentId = nextLongId[Document],
- requestId = recordprocessing.nextRecordRequestId(),
+ requestId = generators.nextId[ClinicalRecord](),
documentType = nextDocumentType(),
providerType = nextProviderType(),
date = nextLocalDate
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala
index 3a018fa..5903dc8 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala
@@ -2,10 +2,13 @@ package xyz.driver.pdsuidomain.fakes.entities
import java.time.LocalDate
+import xyz.driver.core.auth.User
import xyz.driver.core.generators
import xyz.driver.core.generators._
+import xyz.driver.entities.assays.PatientCase
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.entities.labels.{Label, LabelCategory, LabelValue}
-import xyz.driver.pdsuicommon.domain.{LongId, TextJson, User}
+import xyz.driver.pdsuicommon.domain.{LongId, TextJson}
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.ExtractedData.Meta
import xyz.driver.pdsuidomain.entities._
@@ -101,19 +104,17 @@ object recordprocessing {
def nextMedicalRecordMeta(): MedicalRecord.Meta = generators.oneOf(medicalRecordMeta)()
- def nextRecordRequestId(): RecordRequestId = RecordRequestId(generators.nextUuid())
-
def nextMedicalRecord(): MedicalRecord = MedicalRecord(
id = nextLongId[MedicalRecord],
status = nextMedicalRecordStatus(),
previousStatus = nextOption(generators.oneOf[MedicalRecord.Status](MedicalRecord.Status.AllPrevious)),
- assignee = nextOption(nextStringId),
- previousAssignee = nextOption(nextStringId),
- lastActiveUserId = nextOption(nextStringId),
- patientId = nextUuidId,
- requestId = nextRecordRequestId(),
+ assignee = nextOption(generators.nextId[User]),
+ previousAssignee = nextOption(generators.nextId[User]),
+ lastActiveUserId = nextOption(generators.nextId[User]),
+ patientId = nextUuidId[Patient],
+ requestId = generators.nextId[ClinicalRecord](),
disease = generators.nextString(),
- caseId = nextOption(CaseId(generators.nextString())),
+ caseId = nextOption(generators.nextId[PatientCase]()),
physician = nextOption(generators.nextString()),
meta = nextOption(nextMedicalRecordMetaJson()),
lastUpdate = nextLocalDateTime,
@@ -122,7 +123,7 @@ object recordprocessing {
def nextMedicalRecordHistory(): MedicalRecordHistory = MedicalRecordHistory(
id = nextLongId[MedicalRecordHistory],
- executor = nextStringId[User],
+ executor = generators.nextId[User],
recordId = nextLongId[MedicalRecord],
state = nextMedicalRecordHistoryState(),
action = nextMedicalRecordHistoryAction(),
@@ -134,7 +135,7 @@ object recordprocessing {
MedicalRecordIssue(
id = nextLongId[MedicalRecordIssue],
- userId = nextStringId[User],
+ userId = generators.nextId[User],
recordId = nextLongId[MedicalRecord],
startPage = startPage,
endPage = endPage,
@@ -170,9 +171,9 @@ object recordprocessing {
id = nextLongId[Document],
status = nextDocumentStatus(),
previousStatus = nextOption(generators.oneOf[Document.Status](Document.Status.AllPrevious)),
- assignee = nextOption(nextStringId[User]),
- previousAssignee = nextOption(nextStringId[User]),
- lastActiveUserId = nextOption(nextStringId[User]),
+ assignee = nextOption(generators.nextId[User]),
+ previousAssignee = nextOption(generators.nextId[User]),
+ lastActiveUserId = nextOption(generators.nextId[User]),
recordId = nextLongId[MedicalRecord],
physician = nextOption(nextString()),
typeId = nextOption(nextLongId[DocumentType]),
@@ -192,7 +193,7 @@ object recordprocessing {
val (startPage, endPage) = nextStartAndEndPagesOption
DocumentIssue(
id = nextLongId[DocumentIssue],
- userId = nextStringId[User],
+ userId = generators.nextId[User],
documentId = nextLongId[Document],
startPage = startPage,
endPage = endPage,
@@ -205,7 +206,7 @@ object recordprocessing {
def nextDocumentHistory(): DocumentHistory = DocumentHistory(
id = nextLongId[DocumentHistory],
- executor = nextStringId[User],
+ executor = generators.nextId[User],
documentId = nextLongId[Document],
state = nextDocumentHistoryState(),
action = nextDocumentHistoryAction(),
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala
index f350f0f..441c1db 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala
@@ -3,13 +3,14 @@ package xyz.driver.pdsuidomain.fakes.entities
import eu.timepit.refined.numeric.NonNegative
import xyz.driver.entities.labels.Label
import xyz.driver.fakes
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities._
import xyz.driver.pdsuidomain.services.PatientCriterionService.{DraftPatientCriterion, RichPatientCriterion}
import xyz.driver.pdsuidomain.services.PatientEligibleTrialService.RichPatientEligibleTrial
import xyz.driver.pdsuidomain.services.PatientLabelService.RichPatientLabel
-import eu.timepit.refined.{refineV, refineMV}
+import eu.timepit.refined.{refineMV, refineV}
+import xyz.driver.core.auth.User
object treatmentmatching {
import common._
@@ -35,8 +36,6 @@ object treatmentmatching {
}
}
- def nextPatientOrderId: PatientOrderId = PatientOrderId(generators.nextUuid())
-
def nextPatientAction: PatientHistory.Action =
generators.oneOf[PatientHistory.Action](PatientHistory.Action.All)
@@ -48,13 +47,13 @@ object treatmentmatching {
status = nextPatientStatus,
name = nextFullName[Patient],
dob = nextLocalDate,
- assignee = generators.nextOption(nextStringId[User]),
+ assignee = generators.nextOption(generators.nextId[User]),
previousStatus = generators.nextOption(generators.oneOf[Patient.Status](Patient.Status.AllPrevious)),
- previousAssignee = generators.nextOption(nextStringId[User]),
- lastActiveUserId = generators.nextOption(nextStringId[User]),
+ previousAssignee = generators.nextOption(generators.nextId[User]),
+ lastActiveUserId = generators.nextOption(generators.nextId[User]),
isUpdateRequired = generators.nextBoolean(),
disease = nextCancerType,
- orderId = nextPatientOrderId,
+ orderId = generators.nextId(),
lastUpdate = nextLocalDateTime
)
@@ -172,7 +171,7 @@ object treatmentmatching {
def nextPatientIssue(): PatientIssue = PatientIssue(
id = nextLongId[PatientIssue],
- userId = nextStringId[User],
+ userId = generators.nextId[User],
patientId = nextUuidId[Patient],
lastUpdate = nextLocalDateTime,
isDraft = generators.nextBoolean(),
@@ -182,7 +181,7 @@ object treatmentmatching {
def nextPatientHistory(): PatientHistory = PatientHistory(
id = nextLongId[PatientHistory],
- executor = nextStringId[User],
+ executor = generators.nextId[User],
patientId = nextUuidId[Patient],
state = nextPatientState,
action = nextPatientAction,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/trialcuration.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/trialcuration.scala
index eeec577..94bc27a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/trialcuration.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/trialcuration.scala
@@ -1,8 +1,9 @@
package xyz.driver.pdsuidomain.fakes.entities
+import xyz.driver.core.auth.User
import xyz.driver.core.generators._
import xyz.driver.entities.labels.{Label, LabelCategory}
-import xyz.driver.pdsuicommon.domain.{LongId, User}
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities._
import xyz.driver.pdsuidomain.services.CriterionService.RichCriterion
@@ -19,10 +20,10 @@ object trialcuration {
id = nextStringId[Trial],
externalId = nextUuidId[Trial],
status = nextTrialStatus,
- assignee = Option(nextStringId[User]),
+ assignee = Option(generators.nextId[User]),
previousStatus = Option(nextPreviousTrialStatus),
- previousAssignee = Option(nextStringId[User]),
- lastActiveUserId = Option(nextStringId[User]),
+ previousAssignee = Option(generators.nextId[User]),
+ lastActiveUserId = Option(generators.nextId[User]),
lastUpdate = nextLocalDateTime,
phase = generators.nextString(),
hypothesisId = Option(nextUuidId[Hypothesis]),
@@ -106,7 +107,7 @@ object trialcuration {
def nextTrialIssue(): TrialIssue = TrialIssue(
id = nextLongId[TrialIssue],
- userId = nextStringId[User],
+ userId = generators.nextId[User],
trialId = nextStringId[Trial],
lastUpdate = nextLocalDateTime,
isDraft = generators.nextBoolean(),
@@ -118,7 +119,7 @@ object trialcuration {
def nextTrialHistory(): TrialHistory = TrialHistory(
id = nextLongId[TrialHistory],
- executor = nextStringId[User],
+ executor = generators.nextId[User],
trialId = nextStringId[Trial],
state = nextTrialState,
action = nextTrialAction,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
index aaca391..3cce5de 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/document.scala
@@ -3,7 +3,7 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.{LocalDate, LocalDateTime}
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.json._
import xyz.driver.pdsuicommon.domain.{LongId, TextJson}
import xyz.driver.pdsuidomain.entities._
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala
index a0eb3f5..ea79b92 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documenthistory.scala
@@ -1,7 +1,7 @@
package xyz.driver.pdsuidomain.formats.json
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.json._
import xyz.driver.pdsuidomain.entities._
object documenthistory {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala
index 082fa83..dbf544e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/documentissue.scala
@@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
import spray.json._
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities._
object documentissue {
@@ -36,7 +38,9 @@ object documentissue {
}
- def jsValueToDocumentIssue(json: JsValue, documentId: LongId[Document], userId: StringId[User]): DocumentIssue =
+ def jsValueToDocumentIssue(json: JsValue,
+ documentId: LongId[Document],
+ userId: xyz.driver.core.Id[User]): DocumentIssue =
json match {
case JsObject(fields) =>
val text = fields
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala
index d70ce6f..8fb7d03 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/export.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.formats.json
import spray.json._
+import xyz.driver.core.json.idFormat
import xyz.driver.entities.labels.Label
import xyz.driver.formats.json.labels._
import xyz.driver.pdsuicommon.domain.LongId
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala
index 0830723..774a1ff 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patient.scala
@@ -3,12 +3,14 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.{LocalDate, LocalDateTime}
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.entities.clinic.TestOrder
import xyz.driver.entities.common.FullName
import xyz.driver.entities.patient.CancerType
import xyz.driver.formats.json.common._
import xyz.driver.formats.json.patient._
-import xyz.driver.pdsuicommon.domain.{StringId, User, UuidId}
+import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuidomain.entities._
object patient {
@@ -25,14 +27,6 @@ object patient {
"Flagged" -> Status.Flagged
)
- implicit val patientOrderIdFormat: RootJsonFormat[PatientOrderId] = new RootJsonFormat[PatientOrderId] {
- override def write(orderId: PatientOrderId): JsString = JsString(orderId.toString)
- override def read(json: JsValue): PatientOrderId = json match {
- case JsString(value) => PatientOrderId(value)
- case _ => deserializationError(s"Expected string as PatientOrderId, but got $json")
- }
- }
-
implicit val patientFormat: RootJsonFormat[Patient] = new RootJsonFormat[Patient] {
override def write(patient: Patient): JsValue =
JsObject(
@@ -74,7 +68,7 @@ object patient {
val assignee = fields
.get("assignee")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val previousStatus = fields
.get("previousStatus")
@@ -82,11 +76,11 @@ object patient {
val previousAssignee = fields
.get("previousAssignee")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val lastActiveUser = fields
.get("lastActiveUser")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val disease = fields
.get("disease")
@@ -95,7 +89,7 @@ object patient {
val orderId = fields
.get("orderId")
- .map(_.convertTo[PatientOrderId])
+ .map(_.convertTo[xyz.driver.core.Id[TestOrder]])
.getOrElse(deserializationError(s"Patient create json object does not contain `orderId` field: $json"))
val lastUpdate = fields
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala
index bd20b27..c9cdc63 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patienthistory.scala
@@ -1,7 +1,7 @@
package xyz.driver.pdsuidomain.formats.json
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.json._
import xyz.driver.pdsuidomain.entities._
object patienthistory {
@@ -9,14 +9,14 @@ object patienthistory {
import PatientHistory._
import common._
- implicit val patientStateFormat = new EnumJsonFormat[State](
+ implicit val patientStateFormat: RootJsonFormat[State] = new EnumJsonFormat[State](
"Verify" -> State.Verify,
"Curate" -> State.Curate,
"Review" -> State.Review,
"Flag" -> State.Flag
)
- implicit val patientActionFormat = new EnumJsonFormat[Action](
+ implicit val patientActionFormat: RootJsonFormat[Action] = new EnumJsonFormat[Action](
"Start" -> Action.Start,
"Submit" -> Action.Submit,
"Unassign" -> Action.Unassign,
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala
index 9345581..0ee4c6c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/patientissue.scala
@@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
import spray.json._
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId}
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuidomain.entities._
object patientissue {
@@ -22,7 +24,9 @@ object patientissue {
}
}
- def jsValueToPatientIssue(json: JsValue, patientId: UuidId[Patient], userId: StringId[User]): PatientIssue = {
+ def jsValueToPatientIssue(json: JsValue,
+ patientId: UuidId[Patient],
+ userId: xyz.driver.core.Id[User]): PatientIssue = {
json.asJsObject.getFields("text") match {
case Seq(text) =>
PatientIssue(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala
index b6ed103..083796b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/record.scala
@@ -1,10 +1,11 @@
package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import java.util.UUID
import spray.json._
-import xyz.driver.core.json.{EnumJsonFormat, GadtJsonFormat}
+import xyz.driver.core.Id
+import xyz.driver.core.json._
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.pdsuicommon.domain.{LongId, TextJson, UuidId}
import xyz.driver.pdsuidomain.entities.MedicalRecord.Meta._
import xyz.driver.pdsuidomain.entities._
@@ -14,7 +15,7 @@ object record {
import MedicalRecord._
import common._
- implicit val recordStatusFormat = new EnumJsonFormat[Status](
+ implicit val recordStatusFormat: EnumJsonFormat[Status] = new EnumJsonFormat[Status](
"PreCleaning" -> Status.PreCleaning,
"Unprocessed" -> Status.Unprocessed,
"PreOrganized" -> Status.PreOrganized,
@@ -29,14 +30,6 @@ object record {
"Archived" -> Status.Archived
)
- implicit val requestIdFormat = new RootJsonFormat[RecordRequestId] {
- override def write(requestId: RecordRequestId): JsString = JsString(requestId.toString)
- override def read(json: JsValue): RecordRequestId = json match {
- case JsString(value) => RecordRequestId(UUID.fromString(value))
- case _ => deserializationError(s"Expected string as RecordRequestId, but got $json")
- }
- }
-
implicit val providerTypeFormat: RootJsonFormat[ProviderType] = new RootJsonFormat[ProviderType] {
override def read(json: JsValue): ProviderType = json match {
case JsObject(fields) =>
@@ -56,14 +49,6 @@ object record {
JsObject("id" -> obj.id.toJson, "name" -> obj.name.toJson)
}
- implicit val caseIdFormat = new RootJsonFormat[CaseId] {
- override def write(caseId: CaseId): JsString = JsString(caseId.toString)
- override def read(json: JsValue): CaseId = json match {
- case JsString(value) => CaseId(value)
- case _ => deserializationError(s"Expected string as CaseId, but got $json")
- }
- }
-
implicit val duplicateMetaFormat: RootJsonFormat[Duplicate] = new RootJsonFormat[Duplicate] {
override def write(obj: Duplicate) =
JsObject(
@@ -149,7 +134,7 @@ object record {
}
}
- implicit val recordMetaFormat = new RootJsonFormat[TextJson[List[Meta]]] {
+ implicit val recordMetaFormat: RootJsonFormat[TextJson[List[Meta]]] = new RootJsonFormat[TextJson[List[Meta]]] {
override def write(obj: TextJson[List[Meta]]): JsArray = JsArray(obj.content.map(_.toJson).toVector)
override def read(json: JsValue): TextJson[List[Meta]] = json match {
case JsArray(values) => TextJson[List[Meta]](values.map(_.convertTo[Meta]).toList)
@@ -191,7 +176,7 @@ object record {
val requestId = fields
.get("requestId")
- .map(_.convertTo[RecordRequestId])
+ .map(_.convertTo[Id[ClinicalRecord]])
.getOrElse(deserializationError(s"MedicalRecord json object does not contain `requestId` field: $json"))
MedicalRecord(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala
index 00071e1..8341f97 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordhistory.scala
@@ -1,7 +1,7 @@
package xyz.driver.pdsuidomain.formats.json
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.json._
import xyz.driver.pdsuidomain.entities._
object recordhistory {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala
index 29b12f6..976a852 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/recordissue.scala
@@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
import spray.json._
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities._
object recordissue {
@@ -39,7 +41,7 @@ object recordissue {
def jsValueToRecordIssue(json: JsValue,
recordId: LongId[MedicalRecord],
- userId: StringId[User]): MedicalRecordIssue = json match {
+ userId: xyz.driver.core.Id[User]): MedicalRecordIssue = json match {
case JsObject(fields) =>
val text = fields
.get("text")
@@ -63,6 +65,6 @@ object recordissue {
case _ => deserializationError(s"Expected Json Object as MedicalRecordIssue, but got $json")
}
- implicit val recordIssueFormat = jsonFormat9(MedicalRecordIssue.apply)
+ implicit val recordIssueFormat: RootJsonFormat[MedicalRecordIssue] = jsonFormat9(MedicalRecordIssue.apply)
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala
index dc9c5e0..ac02070 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trial.scala
@@ -3,8 +3,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.{LocalDateTime, ZoneId, ZonedDateTime}
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User, UuidId}
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
import xyz.driver.pdsuidomain.entities._
object trial {
@@ -64,16 +65,16 @@ object trial {
.getOrElse(deserializationError(s"Trial create json object does not contain `status` field: $json"))
val assignee = fields
.get("assignee")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val previousStatus = fields
.get("previousStatus")
.flatMap(_.convertTo[Option[Trial.Status]])
val previousAssignee = fields
.get("previousAssignee")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val lastActiveUser = fields
.get("lastActiveUser")
- .flatMap(_.convertTo[Option[StringId[User]]])
+ .flatMap(_.convertTo[Option[xyz.driver.core.Id[User]]])
val lastUpdate = fields
.get("lastUpdate")
.map(_.convertTo[LocalDateTime])
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
index 6185d5a..cc01dd1 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialhistory.scala
@@ -1,7 +1,7 @@
package xyz.driver.pdsuidomain.formats.json
import spray.json._
-import xyz.driver.core.json.EnumJsonFormat
+import xyz.driver.core.json._
import xyz.driver.pdsuidomain.entities._
object trialhistory {
diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala
index b2a3023..bb431fe 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/trialissue.scala
@@ -3,7 +3,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
import spray.json._
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, User}
+import xyz.driver.core.auth.User
+import xyz.driver.core.json._
+import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuidomain.entities._
object trialissue {
@@ -24,7 +26,7 @@ object trialissue {
}
}
- def jsValueToTrialIssue(json: JsValue, trialId: StringId[Trial], userId: StringId[User]): TrialIssue = {
+ def jsValueToTrialIssue(json: JsValue, trialId: StringId[Trial], userId: xyz.driver.core.Id[User]): TrialIssue = {
json.asJsObject.getFields("text", "evidence", "meta") match {
case Seq(text, evidence, meta) =>
TrialIssue(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/ArmService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/ArmService.scala
index 1f907c8..d4ff62b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/ArmService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/ArmService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -31,7 +32,8 @@ object ArmService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
}
@@ -112,13 +114,17 @@ trait ArmService {
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def getById(armId: LongId[Arm])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(armId: LongId[Arm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
- def create(draftArm: Arm)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draftArm: Arm)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
- def update(origArm: Arm, draftArm: Arm)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def update(origArm: Arm, draftArm: Arm)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[Arm])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[Arm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/CriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/CriterionService.scala
index 7dbf0d9..9c6341c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/CriterionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/CriterionService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -54,7 +55,8 @@ object CriterionService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
implicit def toPhiString(reply: GetByIdReply): PhiString = reply match {
@@ -106,17 +108,19 @@ trait CriterionService {
import CriterionService._
def create(draftRichCriterion: RichCriterion)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
- def getById(id: LongId[Criterion])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: LongId[Criterion])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def update(origRichCriterion: RichCriterion, draftRichCriterion: RichCriterion)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[Criterion])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[Criterion])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentHistoryService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentHistoryService.scala
index 2d9679d..d209b39 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentHistoryService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentHistoryService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -39,6 +40,6 @@ trait DocumentHistoryService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentIssueService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentIssueService.scala
index 4315352..f7fc7b2 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentIssueService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentIssueService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -73,21 +74,22 @@ trait DocumentIssueService {
import DocumentIssueService._
- def create(draft: DocumentIssue)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draft: DocumentIssue)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def getById(documentId: LongId[Document], id: LongId[DocumentIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getListByDocumentId(documentId: LongId[Document],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListByDocumentIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListByDocumentIdReply]
def update(orig: DocumentIssue, draft: DocumentIssue)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def delete(documentId: LongId[Document], id: LongId[DocumentIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentService.scala
index 9338a59..a16ac9c 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -32,7 +33,8 @@ object DocumentService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
implicit def toPhiString(reply: GetByIdReply): PhiString = reply match {
@@ -106,31 +108,40 @@ trait DocumentService {
import DocumentService._
- def getById(id: LongId[Document])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: LongId[Document])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def create(draftDocument: Document)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draftDocument: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def update(orig: Document, draft: Document)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[Document])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[Document])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
- def start(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def start(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def submit(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def submit(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def restart(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def restart(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def flag(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def flag(orig: Document)(implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def resolve(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def resolve(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def unassign(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def unassign(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def archive(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def archive(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentTypeService.scala
index 0f1bf76..ccaed22 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/DocumentTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/DocumentTypeService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.Sorting
import xyz.driver.pdsuicommon.error.DomainError
import xyz.driver.pdsuidomain.entities.DocumentType
@@ -21,5 +22,5 @@ object DocumentTypeService {
trait DocumentTypeService {
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/EligibilityArmService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/EligibilityArmService.scala
index 1e0f65e..300091e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/EligibilityArmService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/EligibilityArmService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -35,7 +36,8 @@ object EligibilityArmService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
}
@@ -118,22 +120,23 @@ trait EligibilityArmService {
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def getByEligibilityId(armId: LongId[EligibilityArm])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getBySlotId(armId: LongId[SlotArm],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def create(slotArmId: LongId[SlotArm], draftEligibilityArm: EligibilityArmWithDiseases)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def update(origEligibilityArm: EligibilityArmWithDiseases, draftEligibilityArm: EligibilityArmWithDiseases)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[EligibilityArm])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[EligibilityArm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/ExtractedDataService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/ExtractedDataService.scala
index 9bcd921..fbfb1d2 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/ExtractedDataService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/ExtractedDataService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.error.DomainError
@@ -103,21 +104,23 @@ trait ExtractedDataService {
import ExtractedDataService._
- def getById(id: LongId[ExtractedData])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: LongId[ExtractedData])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getPatientLabels(id: UuidId[Patient])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetPatientLabelsReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetPatientLabelsReply]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def create(draftRichExtractedData: RichExtractedData)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def update(origRichExtractedData: RichExtractedData, draftRichExtractedData: RichExtractedData)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[ExtractedData])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[ExtractedData])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/HypothesisService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/HypothesisService.scala
index 572edb6..929dd58 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/HypothesisService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/HypothesisService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.Sorting
import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuicommon.error.DomainError
@@ -58,9 +59,11 @@ trait HypothesisService {
import HypothesisService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def create(draftHypothesis: Hypothesis)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draftHypothesis: Hypothesis)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
- def delete(id: UuidId[Hypothesis])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: UuidId[Hypothesis])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/InterventionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/InterventionService.scala
index 1e7c7f1..85e557a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/InterventionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/InterventionService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -38,7 +39,8 @@ object InterventionService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
implicit def toPhiString(reply: GetByIdReply): PhiString = reply match {
@@ -101,15 +103,17 @@ trait InterventionService {
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def getById(id: LongId[Intervention])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: LongId[Intervention])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def update(origIntervention: InterventionWithArms, draftIntervention: InterventionWithArms)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def create(draftIntervention: InterventionWithArms)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
- def delete(id: LongId[Intervention])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[Intervention])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/InterventionTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/InterventionTypeService.scala
index 298a92d..58f336d 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/InterventionTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/InterventionTypeService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.Sorting
import xyz.driver.pdsuicommon.error.DomainError
import xyz.driver.pdsuidomain.entities.InterventionType
@@ -23,5 +24,5 @@ trait InterventionTypeService {
import InterventionTypeService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordHistoryService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordHistoryService.scala
index f8fe3be..42285b1 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordHistoryService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordHistoryService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -39,6 +40,6 @@ trait MedicalRecordHistoryService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordIssueService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordIssueService.scala
index 723bdfa..dc10a93 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordIssueService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordIssueService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -73,21 +74,22 @@ trait MedicalRecordIssueService {
import MedicalRecordIssueService._
- def create(draft: MedicalRecordIssue)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draft: MedicalRecordIssue)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def getById(recordId: LongId[MedicalRecord], id: LongId[MedicalRecordIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getListByRecordId(recordId: LongId[MedicalRecord],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListByRecordIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListByRecordIdReply]
def update(orig: MedicalRecordIssue, draft: MedicalRecordIssue)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def delete(recordId: LongId[MedicalRecord], id: LongId[MedicalRecordIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
index ebcb0f9..0d2c58b 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/MedicalRecordService.scala
@@ -4,7 +4,9 @@ import akka.NotUsed
import akka.stream.scaladsl.Source
import akka.util.ByteString
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.{AnonymousRequestContext, AuthenticatedRequestContext}
+
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error._
@@ -85,32 +87,40 @@ trait MedicalRecordService {
import MedicalRecordService._
def getById(recordId: LongId[MedicalRecord])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getPdfSource(recordId: LongId[MedicalRecord])(
- implicit requestContext: AuthenticatedRequestContext): Future[Source[ByteString, NotUsed]]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[Source[ByteString, NotUsed]]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def create(draft: MedicalRecord)(implicit requestContext: AnonymousRequestContext): Future[CreateReply]
+ def create(draft: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def update(origRecord: MedicalRecord, draftRecord: MedicalRecord)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def start(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def start(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def submit(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def submit(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def restart(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def restart(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def flag(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def flag(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def resolve(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def resolve(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def unassign(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def unassign(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def archive(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def archive(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala
index bec0c65..21ec73a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientCriterionService.scala
@@ -2,8 +2,9 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
import xyz.driver.entities.labels.{Label, LabelValue}
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.error.DomainError
@@ -118,14 +119,14 @@ trait PatientCriterionService {
origFilter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def getById(patientId: UuidId[Patient], id: LongId[PatientCriterion])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def updateList(patientId: UuidId[Patient], draftEntities: List[DraftPatientCriterion])(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def update(origEntity: PatientCriterion, draftEntity: PatientCriterion, patientId: UuidId[Patient])(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientEligibleTrialService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientEligibleTrialService.scala
index d9013c6..f07f6fa 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientEligibleTrialService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientEligibleTrialService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.error.DomainError
@@ -118,15 +119,15 @@ trait PatientEligibleTrialService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def getById(patientId: UuidId[Patient], id: LongId[PatientTrialArmGroup])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getCriterionListByGroupId(patientId: UuidId[Patient], id: LongId[PatientTrialArmGroup])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetCriterionListOfGroupReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetCriterionListOfGroupReply]
def update(origEligibleTrialWithTrial: RichPatientEligibleTrial,
draftPatientTrialArmGroup: PatientTrialArmGroupView)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientHistoryService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientHistoryService.scala
index 855eddc..9ad6a56 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientHistoryService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientHistoryService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuicommon.error.DomainError
@@ -39,6 +40,6 @@ trait PatientHistoryService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientHypothesisService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientHypothesisService.scala
index 1e655d5..2dcfcb5 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientHypothesisService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientHypothesisService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuicommon.error.DomainError
@@ -89,11 +90,11 @@ trait PatientHypothesisService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def getById(patientId: UuidId[Patient], hypothesisId: UuidId[Hypothesis])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def update(origPatientHypothesis: PatientHypothesis, draftPatientHypothesis: PatientHypothesis)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientIssueService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientIssueService.scala
index b53301d..cf47c94 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientIssueService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientIssueService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.error.DomainError
@@ -73,21 +74,22 @@ trait PatientIssueService {
import PatientIssueService._
- def create(draft: PatientIssue)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draft: PatientIssue)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def getById(patientId: UuidId[Patient], id: LongId[PatientIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getListByPatientId(patientId: UuidId[Patient],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListByPatientIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListByPatientIdReply]
def update(orig: PatientIssue, draft: PatientIssue)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def delete(patientId: UuidId[Patient], id: LongId[PatientIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelEvidenceService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelEvidenceService.scala
index 6871f3e..1ddf401 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelEvidenceService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelEvidenceService.scala
@@ -1,7 +1,8 @@
package xyz.driver.pdsuidomain.services
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
import xyz.driver.entities.labels.Label
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuicommon.error.DomainError
@@ -54,12 +55,12 @@ trait PatientLabelEvidenceService {
import PatientLabelEvidenceService._
def getById(patientId: UuidId[Patient], labelId: LongId[Label], id: LongId[PatientLabelEvidence])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getAll(patientId: UuidId[Patient],
labelId: LongId[Label],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelService.scala
index cede890..048374a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientLabelService.scala
@@ -1,7 +1,8 @@
package xyz.driver.pdsuidomain.services
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
import xyz.driver.entities.labels.Label
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.error.DomainError
@@ -111,16 +112,16 @@ trait PatientLabelService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def getDefiningCriteriaList(patientId: UuidId[Patient],
hypothesisId: UuidId[Hypothesis],
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetDefiningCriteriaListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetDefiningCriteriaListReply]
def getByLabelIdOfPatient(patientId: UuidId[Patient], labelId: LongId[Label])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByLabelIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByLabelIdReply]
def update(origPatientLabel: PatientLabel, draftPatientLabel: PatientLabel)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/PatientService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/PatientService.scala
index ce70934..e23fc7a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/PatientService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/PatientService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuicommon.error.DomainError
@@ -41,7 +42,8 @@ object PatientService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
implicit def toPhiString(reply: GetByIdReply): PhiString = reply match {
@@ -74,22 +76,29 @@ trait PatientService {
import PatientService._
- def getById(id: UuidId[Patient])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: UuidId[Patient])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def unassign(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def unassign(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def start(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def start(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def submit(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def submit(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def restart(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def restart(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def flag(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def flag(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def resolve(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def resolve(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/ProviderTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/ProviderTypeService.scala
index cad17a4..ab936d6 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/ProviderTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/ProviderTypeService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.Sorting
import xyz.driver.pdsuicommon.error.DomainError
import xyz.driver.pdsuidomain.entities.ProviderType
@@ -22,5 +23,5 @@ trait ProviderTypeService {
import ProviderTypeService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/QueueUploadService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/QueueUploadService.scala
index 340733d..6cb2051 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/QueueUploadService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/QueueUploadService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.concurrent.BridgeUploadQueue
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.error.DomainError
@@ -62,15 +63,18 @@ trait QueueUploadService {
import QueueUploadService._
- def create(kind: String, tag: String)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(kind: String, tag: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
- def getById(kind: String, tag: String)(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(kind: String, tag: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def reset(kind: String, tag: String)(implicit requestContext: AuthenticatedRequestContext): Future[ResetReply]
+ def reset(kind: String, tag: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[ResetReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/SlotArmService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/SlotArmService.scala
index af7084b..44e50da 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/SlotArmService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/SlotArmService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuicommon.error.DomainError
@@ -31,7 +32,8 @@ object SlotArmService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
}
@@ -112,14 +114,17 @@ trait SlotArmService {
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
- def getById(armId: LongId[SlotArm])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(armId: LongId[SlotArm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
- def create(draftSlotArm: SlotArm)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draftSlotArm: SlotArm)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def update(origSlotArm: SlotArm, draftSlotArm: SlotArm)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def delete(id: LongId[SlotArm])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ def delete(id: LongId[SlotArm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/StudyDesignService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/StudyDesignService.scala
index e98c1ec..8af159d 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/StudyDesignService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/StudyDesignService.scala
@@ -1,6 +1,7 @@
package xyz.driver.pdsuidomain.services
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.Sorting
import xyz.driver.pdsuicommon.error.DomainError
import xyz.driver.pdsuidomain.entities.StudyDesign
@@ -23,5 +24,5 @@ trait StudyDesignService {
import StudyDesignService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala
index bcf1c53..96ff96d 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/TrialHistoryService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.StringId
import xyz.driver.pdsuicommon.error.DomainError
@@ -39,6 +40,6 @@ trait TrialHistoryService {
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/TrialIssueService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/TrialIssueService.scala
index 726feda..433c1bc 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/TrialIssueService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/TrialIssueService.scala
@@ -2,7 +2,8 @@ package xyz.driver.pdsuidomain.services
import java.time.LocalDateTime
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain.{LongId, StringId}
import xyz.driver.pdsuicommon.error.DomainError
@@ -73,21 +74,22 @@ trait TrialIssueService {
import TrialIssueService._
- def create(draft: TrialIssue)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply]
+ def create(draft: TrialIssue)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply]
def getById(trialId: StringId[Trial], id: LongId[TrialIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getListByTrialId(trialId: StringId[Trial],
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListByTrialIdReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListByTrialIdReply]
def update(orig: TrialIssue, draft: TrialIssue)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
def delete(trialId: StringId[Trial], id: LongId[TrialIssue])(
- implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/TrialService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/TrialService.scala
index 92233e4..2ff77f2 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/TrialService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/TrialService.scala
@@ -5,8 +5,9 @@ import java.time.LocalDateTime
import akka.NotUsed
import akka.stream.scaladsl.Source
import akka.util.ByteString
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
import xyz.driver.entities.patient.CancerType
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.StringId
import xyz.driver.pdsuicommon.error.DomainError
@@ -46,7 +47,8 @@ object TrialService {
case object AuthorizationError
extends GetByIdReply with DomainError.AuthorizationError with DefaultAccessDeniedError
- final case class CommonError(userMessage: String)(implicit requestContext: AuthenticatedRequestContext)
+ final case class CommonError(userMessage: String)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo])
extends GetByIdReply with DomainError
implicit def toPhiString(reply: GetByIdReply): PhiString = reply match {
@@ -107,37 +109,45 @@ trait TrialService {
import TrialService._
- def getById(id: StringId[Trial])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply]
+ def getById(id: StringId[Trial])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply]
def getTrialWithLabels(trialId: StringId[Trial], cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialWithLabelsReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialWithLabelsReply]
def getTrialsWithLabels(cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialsWithLabelsReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialsWithLabelsReply]
def getPdfSource(trialId: StringId[Trial])(
- implicit requestContext: AuthenticatedRequestContext): Future[Source[ByteString, NotUsed]]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[Source[ByteString, NotUsed]]
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply]
def update(origTrial: Trial, draftTrial: Trial)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def start(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def start(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def submit(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def submit(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def restart(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def restart(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def flag(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def flag(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def resolve(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def resolve(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def archive(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def archive(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
- def unassign(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply]
+ def unassign(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply]
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/fake/FakeTrialService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/fake/FakeTrialService.scala
index e23449c..7eae626 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/fake/FakeTrialService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/fake/FakeTrialService.scala
@@ -6,9 +6,10 @@ import akka.NotUsed
import akka.stream.scaladsl.Source
import akka.util.ByteString
import xyz.driver.core.generators
+import xyz.driver.core.rest.AuthorizedServiceRequestContext
import xyz.driver.entities.labels.Label
import xyz.driver.entities.patient.CancerType
-import xyz.driver.pdsuicommon.auth.AuthenticatedRequestContext
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
import xyz.driver.pdsuidomain.entities.export.trial.{ExportTrialArm, ExportTrialLabelCriterion, ExportTrialWithLabels}
@@ -42,27 +43,29 @@ class FakeTrialService extends TrialService {
originalTitle = ""
)
- def getById(id: StringId[Trial])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] =
+ def getById(id: StringId[Trial])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] =
Future.successful(
GetByIdReply.Entity(trial)
)
def getPdfSource(trialId: StringId[Trial])(
- implicit requestContext: AuthenticatedRequestContext): Future[Source[ByteString, NotUsed]] =
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]
+ ): Future[Source[ByteString, NotUsed]] =
Future.failed(new NotImplementedError("fake pdf download is not implemented"))
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] =
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] =
Future.successful(GetListReply.EntityList(Seq(trial), 1, None))
override def getTrialWithLabels(trialId: StringId[Trial], cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialWithLabelsReply] =
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialWithLabelsReply] =
Future.successful(GetTrialWithLabelsReply.Entity(nextExportTrialWithLabels()))
override def getTrialsWithLabels(cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialsWithLabelsReply] =
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialsWithLabelsReply] =
Future.successful(GetTrialsWithLabelsReply.EntityList(generators.seqOf(nextExportTrialWithLabels())))
private def nextExportTrialWithLabels() =
@@ -91,28 +94,35 @@ class FakeTrialService extends TrialService {
)
def update(origTrial: Trial, draftTrial: Trial)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
Future.successful(UpdateReply.Updated(draftTrial))
- def start(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def start(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def submit(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def submit(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def restart(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def restart(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def flag(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def flag(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def resolve(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def resolve(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def archive(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def archive(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
- def unassign(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def unassign(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
update(origTrial, origTrial)
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestArmService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestArmService.scala
index e5eb18f..87e2bab 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestArmService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestArmService.scala
@@ -5,7 +5,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -24,7 +24,7 @@ class RestArmService(transport: ServiceTransport, baseUri: Uri)(implicit protect
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(
HttpMethods.GET,
endpointUri(baseUri, "/v1/arm", filterQuery(filter) ++ sortingQuery(sorting) ++ paginationQuery(pagination)))
@@ -36,7 +36,8 @@ class RestArmService(transport: ServiceTransport, baseUri: Uri)(implicit protect
}
}
- def getById(armId: LongId[Arm])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(armId: LongId[Arm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/arm/$armId"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -46,7 +47,8 @@ class RestArmService(transport: ServiceTransport, baseUri: Uri)(implicit protect
}
}
- def create(draftArm: Arm)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ def create(draftArm: Arm)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftArm).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/arm")).withEntity(entity)
@@ -57,7 +59,8 @@ class RestArmService(transport: ServiceTransport, baseUri: Uri)(implicit protect
}
}
- def update(origArm: Arm, draftArm: Arm)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ def update(origArm: Arm, draftArm: Arm)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origArm.id
val request = HttpRequest(HttpMethods.PATCH, endpointUri(baseUri, s"/v1/arm/$id"))
for {
@@ -68,7 +71,8 @@ class RestArmService(transport: ServiceTransport, baseUri: Uri)(implicit protect
}
}
- def delete(id: LongId[Arm])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: LongId[Arm])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/arm/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestCriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestCriterionService.scala
index 6e2da61..33be27e 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestCriterionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestCriterionService.scala
@@ -5,7 +5,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -23,7 +23,7 @@ class RestCriterionService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.CriterionService._
def create(draftRichCriterion: RichCriterion)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftRichCriterion).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/criterion")).withEntity(entity)
@@ -34,7 +34,8 @@ class RestCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def getById(id: LongId[Criterion])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: LongId[Criterion])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/criterion/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -47,7 +48,7 @@ class RestCriterionService(transport: ServiceTransport, baseUri: Uri)(
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
s"/v1/criterion",
@@ -61,7 +62,7 @@ class RestCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
def update(origRichCriterion: RichCriterion, draftRichCriterion: RichCriterion)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origRichCriterion.criterion.id
for {
entity <- Marshal(draftRichCriterion).to[RequestEntity]
@@ -73,7 +74,8 @@ class RestCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def delete(id: LongId[Criterion])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: LongId[Criterion])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/criterion/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala
index dcd7721..bfe5e8f 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala
@@ -5,7 +5,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -21,7 +21,8 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
import xyz.driver.pdsuidomain.formats.json.document._
import xyz.driver.pdsuidomain.services.DocumentService._
- def getById(id: LongId[Document])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: LongId[Document])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/document/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -34,7 +35,7 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
@@ -48,7 +49,8 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
}
}
- def create(draftDocument: Document)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ def create(draftDocument: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftDocument).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/document")).withEntity(entity)
@@ -60,7 +62,7 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
}
def update(orig: Document, draft: Document)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
for {
entity <- Marshal(draft).to[RequestEntity]
request = HttpRequest(HttpMethods.PATCH, endpointUri(baseUri, s"/v1/document/${orig.id}")).withEntity(entity)
@@ -71,7 +73,8 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
}
}
- def delete(id: LongId[Document])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: LongId[Document])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/document/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -82,7 +85,7 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
}
private def editAction(orig: Document, action: String)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = orig.id.toString
val request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, s"/v1/document/$id/$action"))
for {
@@ -93,19 +96,26 @@ class RestDocumentService(transport: ServiceTransport, baseUri: Uri)(implicit pr
}
}
- def start(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def start(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "start")
- def submit(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def submit(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "submit")
- def restart(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def restart(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "restart")
- def flag(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def flag(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "flag")
- def resolve(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def resolve(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "resolve")
- def unassign(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def unassign(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "unassign")
- def archive(orig: Document)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def archive(orig: Document)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "archive")
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentTypeService.scala
index 6ddc022..6157cc3 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentTypeService.scala
@@ -4,7 +4,7 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.DocumentType
@@ -21,7 +21,7 @@ class RestDocumentTypeService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.DocumentTypeService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, "/v1/document-type", sortingQuery(sorting)))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestExtractedDataService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestExtractedDataService.scala
index 8c07968..24c5436 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestExtractedDataService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestExtractedDataService.scala
@@ -5,13 +5,13 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.entities._
import xyz.driver.pdsuidomain.entities.export.patient.ExportPatientWithLabels
import xyz.driver.pdsuidomain.services.ExtractedDataService
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.formats.json.export._
@@ -24,7 +24,8 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.formats.json.extracteddata._
import xyz.driver.pdsuidomain.services.ExtractedDataService._
- def getById(id: LongId[ExtractedData])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: LongId[ExtractedData])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/extracted-data/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -37,7 +38,7 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
"/v1/extracted-data",
@@ -51,7 +52,7 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
}
def create(draftRichExtractedData: RichExtractedData)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftRichExtractedData).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/extracted-data")).withEntity(entity)
@@ -62,7 +63,7 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
}
}
def update(origRichExtractedData: RichExtractedData, draftRichExtractedData: RichExtractedData)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origRichExtractedData.extractedData.id
for {
entity <- Marshal(draftRichExtractedData).to[RequestEntity]
@@ -74,7 +75,8 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def delete(id: LongId[ExtractedData])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: LongId[ExtractedData])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/export-data/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -85,7 +87,7 @@ class RestExtractedDataService(transport: ServiceTransport, baseUri: Uri)(
}
def getPatientLabels(id: UuidId[Patient])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetPatientLabelsReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetPatientLabelsReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/export/patient/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala
index 8e75c76..527ae73 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala
@@ -4,8 +4,6 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model.{HttpResponse, ResponseEntity, StatusCodes, Uri}
import akka.http.scaladsl.unmarshalling.{Unmarshal, Unmarshaller}
import akka.stream.Materializer
-import xyz.driver.core.rest.{ContextHeaders, ServiceRequestContext}
-import xyz.driver.pdsuicommon.auth.{AnonymousRequestContext, AuthenticatedRequestContext}
import xyz.driver.pdsuicommon.db.{
Pagination,
SearchFilterBinaryOperation,
@@ -108,22 +106,9 @@ trait RestHelper {
case StatusCodes.Forbidden => new AuthorizationException(message)
case StatusCodes.NotFound => new NotFoundException(message)
case other =>
- new DomainException(s"Unhandled domain error for HTTP status ${other.value}. ${message}")
+ new DomainException(s"Unhandled domain error for HTTP status ${other.value}. $message")
})
}
}
}
-
- implicit def toServiceRequestContext(requestContext: AnonymousRequestContext): ServiceRequestContext = {
- val auth: Map[String, String] = requestContext match {
- case ctx: AuthenticatedRequestContext =>
- Map(
- ContextHeaders.AuthenticationTokenHeader -> ctx.authToken,
- ContextHeaders.TrackingIdHeader -> ctx.requestId.value
- )
- case _ =>
- Map()
- }
- new ServiceRequestContext(contextHeaders = auth, trackingId = requestContext.requestId.value)
- }
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHypothesisService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHypothesisService.scala
index 73abb0e..11adb8f 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHypothesisService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHypothesisService.scala
@@ -6,7 +6,7 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest._
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuidomain.ListResponse
@@ -24,7 +24,7 @@ class RestHypothesisService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.HypothesisService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, "/v1/hypothesis", sortingQuery(sorting)))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -34,7 +34,8 @@ class RestHypothesisService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def create(draftHypothesis: Hypothesis)(implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ def create(draftHypothesis: Hypothesis)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftHypothesis).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/hypothesis")).withEntity(entity)
@@ -45,7 +46,8 @@ class RestHypothesisService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def delete(id: UuidId[Hypothesis])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: UuidId[Hypothesis])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/hypothesis/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionService.scala
index 93036be..c4add4a 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionService.scala
@@ -5,7 +5,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -25,7 +25,7 @@ class RestInterventionService(transport: ServiceTransport, baseUri: Uri)(
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
"/v1/intervention",
@@ -38,7 +38,8 @@ class RestInterventionService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def getById(id: LongId[Intervention])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: LongId[Intervention])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/intervention/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -49,7 +50,7 @@ class RestInterventionService(transport: ServiceTransport, baseUri: Uri)(
}
def update(origIntervention: InterventionWithArms, draftIntervention: InterventionWithArms)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origIntervention.intervention.id
for {
entity <- Marshal(draftIntervention).to[RequestEntity]
@@ -62,7 +63,7 @@ class RestInterventionService(transport: ServiceTransport, baseUri: Uri)(
}
def create(draftIntervention: InterventionWithArms)(
- implicit requestContext: AuthenticatedRequestContext): Future[CreateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftIntervention).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/intervention")).withEntity(entity)
@@ -73,7 +74,8 @@ class RestInterventionService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def delete(id: LongId[Intervention])(implicit requestContext: AuthenticatedRequestContext): Future[DeleteReply] = {
+ def delete(id: LongId[Intervention])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[DeleteReply] = {
val request = HttpRequest(HttpMethods.DELETE, endpointUri(baseUri, s"/v1/intervention/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionTypeService.scala
index 004d6c4..825b936 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestInterventionTypeService.scala
@@ -4,7 +4,7 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest._
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.InterventionType
@@ -21,7 +21,7 @@ class RestInterventionTypeService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.InterventionTypeService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, "/v1/intervention-type", sortingQuery(sorting)))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestMedicalRecordService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestMedicalRecordService.scala
index 0627521..6af6707 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestMedicalRecordService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestMedicalRecordService.scala
@@ -9,7 +9,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -27,7 +27,7 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.MedicalRecordService._
def getById(recordId: LongId[MedicalRecord])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/record/$recordId"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -38,9 +38,10 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
}
def getPdfSource(recordId: LongId[MedicalRecord])(
- implicit requestContext: AuthenticatedRequestContext): Future[Source[ByteString, NotUsed]] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]
+ ): Future[Source[ByteString, NotUsed]] = {
- val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/record/${recordId}/source"))
+ val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/record/$recordId/source"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -53,7 +54,7 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(
HttpMethods.GET,
@@ -66,7 +67,8 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def create(draftRecord: MedicalRecord)(implicit requestContext: AnonymousRequestContext): Future[CreateReply] = {
+ def create(draftRecord: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[CreateReply] = {
for {
entity <- Marshal(draftRecord).to[RequestEntity]
request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, "/v1/record")).withEntity(entity)
@@ -78,7 +80,7 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
}
def update(origRecord: MedicalRecord, draftRecord: MedicalRecord)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origRecord.id.toString
for {
entity <- Marshal(draftRecord).to[RequestEntity]
@@ -91,7 +93,7 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
}
private def editAction(orig: MedicalRecord, action: String)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = orig.id.toString
val request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, s"/v1/record/$id/$action"))
for {
@@ -102,19 +104,26 @@ class RestMedicalRecordService(transport: ServiceTransport, baseUri: Uri)(
}
}
- def start(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def start(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "start")
- def submit(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def submit(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "submit")
- def restart(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def restart(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "restart")
- def flag(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def flag(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "flag")
- def resolve(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def resolve(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "resolve")
- def unassign(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def unassign(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "unassign")
- def archive(orig: MedicalRecord)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def archive(orig: MedicalRecord)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(orig, "archive")
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientCriterionService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientCriterionService.scala
index 82c522f..6629cf5 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientCriterionService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientCriterionService.scala
@@ -4,7 +4,7 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -28,7 +28,7 @@ class RestPatientCriterionService(transport: ServiceTransport, baseUri: Uri)(
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
s"/v1/patient/$patientId/criterion",
@@ -42,7 +42,7 @@ class RestPatientCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
def getById(patientId: UuidId[Patient], id: LongId[PatientCriterion])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/patient/$patientId/criterion/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -53,7 +53,7 @@ class RestPatientCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
def updateList(patientId: UuidId[Patient], draftEntities: List[DraftPatientCriterion])(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
for {
entity <- Marshal(draftEntities).to[RequestEntity]
request = HttpRequest(HttpMethods.PATCH, endpointUri(baseUri, s"/v1/patient/$patientId/criterion"))
@@ -66,7 +66,7 @@ class RestPatientCriterionService(transport: ServiceTransport, baseUri: Uri)(
}
def update(origEntity: PatientCriterion, draftEntity: PatientCriterion, patientId: UuidId[Patient])(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
for {
entity <- Marshal(draftEntity).to[RequestEntity]
request = HttpRequest(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientLabelService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientLabelService.scala
index 9b93179..a6ef5b4 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientLabelService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientLabelService.scala
@@ -5,7 +5,7 @@ import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
import xyz.driver.entities.labels.Label
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -28,7 +28,7 @@ class RestPatientLabelService(transport: ServiceTransport, baseUri: Uri)(
filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri,
s"/v1/patient/$patientId/label",
@@ -44,7 +44,8 @@ class RestPatientLabelService(transport: ServiceTransport, baseUri: Uri)(
def getDefiningCriteriaList(patientId: UuidId[Patient],
hypothesisId: UuidId[Hypothesis],
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetDefiningCriteriaListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]
+ ): Future[GetDefiningCriteriaListReply] = {
val request = HttpRequest(HttpMethods.GET,
endpointUri(baseUri, s"/patient/$patientId/hypothesis", paginationQuery(pagination)))
for {
@@ -56,7 +57,7 @@ class RestPatientLabelService(transport: ServiceTransport, baseUri: Uri)(
}
def getByLabelIdOfPatient(patientId: UuidId[Patient], labelId: LongId[Label])(
- implicit requestContext: AuthenticatedRequestContext): Future[GetByLabelIdReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByLabelIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/patient/$patientId/label/$labelId"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -67,7 +68,7 @@ class RestPatientLabelService(transport: ServiceTransport, baseUri: Uri)(
}
def update(origPatientLabel: PatientLabel, draftPatientLabel: PatientLabel)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
for {
entity <- Marshal(draftPatientLabel).to[RequestEntity]
request = HttpRequest(
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientService.scala
index af3c782..8460872 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestPatientService.scala
@@ -1,11 +1,10 @@
package xyz.driver.pdsuidomain.services.rest
import scala.concurrent.{ExecutionContext, Future}
-
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.ListResponse
@@ -22,7 +21,8 @@ class RestPatientService(transport: ServiceTransport, baseUri: Uri)(implicit pro
import xyz.driver.pdsuidomain.services.PatientService._
- def getById(id: UuidId[Patient])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: UuidId[Patient])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/patient/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -35,7 +35,7 @@ class RestPatientService(transport: ServiceTransport, baseUri: Uri)(implicit pro
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(
HttpMethods.GET,
endpointUri(baseUri, "/v1/patient", filterQuery(filter) ++ sortingQuery(sorting) ++ paginationQuery(pagination)))
@@ -48,7 +48,7 @@ class RestPatientService(transport: ServiceTransport, baseUri: Uri)(implicit pro
}
private def editAction(orig: Patient, action: String)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = orig.id.toString
val request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, s"/v1/patient/$id/$action"))
for {
@@ -59,16 +59,22 @@ class RestPatientService(transport: ServiceTransport, baseUri: Uri)(implicit pro
}
}
- def unassign(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def unassign(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "unassign")
- def start(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def start(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "start")
- def submit(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def submit(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "submit")
- def restart(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def restart(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "restart")
- def flag(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def flag(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "flag")
- def resolve(origPatient: Patient)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def resolve(origPatient: Patient)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
editAction(origPatient, "resolve")
}
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestProviderTypeService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestProviderTypeService.scala
index f038c95..ffde086 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestProviderTypeService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestProviderTypeService.scala
@@ -4,7 +4,7 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.ProviderType
@@ -21,7 +21,7 @@ class RestProviderTypeService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.ProviderTypeService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, "/v1/provider-type", sortingQuery(sorting)))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestStudyDesignService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestStudyDesignService.scala
index d3f0eb7..f8ce502 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestStudyDesignService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestStudyDesignService.scala
@@ -4,7 +4,7 @@ import scala.concurrent.{ExecutionContext, Future}
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest._
-import xyz.driver.pdsuicommon.auth._
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.StudyDesign
@@ -21,7 +21,7 @@ class RestStudyDesignService(transport: ServiceTransport, baseUri: Uri)(
import xyz.driver.pdsuidomain.services.StudyDesignService._
def getAll(sorting: Option[Sorting] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, "/v1/study-design", sortingQuery(sorting)))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
index 04b45fb..e978775 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
@@ -8,7 +8,6 @@ import akka.http.scaladsl.marshalling.Marshal
import akka.http.scaladsl.model._
import akka.stream.Materializer
import xyz.driver.core.rest.{Pagination => _, _}
-import xyz.driver.pdsuicommon.auth._
import xyz.driver.pdsuicommon.db._
import xyz.driver.pdsuicommon.domain._
import xyz.driver.pdsuidomain.entities._
@@ -16,6 +15,7 @@ import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialWithLabels
import xyz.driver.pdsuidomain.services.TrialService
import spray.json.DefaultJsonProtocol._
import xyz.driver.entities.patient.CancerType
+import xyz.driver.entities.users.AuthUserInfo
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.formats.json.export._
@@ -28,7 +28,8 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
import xyz.driver.pdsuidomain.formats.json.trial._
import xyz.driver.pdsuidomain.services.TrialService._
- def getById(id: StringId[Trial])(implicit requestContext: AuthenticatedRequestContext): Future[GetByIdReply] = {
+ def getById(id: StringId[Trial])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetByIdReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/trial/$id"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -39,7 +40,7 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
def getTrialWithLabels(trialId: StringId[Trial], cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialWithLabelsReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialWithLabelsReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/export/trial/$cancerType/$trialId"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -50,7 +51,7 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
def getTrialsWithLabels(cancerType: CancerType)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetTrialsWithLabelsReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetTrialsWithLabelsReply] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/export/trial/$cancerType"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -61,7 +62,8 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
def getPdfSource(trialId: StringId[Trial])(
- implicit requestContext: AuthenticatedRequestContext): Future[Source[ByteString, NotUsed]] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]
+ ): Future[Source[ByteString, NotUsed]] = {
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/trial/$trialId/source"))
for {
response <- transport.sendRequestGetResponse(requestContext)(request)
@@ -74,7 +76,7 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
- implicit requestContext: AuthenticatedRequestContext): Future[GetListReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[GetListReply] = {
val request = HttpRequest(
HttpMethods.GET,
endpointUri(baseUri, "/v1/trial", filterQuery(filter) ++ sortingQuery(sorting) ++ paginationQuery(pagination)))
@@ -87,7 +89,7 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
def update(origTrial: Trial, draftTrial: Trial)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origTrial.id.id
for {
entity <- Marshal(draftTrial).to[RequestEntity]
@@ -100,7 +102,7 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
private def singleAction(origTrial: Trial, action: String)(
- implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] = {
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] = {
val id = origTrial.id.id
val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/trial/$id/$action"))
for {
@@ -111,18 +113,25 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
}
- def start(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def start(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "start")
- def submit(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def submit(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "submit")
- def restart(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def restart(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "restart")
- def flag(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def flag(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "flag")
- def resolve(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def resolve(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "resolve")
- def archive(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def archive(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "archive")
- def unassign(origTrial: Trial)(implicit requestContext: AuthenticatedRequestContext): Future[UpdateReply] =
+ def unassign(origTrial: Trial)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "unassign")
}
diff --git a/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala b/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala
deleted file mode 100644
index 29e7610..0000000
--- a/src/test/scala/xyz/driver/pdsuicommon/BaseSuite.scala
+++ /dev/null
@@ -1,23 +0,0 @@
-package xyz.driver.pdsuicommon
-
-import java.time.{LocalDateTime, ZoneId}
-
-import org.scalatest.FreeSpecLike
-import org.scalatest.concurrent.ScalaFutures
-import org.scalatest.time.{Millis, Span}
-import xyz.driver.pdsuicommon.domain._
-import xyz.driver.pdsuicommon.utils.DiffUtils
-
-trait BaseSuite extends FreeSpecLike with DiffUtils with ScalaFutures {
-
- implicit val defaultPatience = PatienceConfig(timeout = Span(1000, Millis), interval = Span(20, Millis))
-
- def sampleUser(role: User.Role, email: String = "test@example.com", password: String = "123") = User(
- id = StringId("2001"),
- email = Email(email),
- name = "Test",
- roles = Set(role),
- latestActivity = Some(LocalDateTime.now(ZoneId.of("Z"))),
- deleted = None
- )
-}
diff --git a/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
index 915e4e7..63c4aa2 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/DocumentSuite.scala
@@ -3,11 +3,17 @@ package xyz.driver.pdsuidomain
import java.time.{LocalDate, LocalDateTime}
import java.time.temporal.ChronoUnit
-import xyz.driver.pdsuicommon.BaseSuite
+import org.scalatest.FreeSpecLike
+import org.scalatest.concurrent.ScalaFutures
+import org.scalatest.time.{Millis, Span}
import xyz.driver.pdsuicommon.domain.{LongId, TextJson}
+import xyz.driver.pdsuicommon.utils.DiffUtils
import xyz.driver.pdsuidomain.entities.Document
-class DocumentSuite extends BaseSuite {
+class DocumentSuite extends FreeSpecLike with DiffUtils with ScalaFutures {
+
+ implicit val defaultPatience: PatienceConfig =
+ PatienceConfig(timeout = Span(1000, Millis), interval = Span(20, Millis))
"validation" - {
"can't submit invalid data" - {
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentHistoryFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentHistoryFormatSuite.scala
index e4a0733..4dc4d00 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentHistoryFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentHistoryFormatSuite.scala
@@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import spray.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.DocumentHistory
class DocumentHistoryFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class DocumentHistoryFormatSuite extends FlatSpec with Matchers {
val documentHistory = DocumentHistory(
id = LongId(10),
documentId = LongId(1),
- executor = StringId("userId-001"),
+ executor = xyz.driver.core.Id("userId-001"),
state = DocumentHistory.State.Extract,
action = DocumentHistory.Action.Start,
created = LocalDateTime.parse("2017-08-10T18:00:00")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentIssueFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentIssueFormatSuite.scala
index 7f34725..2ddd5e7 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentIssueFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/DocumentIssueFormatSuite.scala
@@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import spray.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.DocumentIssue
class DocumentIssueFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class DocumentIssueFormatSuite extends FlatSpec with Matchers {
val documentIssue = DocumentIssue(
id = LongId(10),
documentId = LongId(1),
- userId = StringId("userId-001"),
+ userId = xyz.driver.core.Id("userId-001"),
lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
isDraft = false,
text = "message text",
@@ -31,7 +31,7 @@ class DocumentIssueFormatSuite extends FlatSpec with Matchers {
val createDocumentIssueJson = """{"text":"message text","startPage":1.0,"endPage":2.0}""".parseJson
val expectedCreatedDocumentIssue =
documentIssue.copy(id = LongId(0), lastUpdate = LocalDateTime.MIN, isDraft = true)
- val parsedCreateDocumentIssue = jsValueToDocumentIssue(createDocumentIssueJson, LongId(1), StringId("userId-001"))
+ val parsedCreateDocumentIssue = jsValueToDocumentIssue(createDocumentIssueJson, LongId(1), xyz.driver.core.Id("userId-001"))
parsedCreateDocumentIssue should be(expectedCreatedDocumentIssue)
val updateDocumentIssueJson =
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ExportFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ExportFormatSuite.scala
index c976243..9c53d3b 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ExportFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ExportFormatSuite.scala
@@ -1,13 +1,14 @@
package xyz.driver.pdsuidomain.formats.json
import java.time.{LocalDate, LocalDateTime}
-import java.util.UUID
import org.scalatest.{FlatSpec, Matchers}
import spray.json._
+import xyz.driver.core.Id
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.entities.labels.LabelValue
import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
-import xyz.driver.pdsuidomain.entities.{DocumentType, ProviderType, RecordRequestId}
+import xyz.driver.pdsuidomain.entities.{DocumentType, ProviderType}
class ExportFormatSuite extends FlatSpec with Matchers {
import xyz.driver.pdsuidomain.formats.json.export._
@@ -16,7 +17,7 @@ class ExportFormatSuite extends FlatSpec with Matchers {
import xyz.driver.pdsuidomain.entities.export.patient._
val document = ExportPatientLabelEvidenceDocument(
documentId = LongId(101),
- requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ requestId = Id[ClinicalRecord]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
documentType = DocumentType.OutpatientPhysicianNote,
providerType = ProviderType.Surgery,
date = LocalDate.parse("2017-08-10")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ListResponseFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ListResponseFormatSuite.scala
index c561412..e43e922 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ListResponseFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ListResponseFormatSuite.scala
@@ -1,10 +1,11 @@
package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import java.util.UUID
import spray.json._
import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.core.Id
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuidomain.ListResponse
import xyz.driver.pdsuidomain.entities.MedicalRecord.Status
@@ -18,7 +19,7 @@ class ListResponseFormatSuite extends FlatSpec with Matchers {
private val lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00")
private val lastUpdateToLocal = "2017-08-10T18:00Z"
- def metaJsonObjectAsString(meta: ListResponse.Meta) = {
+ def metaJsonObjectAsString(meta: ListResponse.Meta): String = {
import meta._
val lastUpdate = meta.lastUpdate
.map(_ => s""","lastUpdate":"$lastUpdateToLocal"""")
@@ -74,7 +75,7 @@ class ListResponseFormatSuite extends FlatSpec with Matchers {
physician = Some("physician"),
meta = None,
disease = "Breast",
- requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ requestId = Id[ClinicalRecord]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
caseId = None,
patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
totalPages = 10
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordFormatSuite.scala
index b4e37a2..86462b2 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordFormatSuite.scala
@@ -1,12 +1,13 @@
package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import java.util.UUID
import spray.json._
import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.core.Id
+import xyz.driver.entities.clinic.ClinicalRecord
import xyz.driver.pdsuicommon.domain.{LongId, TextJson, UuidId}
-import xyz.driver.pdsuidomain.entities.{MedicalRecord, RecordRequestId}
+import xyz.driver.pdsuidomain.entities.MedicalRecord
class MedicalRecordFormatSuite extends FlatSpec with Matchers {
import xyz.driver.pdsuidomain.formats.json.record._
@@ -98,7 +99,7 @@ class MedicalRecordFormatSuite extends FlatSpec with Matchers {
physician = Some("physician"),
meta = None,
disease = "Breast",
- requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ requestId = Id[ClinicalRecord]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
caseId = None,
patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
totalPages = 10
@@ -120,7 +121,7 @@ class MedicalRecordFormatSuite extends FlatSpec with Matchers {
previousAssignee = None,
lastActiveUserId = None,
patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
- requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ requestId = Id[ClinicalRecord]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
disease = "Breast",
caseId = None,
physician = None,
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordHistoryFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordHistoryFormatSuite.scala
index ca4058e..88240cd 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordHistoryFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordHistoryFormatSuite.scala
@@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import spray.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.MedicalRecordHistory
class MedicalRecordHistoryFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class MedicalRecordHistoryFormatSuite extends FlatSpec with Matchers {
val recordHistory = MedicalRecordHistory(
id = LongId(10),
recordId = LongId(1),
- executor = StringId("userId-001"),
+ executor = xyz.driver.core.Id("userId-001"),
state = MedicalRecordHistory.State.Clean,
action = MedicalRecordHistory.Action.Start,
created = LocalDateTime.parse("2017-08-10T18:00:00")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordIssueFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordIssueFormatSuite.scala
index c7c82a4..b93e2bd 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordIssueFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/MedicalRecordIssueFormatSuite.scala
@@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import spray.json._
+import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.MedicalRecordIssue
class MedicalRecordIssueFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class MedicalRecordIssueFormatSuite extends FlatSpec with Matchers {
val recordIssue = MedicalRecordIssue(
id = LongId(10),
recordId = LongId(1),
- userId = StringId("userId-001"),
+ userId = xyz.driver.core.Id("userId-001"),
lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
isDraft = false,
text = "message text",
@@ -30,7 +30,7 @@ class MedicalRecordIssueFormatSuite extends FlatSpec with Matchers {
val createRecordIssueJson = """{"text":"message text","startPage":1.0,"endPage":2.0}""".parseJson
val expectedCreatedRecordIssue = recordIssue.copy(id = LongId(0), lastUpdate = LocalDateTime.MIN, isDraft = true)
- val parsedCreateRecordIssue = jsValueToRecordIssue(createRecordIssueJson, LongId(1), StringId("userId-001"))
+ val parsedCreateRecordIssue = jsValueToRecordIssue(createRecordIssueJson, LongId(1), xyz.driver.core.Id("userId-001"))
parsedCreateRecordIssue should be(expectedCreatedRecordIssue)
val updateRecordIssueJson =
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala
index c296f84..6cddb45 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala
@@ -4,10 +4,12 @@ import java.time.{LocalDate, LocalDateTime}
import spray.json._
import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.core.Id
+import xyz.driver.entities.clinic.TestOrder
import xyz.driver.entities.common.FullName
import xyz.driver.entities.patient.CancerType
import xyz.driver.pdsuicommon.domain.UuidId
-import xyz.driver.pdsuidomain.entities.{Patient, PatientOrderId}
+import xyz.driver.pdsuidomain.entities.Patient
class PatientFormatSuite extends FlatSpec with Matchers {
import xyz.driver.pdsuidomain.formats.json.patient._
@@ -24,7 +26,7 @@ class PatientFormatSuite extends FlatSpec with Matchers {
lastActiveUserId = None,
isUpdateRequired = false,
disease = CancerType.Breast,
- orderId = PatientOrderId("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
+ orderId = Id[TestOrder]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00")
)
val writtenJson = patientFormat.write(orig)
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientHistoryFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientHistoryFormatSuite.scala
index e46cf50..74f6f70 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientHistoryFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientHistoryFormatSuite.scala
@@ -2,9 +2,9 @@ package xyz.driver.pdsuidomain.formats.json
import java.time.LocalDateTime
-import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
+import spray.json._
+import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuidomain.entities.PatientHistory
class PatientHistoryFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class PatientHistoryFormatSuite extends FlatSpec with Matchers {
val patientHistory = PatientHistory(
id = LongId(10),
patientId = UuidId("40892a07-c638-49d2-9795-1edfefbbcc7c"),
- executor = StringId("userId-001"),
+ executor = xyz.driver.core.Id("userId-001"),
state = PatientHistory.State.Verify,
action = PatientHistory.Action.Start,
created = LocalDateTime.parse("2017-08-10T18:00:00")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientIssueFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientIssueFormatSuite.scala
index 0d56918..ee76094 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientIssueFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientIssueFormatSuite.scala
@@ -4,7 +4,7 @@ import java.time.LocalDateTime
import spray.json._
import org.scalatest.{FlatSpec, Matchers}
-import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId}
+import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
import xyz.driver.pdsuidomain.entities.PatientIssue
class PatientIssueFormatSuite extends FlatSpec with Matchers {
@@ -14,7 +14,7 @@ class PatientIssueFormatSuite extends FlatSpec with Matchers {
val patientIssue = PatientIssue(
id = LongId(10),
patientId = UuidId("40892a07-c638-49d2-9795-1edfefbbcc7c"),
- userId = StringId("userId-001"),
+ userId = xyz.driver.core.Id("userId-001"),
lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
isDraft = false,
text = "message text",
@@ -29,7 +29,7 @@ class PatientIssueFormatSuite extends FlatSpec with Matchers {
val expectedCreatedPatientIssue = patientIssue.copy(id = LongId(0), lastUpdate = LocalDateTime.MIN, isDraft = true)
val parsedCreatePatientIssue = jsValueToPatientIssue(createPatientIssueJson,
UuidId("40892a07-c638-49d2-9795-1edfefbbcc7c"),
- StringId("userId-001"))
+ xyz.driver.core.Id("userId-001"))
parsedCreatePatientIssue should be(expectedCreatedPatientIssue)
val updatePatientIssueJson =
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialHistoryFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialHistoryFormatSuite.scala
index aa0b404..c17327b 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialHistoryFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialHistoryFormatSuite.scala
@@ -14,7 +14,7 @@ class TrialHistoryFormatSuite extends FlatSpec with Matchers {
val trialHistory = TrialHistory(
id = LongId(10),
trialId = StringId("NCT000001"),
- executor = StringId("userId-001"),
+ executor = xyz.driver.core.Id("userId-001"),
state = TrialHistory.State.Summarize,
action = TrialHistory.Action.Start,
created = LocalDateTime.parse("2017-08-10T18:00:00")
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialIssueFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialIssueFormatSuite.scala
index 5c6aa8d..a3b5931 100644
--- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialIssueFormatSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/TrialIssueFormatSuite.scala
@@ -14,7 +14,7 @@ class TrialIssueFormatSuite extends FlatSpec with Matchers {
val trialIssue = TrialIssue(
id = LongId(10),
trialId = StringId("NCT000001"),
- userId = StringId("userId-001"),
+ userId = xyz.driver.core.Id("userId-001"),
lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
isDraft = false,
text = "message text",
@@ -30,7 +30,7 @@ class TrialIssueFormatSuite extends FlatSpec with Matchers {
val createTrialIssueJson = """{"text":"message text","evidence":"evidence","meta":"{}"}""".parseJson
val expectedCreatedTrialIssue = trialIssue.copy(id = LongId(0), lastUpdate = LocalDateTime.MIN, isDraft = true)
val parsedCreateTrialIssue =
- jsValueToTrialIssue(createTrialIssueJson, StringId("NCT000001"), StringId("userId-001"))
+ jsValueToTrialIssue(createTrialIssueJson, StringId("NCT000001"), xyz.driver.core.Id("userId-001"))
parsedCreateTrialIssue should be(expectedCreatedTrialIssue)
val updateTrialIssueJson =