def build()

in support-workers/src/main/scala/com/gu/support/workers/lambdas/CreateSalesforceContact.scala [51:70]


  def build(
      salesforceContactRecords: SalesforceContactRecords,
  ): CreateZuoraSubscriptionState =
    (product, paymentMethod) match {
      case (product: Contribution, purchase) =>
        toNextContribution(salesforceContactRecords, product, purchase)
      case (product: SupporterPlus, purchase) =>
        toNextSupporterPlus(salesforceContactRecords, product, purchase)
      case (product: TierThree, purchase) =>
        toNextTierThree(salesforceContactRecords, product, purchase)
      case (product: GuardianAdLite, purchase) =>
        toNextGuardianAdLite(salesforceContactRecords, product, purchase)
      case (product: DigitalPack, purchase) if product.readerType == ReaderType.Direct =>
        toNextDSDirect(salesforceContactRecords.buyer, product, purchase)
      case (product: Paper, purchase) =>
        toNextPaper(salesforceContactRecords.buyer, product, purchase)
      case (product: GuardianWeekly, purchase) =>
        toNextWeekly(salesforceContactRecords, product, purchase)
      case _ => throw new RuntimeException("could not create value state")
    }