in support-frontend/app/utils/CheckoutValidationRules.scala [104:121]
def validate(createSupportWorkersRequest: CreateSupportWorkersRequest): Result =
(createSupportWorkersRequest.product match {
case _: SupporterPlus => PaidProductValidation.passes(createSupportWorkersRequest)
case d: DigitalPack => DigitalPackValidation.passes(createSupportWorkersRequest, d)
case p: Paper => PaperValidation.passes(createSupportWorkersRequest, p.fulfilmentOptions)
case _: GuardianWeekly => GuardianWeeklyValidation.passes(createSupportWorkersRequest)
case _: TierThree =>
GuardianWeeklyValidation.passes(
createSupportWorkersRequest,
) // Tier three has the same fields as Guardian Weekly
case _: Contribution => PaidProductValidation.passes(createSupportWorkersRequest)
case _: GuardianAdLite => PaidProductValidation.passes(createSupportWorkersRequest)
}) match {
case Invalid(message) if PreservableErrorMessages.isMessagePreservable(message) => Invalid(message)
case Invalid(message) =>
Invalid(s"validation of the request body failed with $message - body was $createSupportWorkersRequest")
case Valid => Valid
}