aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-11-02 16:22:11 -0700
committervlad <vlad@driver.xyz>2017-11-02 16:22:11 -0700
commitb331892f87846945f69a28e9f3ee786cd4b93577 (patch)
treecd1489df3a8c85f3791ba25b281c1817e286ec8d /src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
parent4583af5213b9f7b1e8a06f58321813556763f2d1 (diff)
downloadrest-query-b331892f87846945f69a28e9f3ee786cd4b93577.tar.gz
rest-query-b331892f87846945f69a28e9f3ee786cd4b93577.tar.bz2
rest-query-b331892f87846945f69a28e9f3ee786cd4b93577.zip
Using common request contexts and user objects
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala29
1 files changed, 8 insertions, 21 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala b/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
index 4f5cd8a..93eb62f 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/http/Directives.scala
@@ -4,9 +4,6 @@ import akka.http.scaladsl.server._
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.model._
import xyz.driver.core.app.DriverApp
-import xyz.driver.core.rest.ContextHeaders
-import xyz.driver.entities.users.AuthUserInfo
-import xyz.driver.pdsuicommon.auth._
import xyz.driver.pdsuicommon.error._
import xyz.driver.pdsuicommon.error.DomainError._
import xyz.driver.pdsuicommon.error.ErrorsResponse.ResponseError
@@ -14,7 +11,9 @@ import xyz.driver.pdsuicommon.parsers._
import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
import xyz.driver.pdsuicommon.domain._
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
-import xyz.driver.core.rest.auth.AuthProvider
+import xyz.driver.core.generators
+import xyz.driver.core.rest.ContextHeaders
+
import scala.util.control._
import scala.util._
@@ -69,7 +68,7 @@ trait Directives {
case other => other
}
- def domainExceptionHandler(req: RequestId): ExceptionHandler = {
+ def domainExceptionHandler(req: String): ExceptionHandler = {
def errorResponse(ex: Throwable) =
ErrorsResponse(Seq(ResponseError(None, ex.getMessage, 1)), req)
ExceptionHandler {
@@ -81,7 +80,7 @@ trait Directives {
}
}
- def domainRejectionHandler(req: RequestId): RejectionHandler = {
+ def domainRejectionHandler(req: String): RejectionHandler = {
def wrapContent(message: String) = {
import ErrorsResponse._
val err: ErrorsResponse = ErrorsResponse(Seq(ResponseError(None, message, 1)), req)
@@ -95,27 +94,15 @@ trait Directives {
}
}
- val tracked: Directive1[RequestId] = optionalHeaderValueByName(ContextHeaders.TrackingIdHeader) flatMap {
- case Some(id) => provide(RequestId(id))
- case None => provide(RequestId())
+ val tracked: Directive1[String] = optionalHeaderValueByName(ContextHeaders.TrackingIdHeader) flatMap {
+ case Some(id) => provide(id)
+ case None => provide(generators.nextUuid().toString)
}
val domainResponse: Directive0 = tracked.flatMap { id =>
handleExceptions(domainExceptionHandler(id)) & handleRejections(domainRejectionHandler(id))
}
- implicit class AuthProviderWrapper(provider: AuthProvider[AuthUserInfo]) {
- val authenticated: Directive1[AuthenticatedRequestContext] = (provider.authorize() & tracked) tflatMap {
- case (core, requestId) =>
- provide(
- new AuthenticatedRequestContext(
- core.authenticatedUser,
- requestId,
- core.contextHeaders(ContextHeaders.AuthenticationTokenHeader)
- ))
- }
- }
-
}
object Directives extends Directives