def this()

in support-workers/src/main/scala/com/gu/support/workers/lambdas/CreateZuoraSubscription.scala [20:84]


  def this() = this(ServiceProvider)

  override protected def servicesHandler(
      zuoraSubscriptionState: CreateZuoraSubscriptionState,
      requestInfo: RequestInfo,
      context: Context,
      services: Services,
  ): FutureHandlerResult = {

    val zuoraProductHandlers = new ZuoraProductHandlers(services, zuoraSubscriptionState)
    import zuoraProductHandlers._

    val eventualSendThankYouEmailState = zuoraSubscriptionState.productSpecificState match {
      case state: SupporterPlusState =>
        zuoraSupporterPlusHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
      case state: TierThreeState =>
        zuoraTierThreeHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
      case state: DigitalSubscriptionState =>
        zuoraDigitalSubscriptionDirectHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
      case state: ContributionState =>
        zuoraContributionHandler.subscribe(state)
      case state: PaperState =>
        zuoraPaperHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
      case state: GuardianWeeklyState =>
        zuoraGuardianWeeklyHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
      case state: GuardianAdLiteState =>
        zuoraGuardianAdLiteHandler.subscribe(
          state,
          zuoraSubscriptionState.csrUsername,
          zuoraSubscriptionState.salesforceCaseId,
        )
    }

    eventualSendThankYouEmailState.map { nextState =>
      HandlerResult(
        SendAcquisitionEventState(
          requestId = zuoraSubscriptionState.requestId,
          analyticsInfo = zuoraSubscriptionState.analyticsInfo,
          sendThankYouEmailState = nextState,
          acquisitionData = zuoraSubscriptionState.acquisitionData,
        ),
        requestInfo,
      )
    }
  }