From b331892f87846945f69a28e9f3ee786cd4b93577 Mon Sep 17 00:00:00 2001 From: vlad Date: Thu, 2 Nov 2017 16:22:11 -0700 Subject: Using common request contexts and user objects --- .../driver/pdsuidomain/services/ArmService.scala | 20 +++++++---- .../pdsuidomain/services/CriterionService.scala | 18 ++++++---- .../services/DocumentHistoryService.scala | 5 +-- .../services/DocumentIssueService.scala | 14 ++++---- .../pdsuidomain/services/DocumentService.scala | 39 +++++++++++++-------- .../pdsuidomain/services/DocumentTypeService.scala | 5 +-- .../services/EligibilityArmService.scala | 19 +++++----- .../services/ExtractedDataService.scala | 17 +++++---- .../pdsuidomain/services/HypothesisService.scala | 11 +++--- .../pdsuidomain/services/InterventionService.scala | 18 ++++++---- .../services/InterventionTypeService.scala | 5 +-- .../services/MedicalRecordHistoryService.scala | 5 +-- .../services/MedicalRecordIssueService.scala | 14 ++++---- .../services/MedicalRecordService.scala | 36 ++++++++++++------- .../services/PatientCriterionService.scala | 11 +++--- .../services/PatientEligibleTrialService.scala | 11 +++--- .../services/PatientHistoryService.scala | 5 +-- .../services/PatientHypothesisService.scala | 9 ++--- .../pdsuidomain/services/PatientIssueService.scala | 14 ++++---- .../services/PatientLabelEvidenceService.scala | 7 ++-- .../pdsuidomain/services/PatientLabelService.scala | 11 +++--- .../pdsuidomain/services/PatientService.scala | 29 ++++++++++------ .../pdsuidomain/services/ProviderTypeService.scala | 5 +-- .../pdsuidomain/services/QueueUploadService.scala | 14 +++++--- .../pdsuidomain/services/SlotArmService.scala | 19 ++++++---- .../pdsuidomain/services/StudyDesignService.scala | 5 +-- .../pdsuidomain/services/TrialHistoryService.scala | 5 +-- .../pdsuidomain/services/TrialIssueService.scala | 14 ++++---- .../driver/pdsuidomain/services/TrialService.scala | 40 ++++++++++++++-------- .../services/fake/FakeTrialService.scala | 38 ++++++++++++-------- .../pdsuidomain/services/rest/RestArmService.scala | 16 +++++---- .../services/rest/RestCriterionService.scala | 14 ++++---- .../services/rest/RestDocumentService.scala | 38 ++++++++++++-------- .../services/rest/RestDocumentTypeService.scala | 4 +-- .../services/rest/RestExtractedDataService.scala | 16 +++++---- .../pdsuidomain/services/rest/RestHelper.scala | 17 +-------- .../services/rest/RestHypothesisService.scala | 10 +++--- .../services/rest/RestInterventionService.scala | 14 ++++---- .../rest/RestInterventionTypeService.scala | 4 +-- .../services/rest/RestMedicalRecordService.scala | 39 +++++++++++++-------- .../rest/RestPatientCriterionService.scala | 10 +++--- .../services/rest/RestPatientLabelService.scala | 11 +++--- .../services/rest/RestPatientService.scala | 28 +++++++++------ .../services/rest/RestProviderTypeService.scala | 4 +-- .../services/rest/RestStudyDesignService.scala | 4 +-- .../services/rest/RestTrialService.scala | 39 +++++++++++++-------- 46 files changed, 433 insertions(+), 298 deletions(-) (limited to 'src/main/scala/xyz/driver/pdsuidomain/services') 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") } -- cgit v1.2.3