def validate()

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
    }