in membership-attribute-service/app/controllers/AccountController.scala [184:209]
def anyPaymentDetails(filter: OptionalSubscriptionsFilter, metricName: String): Action[AnyContent] =
AuthorizeForRecentLoginAndScopes(Return401IfNotSignedInRecently, requiredScopes = List(completeReadSelf)).async { request =>
import request.logPrefix
metrics.measureDuration(metricName) {
val user = request.user
val userId = user.identityId
logger.info(s"Attempting to retrieve payment details for identity user: $userId")
for {
catalog <- request.touchpoint.futureCatalog
result <- paymentDetails(userId, filter, request.touchpoint).toEither
} yield result match {
case Right(subscriptionList) =>
logger.info(s"Successfully retrieved payment details result for identity user: $userId")
val productsResponseWrites = new ProductsResponseWrites(catalog)
val response = productsResponseWrites.from(user, subscriptionList)
import productsResponseWrites.writes
Ok(Json.toJson(response))
case Left(message) =>
logger.warn(s"Unable to retrieve payment details result for identity user $userId due to $message")
InternalServerError("Failed to retrieve payment details due to an internal error")
}
}
}