private def sendPaymentMethodChangedEmail()

in membership-attribute-service/app/controllers/PaymentUpdateController.scala [93:129]


  private def sendPaymentMethodChangedEmail(
      emailAddress: String,
      contact: Contact,
      paymentMethod: PaymentType,
      productType: ProductType,
  )(implicit logPrefix: LogPrefix): SimpleEitherT[Unit] =
    SimpleEitherT.rightT(sendEmail.send(paymentMethodChangedEmail(emailAddress, contact, paymentMethod, productType)))

  private def checkDirectDebitUpdateResult(
      freshDefaultPaymentMethodOption: Option[PaymentMethod],
      bankAccountName: String,
      bankAccountNumber: String,
      bankSortCode: String,
  )(implicit logPrefix: LogPrefix): Result = freshDefaultPaymentMethodOption match {
    case Some(dd: GoCardless)
        if bankAccountName == dd.accountName &&
          dd.accountNumber.length > 3 && bankAccountNumber.endsWith(dd.accountNumber.substring(dd.accountNumber.length - 3)) &&
          bankSortCode == dd.sortCode =>
      logger.info(s"Successfully updated direct debit")
      Ok(
        Json.obj(
          "accountName" -> dd.accountName,
          "accountNumber" -> dd.accountNumber,
          "sortCode" -> dd.sortCode,
        ),
      )
    case Some(_) =>
      logger.error(
        scrub"New payment method $freshDefaultPaymentMethodOption, does not match the posted Direct Debit details $bankSortCode $bankAccountNumber $bankAccountName",
      )
      InternalServerError("")
    case None =>
      logger.error(
        scrub"default-payment-method-lost: Default payment method was set to nothing, when attempting to update Direct Debit details",
      )
      InternalServerError("")
  }