ExpiryDateValidator.java
Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/validation/ExpiryDateValidator.java
package com.checkout.payment.gateway.validation;
import com.checkout.payment.gateway.model.PostPaymentRequest;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.time.LocalDate;
import java.time.YearMonth;
/**
* Validate payment request's expiry month + year is in the future
* The expiry day is at the end of the month
*/
public class ExpiryDateValidator implements ConstraintValidator<ValidExpiryDate, PostPaymentRequest> {
@Override
public boolean isValid(PostPaymentRequest request, ConstraintValidatorContext context) {
// Not deal with null value and invalid month is this validator.
if (request.getExpiryMonth() == null || request.getExpiryYear() == null
|| request.getExpiryMonth() < 1 || request.getExpiryMonth() > 12) {
return true;
}
return YearMonth.of(request.getExpiryYear(), request.getExpiryMonth())
.atEndOfMonth()
.isAfter(LocalDate.now());
}
}
관련 글
PaymentGatewayApplication.java
PaymentGatewayApplication.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/PaymentGatewayApplication.java).
글 읽기 →ApplicationConfiguration.java
ApplicationConfiguration.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/ApplicationConfiguration.java).
글 읽기 →RequestResponseLogger.java
RequestResponseLogger.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/configuration/RequestResponseLogger.java).
글 읽기 →PaymentGatewayController.java
PaymentGatewayController.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/controller/PaymentGatewayController.java).
글 읽기 →PaymentStatus.java
PaymentStatus.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/enums/PaymentStatus.java).
글 읽기 →BankErrorException.java
BankErrorException.java — java source code from the Bridget learning materials (Bridget/payment-gateway-challenge-java/src/main/java/com/checkout/payment/gateway/exception/BankErrorException.java).
글 읽기 →