in membership-attribute-service/app/services/DynamoSupporterProductDataService.scala [44:61]
def getSupporterRatePlanItems(identityId: String)(implicit logPrefix: LogPrefix): SimpleEitherT[List[DynamoSupporterRatePlanItem]] = {
EitherT(
for {
futureDynamoResult <- getSupporterRatePlanItemsWithReadErrors(identityId)
futureErrors = futureDynamoResult.collect { case Left(error) =>
error
}
_ = alertOnDynamoReadErrors(identityId, futureErrors)
futureRatePlanItems = futureDynamoResult.collect({ case Right(ratePlanItem) =>
ratePlanItem
})
} yield
if (futureErrors.isEmpty || futureRatePlanItems.nonEmpty)
\/.right(futureRatePlanItems)
else
\/.left(errorMessage(identityId, futureErrors)),
)
}