def isValidKey()

in api/src/main/scala/com/gu/adapters/http/Authentication.scala [17:33]


  def isValidKey(
    authHeader: Option[String],
    apiKeys: List[String]
  ): Either[Error, String] = {

    val tokenHeader = "Bearer token="
    val token = authHeader
      .withFilter(_.startsWith(tokenHeader))
      .map(_.stripPrefix(tokenHeader))

    val tokenOrError = token match {
      case Some(valid) if apiKeys.contains(valid) => Right(valid)
      case Some(_) => Left("Invalid access token provided")
      case None => Left("No access token in request")
    }
    tokenOrError.leftMap(error => tokenAuthorizationFailed(List(error)))
  }