From 812aa3c2ff4bd90ae1c5621c343f7daf09a01a14 Mon Sep 17 00:00:00 2001 From: Mohd-Arham Date: Thu, 4 Dec 2025 12:17:14 +0530 Subject: [PATCH] add validation in request --- .../bbps/controller/AuthController.java | 3 -- .../bbps/dto/auth/LoginRequest.java | 31 +++++++---- .../bbps/dto/auth/RegisterRequest.java | 16 ++++++ .../bbps/dto/auth/VerifyOtpRequest.java | 52 ++++++++++++------- .../dto/request/ComplainStatusRequest.java | 1 - .../bbps/dto/request/ComplaintRequestDTO.java | 17 ++++-- .../response/TicketCheckStatusResponse.java | 5 ++ .../bbps/serviceImpl/ComplainServiceImpl.java | 4 +- .../bbps/util/BBPSConstant.java | 1 + 9 files changed, 89 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/billpaymentservice/bbps/controller/AuthController.java b/src/main/java/com/billpaymentservice/bbps/controller/AuthController.java index 85a2f30..32aecb3 100644 --- a/src/main/java/com/billpaymentservice/bbps/controller/AuthController.java +++ b/src/main/java/com/billpaymentservice/bbps/controller/AuthController.java @@ -10,10 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.billpaymentservice.bbps.dto.ResponseModel; -import com.billpaymentservice.bbps.dto.auth.AuthResponse; -import com.billpaymentservice.bbps.dto.response.AuthResponses; import com.billpaymentservice.bbps.dto.auth.LoginRequest; -import com.billpaymentservice.bbps.dto.auth.OtpSendResponse; import com.billpaymentservice.bbps.dto.auth.RegisterRequest; import com.billpaymentservice.bbps.dto.auth.VerifyOtpRequest; import com.billpaymentservice.bbps.service.AuthService; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java index 8d8a65a..1f7d944 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java @@ -1,19 +1,28 @@ package com.billpaymentservice.bbps.dto.auth; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; + public class LoginRequest { - private String mobile; - public LoginRequest() {} + @NotNull(message = "Mobile number cannot be null.") + @Size(min = 10, max = 10, message = "Mobile number must be exactly 10 digits.") + @Pattern(regexp = "^[0-9]{10}$", message = "Mobile number must contain only digits.") + private String mobile; - public LoginRequest(String mobile) { - this.mobile = mobile; - } + public LoginRequest() { + } - public String getMobile() { - return mobile; - } + public LoginRequest(String mobile) { + this.mobile = mobile; + } - public void setMobile(String mobile) { - this.mobile = mobile; - } + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/auth/RegisterRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/auth/RegisterRequest.java index cb6b1a7..1905d7a 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/auth/RegisterRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/auth/RegisterRequest.java @@ -2,15 +2,31 @@ package com.billpaymentservice.bbps.dto.auth; import com.billpaymentservice.bbps.dto.request.BaseClass; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; @Getter @Setter public class RegisterRequest extends BaseClass { + + @NotNull(message = "Mobile number cannot be null.") + @Size(min = 10, max = 10, message = "Mobile number must be exactly 10 digits.") + @Pattern(regexp = "^[0-9]{10}$", message = "Mobile number must contain only 10 digits.") private String mobile; + + @NotNull(message = "Name cannot be null.") + @Size(min = 2, max = 100, message = "Name must be between 2 and 100 characters.") private String name; + + @NotNull(message = "Email cannot be null.") + @Email(message = "Email must be a valid email address.") private String email; + + @NotNull(message = "Registration token cannot be null.") private String registrationToken; } \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java index a52c072..aa6ce8d 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java @@ -1,30 +1,42 @@ package com.billpaymentservice.bbps.dto.auth; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; + public class VerifyOtpRequest { - private String mobile; - private String otp; - public VerifyOtpRequest() { - } + @NotNull(message = "Mobile number cannot be null.") + @Size(min = 10, max = 10, message = "Mobile number must be exactly 10 digits.") + @Pattern(regexp = "^[0-9]{10}$", message = "Mobile number must contain only digits.") + private String mobile; - public VerifyOtpRequest(String mobile, String otp) { - this.mobile = mobile; - this.otp = otp; - } + @NotNull(message = "OTP cannot be null.") + @Size(min = 6, max = 6, message = "OTP must be exactly 6 digits.") + @Pattern(regexp = "^[0-9]{6}$", message = "OTP must contain only 6 digits.") + private String otp; - public String getMobile() { - return mobile; - } + public VerifyOtpRequest() { + } - public void setMobile(String mobile) { - this.mobile = mobile; - } + public VerifyOtpRequest(String mobile, String otp) { + this.mobile = mobile; + this.otp = otp; + } - public String getOtp() { - return otp; - } + public String getMobile() { + return mobile; + } - public void setOtp(String otp) { - this.otp = otp; - } + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getOtp() { + return otp; + } + + public void setOtp(String otp) { + this.otp = otp; + } } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/request/ComplainStatusRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/request/ComplainStatusRequest.java index 797eb21..dc232eb 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/request/ComplainStatusRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/request/ComplainStatusRequest.java @@ -1,7 +1,6 @@ package com.billpaymentservice.bbps.dto.request; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/request/ComplaintRequestDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/request/ComplaintRequestDTO.java index ee5b04e..169920f 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/request/ComplaintRequestDTO.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/request/ComplaintRequestDTO.java @@ -1,5 +1,7 @@ package com.billpaymentservice.bbps.dto.request; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @@ -7,9 +9,16 @@ import lombok.Setter; @Setter public class ComplaintRequestDTO extends BaseClass { - private String ticketDescription; // Complaint description that the user enters - private String ticketDisposition; // Complaint disposition - private String ticketDispositionCode; // Type of complaint - private String txnId; // Transaction ID (optional) + @NotBlank(message = "Ticket description cannot be null.") + private String ticketDescription; + + @NotBlank(message = "Ticket disposition cannot be null.") + private String ticketDisposition; + + @NotBlank(message = "Ticket disposition code cannot be null.") + private String ticketDispositionCode; + + @NotBlank(message = "Transaction ID cannot be null.") + private String txnId; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/TicketCheckStatusResponse.java b/src/main/java/com/billpaymentservice/bbps/dto/response/TicketCheckStatusResponse.java index 3b506f2..e02e8f7 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/TicketCheckStatusResponse.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/TicketCheckStatusResponse.java @@ -1,6 +1,7 @@ package com.billpaymentservice.bbps.dto.response; import com.billpaymentservice.bbps.dto.TicketDetailsDTO; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @@ -9,9 +10,13 @@ public class TicketCheckStatusResponse { private String refId; private TicketDetailsDTO ticketDetails; + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String message; + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String remarks; + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String status; + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String statusCode; } diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java index 9d9e77e..fcefd00 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java @@ -127,8 +127,8 @@ public class ComplainServiceImpl implements ComplainService { Optional dataById = transactionMasterRepository.findById(complainRequestDTO.getTxnId()); if (dataById == null || dataById.isEmpty()) { - LOGGER.warn("Txn Id is null"); - throw new CustomException("Txn Id is required", "FAILED", BBPSConstant.BADREQUEST, null); + LOGGER.warn("Txn Data Not Found This Txn Id is null"); + throw new CustomException(BBPSConstant.USER_Txn_IS_NOT_FOUND, "FAILED", BBPSConstant.BADREQUEST, null); } TransactionMaster transData = dataById.get(); diff --git a/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java b/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java index 9c268c8..36f1c6f 100644 --- a/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java +++ b/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java @@ -150,6 +150,7 @@ public class BBPSConstant { public static final String ALL_COMPLAINT_FIELDS_FETCH = "All complaint fields fetched successfully"; public static final String SOMETHING_WENT_WRONG = "Something went wrong"; public static final String USER_ID_IS_EMPTY = "User id is empty"; + public static final String USER_Txn_IS_NOT_FOUND = "Not Txn Found This Txn Id"; // Timing/delay constants (milliseconds) public static final long BILL_FETCH_DELAY_MS = 5000L; // used after initiate bill fetch