in app/com/gu/viewer/proxy/PreviewSession.scala [50:73]
def apply(session: Session): PreviewSession = PreviewSession(
session.get(SESSION_KEY_PREVIEW_SESSION),
session.get(SESSION_KEY_PREVIEW_AUTH),
session.get(SESSION_KEY_RETURN_URL),
session
)
def fromResponseHeaders(response: ProxyResponse): PreviewSession = {
def extractCookies(headerName: String, transformer: Option[String] => Cookies) =
response.allHeaders.get(headerName).map {
_.flatMap { h => transformer(Some(h)) }
}
val allCookies = (
extractCookies("Set-Cookie", fromSetCookieHeader) ++
extractCookies("Cookie", fromCookieHeader)
).flatten.groupBy(_.name).view.mapValues(_.head.value)
PreviewSession(allCookies.get(COOKIE_PREVIEW_SESSION), allCookies.get(COOKIE_PREVIEW_AUTH))
}