in mobile-save-for-later/src/main/scala/com/gu/sfl/savedarticles/FetchSavedArticles.scala [30:52]
override def retrieveForUser(headers: Map[String, String]): Future[Either[SaveForLaterError, SyncedPrefs]] = {
(for {
identityHeaders <- getIdentityHeaders(headers)
} yield {
identityService.userFromRequest(identityHeaders, List(readSelf)).transformWith{
case Success(Some(userId)) =>
logger.debug(s"Got user id ${userId} from identity")
Future.successful(wrapSavedArticles(userId, savedArticlesPersistence.read(userId)))
case Success(_) =>
logger.debug(s"No user found for AccessToken ${identityHeaders.accessToken}")
Future.successful(Left(new UserNotFoundError("Could not retrieve a user id")))
case Failure(OktaValidationException(e)) =>
logger.debug(s"Error retrieving userId from okta oauth token")
Future.successful(Left(OktaOauthValidationError(e.message, e)))
case Failure(_) =>
logger.debug(s"Error retrieving userId for: token: ${identityHeaders.accessToken}")
Future.successful(Left(new IdentityServiceError("Could not get a response from the id api")))
}
}).getOrElse{
logger.debug(s"Could not retrieve identity headers")
Future.successful(Left(MissingAccessTokenError("No access token on request")))
}
}