in mobile-save-for-later/src/main/scala/com/gu/sfl/controller/FetchArticlesController.scala [15:36]
override def apply(lambdaRequest: LambdaRequest): Future[LambdaResponse] = {
val futureResponse = fetchSavedArticles.retrieveForUser(lambdaRequest.headers).map {
case Right(syncedPrefs) =>
syncedPrefs.savedArticles.foreach ( sp =>
logger.debug(s"Returning found: ${sp.articles.size} articles")
)
okSyncedPrefsResponse(syncedPrefs)
case Left(error) =>
logger.error(s"Error trying to retrieve saved articles: ${error.message}")
processErrorResponse(error) {
case e: IdentityServiceError => identityErrorResponse
case e: MissingAccessTokenError => missingAccessTokenResponse
case e: UserNotFoundError => missingUserResponse
case OktaOauthValidationError(e, InvalidOrExpiredToken) => oktaOauthError(e, StatusCodes.unauthorized)
case OktaOauthValidationError(e, MissingRequiredClaim(_)) => oktaOauthError(e, StatusCodes.badRequest)
case OktaOauthValidationError(e, MissingRequiredScope(_)) => oktaOauthError(e, StatusCodes.forbidden)
case OktaOauthValidationError(e, _) => oktaOauthError(e, StatusCodes.unauthorized)
}
}
futureResponse
}