ExpiryDateValidator.java
Bridget/payment-gateway-microservices/services/payment-service/src/main/java/com/checkout/paymentgw/payment/api/validation/ExpiryDateValidator.java
package com.checkout.paymentgw.payment.api.validation;
import com.checkout.paymentgw.payment.api.dto.PostPaymentRequest;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.time.YearMonth;
public class ExpiryDateValidator implements ConstraintValidator<ValidExpiryDate, PostPaymentRequest> {
@Override
public boolean isValid(PostPaymentRequest req, ConstraintValidatorContext ctx) {
if (req == null || req.getExpiryMonth() == null || req.getExpiryYear() == null) {
// Field-level @NotNull will report the specific missing field.
return true;
}
try {
YearMonth expiry = YearMonth.of(req.getExpiryYear(), req.getExpiryMonth());
return expiry.isAfter(YearMonth.now()) || expiry.equals(YearMonth.now());
} catch (Exception e) {
return false;
}
}
}
関連記事
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).
記事を読む →