private def productIsInstanceOfProductType()

in membership-attribute-service/app/services/AccountDetailsFromZuora.scala [210:230]


  private def productIsInstanceOfProductType(product: Product, requestedProductType: String) = {
    val requestedProductTypeIsContentSubscription: Boolean = requestedProductType == "ContentSubscription"
    product match {
      // this ordering prevents Weekly subs from coming back when Paper is requested (which is different from the type hierarchy where Weekly extends Paper)
      case _: Product.Weekly => requestedProductType == "Weekly" || requestedProductTypeIsContentSubscription
      case Product.Voucher => requestedProductType == "Voucher" || requestedProductType == "Paper" || requestedProductTypeIsContentSubscription
      case Product.DigitalVoucher =>
        requestedProductType == "DigitalVoucher" || requestedProductType == "Paper" || requestedProductTypeIsContentSubscription
      case Product.Delivery =>
        requestedProductType == "HomeDelivery" || requestedProductType == "Paper" || requestedProductTypeIsContentSubscription
      case Product.NationalDelivery =>
        requestedProductType == "HomeDelivery" || requestedProductType == "Paper" || requestedProductTypeIsContentSubscription
      case Product.Contribution => requestedProductType == "Contribution"
      case Product.Membership => requestedProductType == "Membership"
      case Product.Digipack => requestedProductType == "Digipack" || requestedProductTypeIsContentSubscription
      case Product.SupporterPlus => requestedProductType == "SupporterPlus" || requestedProductTypeIsContentSubscription
      case Product.TierThree => requestedProductType == "TierThree" || requestedProductTypeIsContentSubscription
      case Product.AdLite => requestedProductType == "GuardianAdLite"
      case _ => requestedProductType == product.name // fallback
    }
  }