diff options
author | Zach Smith <zach@driver.xyz> | 2018-01-22 11:25:35 -0800 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2018-02-20 10:34:22 -0800 |
commit | b7e059da67bee48986b3165c94835f32b84cf76d (patch) | |
tree | c59e50fa0ce3db8ab218ad4469814c9d1fa4564f /src/main/scala/xyz/driver/core/rest | |
parent | e207352038e171e899695c895108fcca833ef70b (diff) | |
download | driver-core-b7e059da67bee48986b3165c94835f32b84cf76d.tar.gz driver-core-b7e059da67bee48986b3165c94835f32b84cf76d.tar.bz2 driver-core-b7e059da67bee48986b3165c94835f32b84cf76d.zip |
Move directives to rest package
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest')
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/package.scala | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/package.scala b/src/main/scala/xyz/driver/core/rest/package.scala index 77b916a..88f78d9 100644 --- a/src/main/scala/xyz/driver/core/rest/package.scala +++ b/src/main/scala/xyz/driver/core/rest/package.scala @@ -3,7 +3,7 @@ package xyz.driver.core.rest import java.net.InetAddress import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshallable} -import akka.http.scaladsl.model.headers.{HttpOriginRange, Origin, `Access-Control-Allow-Origin`} +import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.model._ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server._ @@ -110,6 +110,25 @@ object `package` { } } + def respondWithCorsHeaders: Directive0 = { + optionalHeaderValueByType[Origin](()) flatMap { originHeader => + respondWithHeaders( + List[HttpHeader]( + allowOrigin(originHeader), + `Access-Control-Allow-Headers`(AllowedHeaders: _*), + `Access-Control-Expose-Headers`(AllowedHeaders: _*) + )) + } + } + + def respondWithCorsAllowedMethodHeaders(methods: scala.collection.immutable.Seq[HttpMethod]): Directive0 = { + respondWithHeaders( + List[HttpHeader]( + Allow(methods), + `Access-Control-Allow-Methods`(methods) + )) + } + def extractServiceContext(request: HttpRequest, remoteAddress: RemoteAddress): ServiceRequestContext = new ServiceRequestContext( extractTrackingId(request), |