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 --- .../services/rest/RestDocumentService.scala | 38 ++++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'src/main/scala/xyz/driver/pdsuidomain/services/rest/RestDocumentService.scala') 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") } -- cgit v1.2.3