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,
)
}
}