From 3330c62e4ce6e775313a3bd7ce74aed871cd06d0 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Mon, 16 Oct 2017 12:58:14 -0700 Subject: Move Implicits to package.scala --- src/main/scala/xyz/driver/core/rest/Implicits.scala | 17 ----------------- src/main/scala/xyz/driver/core/rest/package.scala | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 src/main/scala/xyz/driver/core/rest/Implicits.scala diff --git a/src/main/scala/xyz/driver/core/rest/Implicits.scala b/src/main/scala/xyz/driver/core/rest/Implicits.scala deleted file mode 100644 index 8b499dd..0000000 --- a/src/main/scala/xyz/driver/core/rest/Implicits.scala +++ /dev/null @@ -1,17 +0,0 @@ -package xyz.driver.core.rest - -import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshallable} -import akka.http.scaladsl.model.StatusCodes - -import scala.concurrent.Future -import scalaz.{Functor, OptionT} - -object Implicits { - implicit class OptionTRestAdditions[T](optionT: OptionT[Future, T]) { - def responseOrNotFound(successCode: StatusCodes.Success = StatusCodes.OK)( - implicit F: Functor[Future], - em: ToEntityMarshaller[T]): Future[ToResponseMarshallable] = { - optionT.fold[ToResponseMarshallable](successCode -> _, StatusCodes.NotFound -> None) - } - } -} diff --git a/src/main/scala/xyz/driver/core/rest/package.scala b/src/main/scala/xyz/driver/core/rest/package.scala index 6019c33..17cc3bb 100644 --- a/src/main/scala/xyz/driver/core/rest/package.scala +++ b/src/main/scala/xyz/driver/core/rest/package.scala @@ -1,6 +1,8 @@ package xyz.driver.core.rest -import akka.http.scaladsl.model.{HttpRequest, HttpResponse, ResponseEntity} +import akka.http.scaladsl.marshalling.{ToEntityMarshaller, ToResponseMarshallable} +import akka.http.scaladsl.model.headers.{HttpOriginRange, Origin, `Access-Control-Allow-Origin`} +import akka.http.scaladsl.model.{HttpRequest, HttpResponse, ResponseEntity, StatusCodes} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server._ import akka.http.scaladsl.unmarshalling.Unmarshal @@ -9,6 +11,7 @@ import akka.util.ByteString import xyz.driver.tracing.TracingDirectives import scala.concurrent.Future +import scalaz.{Functor, OptionT} import scalaz.Scalaz.{intInstance, stringInstance} import scalaz.syntax.equal._ @@ -27,6 +30,16 @@ trait ServiceTransport { final case class Pagination(pageSize: Int, pageNumber: Int) +object Implicits { + implicit class OptionTRestAdditions[T](optionT: OptionT[Future, T]) { + def responseOrNotFound(successCode: StatusCodes.Success = StatusCodes.OK)( + implicit F: Functor[Future], + em: ToEntityMarshaller[T]): Future[ToResponseMarshallable] = { + optionT.fold[ToResponseMarshallable](successCode -> _, StatusCodes.NotFound -> None) + } + } +} + object `package` { object ContextHeaders { val AuthenticationTokenHeader: String = "Authorization" @@ -70,6 +83,10 @@ object `package` { AuthProvider.SetPermissionsTokenHeader ) + def allowOrigin(originHeader: Option[Origin]): `Access-Control-Allow-Origin` = + `Access-Control-Allow-Origin`( + originHeader.fold[HttpOriginRange](HttpOriginRange.*)(h => HttpOriginRange(h.origins: _*))) + def serviceContext: Directive1[ServiceRequestContext] = extract(ctx => extractServiceContext(ctx.request)) def extractServiceContext(request: HttpRequest): ServiceRequestContext = -- cgit v1.2.3