in lambda/src/main/scala/pricemigrationengine/handlers/SalesforcePriceRiseCreationHandler.scala [44:63]
private def updateSalesforce(
cohortSpec: CohortSpec,
cohortItem: CohortItem
): ZIO[SalesforceClient, Failure, Option[String]] = {
for {
subscription <- SalesforceClient.getSubscriptionByName(cohortItem.subscriptionName)
priceRise <- buildPriceRise(cohortSpec, cohortItem, subscription)
result <-
cohortItem.salesforcePriceRiseId
.fold(
SalesforceClient
.createPriceRise(priceRise)
.map[Option[String]](response => Some(response.id))
) { priceRiseId =>
SalesforceClient
.updatePriceRise(priceRiseId, priceRise)
.as(None)
}
} yield result
}