def apply()

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))
  }