package tv.miracle.backend.graphql
import org.apache.pekko.http.scaladsl.model.HttpMethods._
import org.apache.pekko.http.scaladsl.model.headers._
import org.apache.pekko.http.scaladsl.model.{ HttpResponse, StatusCodes }
import org.apache.pekko.http.scaladsl.server.Directives._
import org.apache.pekko.http.scaladsl.server.{ Directive0, Route }
trait CorsSupport {
private def addAccessControlHeaders: Directive0 =
respondWithHeaders(
`Access-Control-Allow-Origin`.*,
`Access-Control-Allow-Credentials`(true),
`Access-Control-Allow-Headers`("Authorization", "Content-Type", "X-Requested-With"))
private def preflightRequestHandler: Route = options {
complete(HttpResponse(StatusCodes.OK)
.withHeaders(
`Access-Control-Allow-Methods`(OPTIONS, POST, GET)))
}
def corsHandler(r: Route): Route = addAccessControlHeaders {
preflightRequestHandler ~ r
}
}