in lambda/src/main/scala/pricemigrationengine/migrations/GW2024Migration.scala [204:222]
def priceData(
subscription: ZuoraSubscription,
account: ZuoraAccount
): Either[DataExtractionFailure, PriceData] = {
val priceDataOpt = for {
currency <- subscriptionToCurrency(subscription)
ratePlan <- subscriptionToMigrationRatePlan(subscription)
oldPrice = ZuoraRatePlan.ratePlanToRatePlanPrice(ratePlan)
newPrice <- getNewPrice(subscription, account)
billingPeriod <- subscriptionToBillingPeriod(subscription)
} yield PriceData(currency, oldPrice, newPrice, BillingPeriod.toString(billingPeriod))
priceDataOpt match {
case Some(pricedata) => Right(pricedata)
case None =>
Left(
DataExtractionFailure(s"Could not determine PriceData for subscription ${subscription.subscriptionNumber}")
)
}
}