override def apply()

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
  }