def userAndCredentials()

in membership-attribute-service/app/services/IdentityAuthService.scala [61:77]


  def userAndCredentials(requestHeader: RequestHeader, requiredScopes: List[AccessScope]): Future[Either[ApiError, UserAndCredentials]] =
    identityPlayAuthService
      .validateCredentialsFromRequest[UserFromToken](requestHeader, requiredScopes)
      .attempt
      .flatMap {
        // Request has Okta token but it's invalid
        case Left(OktaValidationException(error)) =>
          IO.pure(Left(ApiError(message = error.message, details = "", statusCode = error.suggestedHttpResponseCode)))
        // Request has invalid Idapi credentials
        case Left(UserCredentialsMissingError(_)) => IO.pure(Left(ApiErrors.unauthorized))
        // Something unexpected
        case Left(other) => IO.raiseError(other)
        // Request has valid Okta token
        case Right((credentials: OktaUserCredentials, user)) => IO.pure(Right(UserAndCredentials(user, credentials)))
        // Request has valid Idapi credentials
        case Right((credentials: IdapiUserCredentials, user)) => IO.pure(Right(UserAndCredentials(user, credentials)))
      }