Author SHA1 Message Date
himanshu ba7a9a5f64 data optimise code 2026-01-23 15:19:58 +05:30
Lincpay Tech 14f348fa50 added jsoniginore for all request and response 2025-12-25 13:00:56 +05:30
Lincpay Tech 86b6c1f25f added db optimization for the get master data and get billerdetails 2025-12-24 13:41:37 +05:30
Lincpay Tech 58b628bd39 make changes for db optimise 2025-12-23 14:54:56 +05:30
Lincpay Tech 38979f0f94 transaction master and payment start record new entity with update 2025-12-23 10:38:59 +05:30
Lincpay Tech 46e50acc88 changed client to mid only 2025-12-22 18:29:24 +05:30
himanshu 95e1c8b45d Merge pull request 'feature/resilience4j' (#43) from feature/resilience4j into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/43
2025-12-22 18:13:18 +05:30
Lincpay Tech 6126bc1d81 resolved the conflicts 2025-12-22 18:10:12 +05:30
Lincpay Tech 5d0f043848 improved bill fetching data is getting saved before making call 2025-12-22 17:12:54 +05:30
Lincpay Tech a4842788c1 removed and added lombook for the login,verify,payment,transaction 2025-12-22 10:32:29 +05:30
Mohd_Arham a9d04ee757 Merge pull request 'feature3-userId-added' (#39) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/39
2025-12-19 12:21:33 +05:30
Mohd-Arham e3fdca6f72 updated code mergin 19-12-25 2025-12-19 12:20:27 +05:30
Mohd-Arham 0197f6951f updated code 2025-12-19 12:15:32 +05:30
Mohd_Arham 7fac2cb590 Merge pull request 'feature/id-length-fix' (#38) from feature/id-length-fix into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/38
2025-12-19 12:00:26 +05:30
Lincpay Tech 596f519d1e ready to go code and improved 2025-12-19 11:48:17 +05:30
Lincpay Tech 705af33f1e merge with develop in local now ready to merge in origin 2025-12-18 23:45:47 +05:30
Lincpay Tech ae298a35f6 delete some colums from payment start record 2025-12-18 23:24:38 +05:30
Lincpay Tech f752ed269f improved the logging and corrected payement start record 2025-12-18 21:57:56 +05:30
Lincpay Tech d34b2e1b84 changed trasaction master saving 2025-12-18 10:20:49 +05:30
Lincpay Tech c8bc6e7f12 half commited 2025-12-17 15:30:33 +05:30
Mohd_Arham 67be2acbc4 Merge pull request 'feature3-userId-added' (#36) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/36
2025-12-17 10:59:48 +05:30
Mohd-Arham d3ae7decc8 updated code 2025-12-17 10:58:26 +05:30
Mohd-Arham a41dca5693 code added on updated 2025-12-17 10:56:34 +05:30
Mohd_Arham 499bb1e995 Merge pull request 'feature/Resilience4j' (#35) from feature/Resilience4j into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/35
2025-12-17 10:55:40 +05:30
Lincpay Tech 4b5f81d0d5 added rate limiter and improved payment start entity 2025-12-17 10:49:39 +05:30
Lincpay Tech 0e747ed2a7 updated entity and removed mid from paymentstartRecord 2025-12-16 16:50:48 +05:30
Lincpay Tech f9ba70414b improved json failed response 2025-12-16 10:58:04 +05:30
Mohd_Arham d133fc0c75 Merge pull request 'feature3-userId-added' (#34) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/34
2025-12-16 09:59:54 +05:30
Mohd-Arham a2f9ee8ed7 added code 2025-12-16 09:59:05 +05:30
Mohd-Arham 98ca620bb4 added code 2025-12-16 09:57:29 +05:30
Lincpay Tech 8ae11f86d4 Merge branch 'develop' of https://git.zeptic.in/himanshu/bbps into develop 2025-12-15 12:26:35 +05:30
Lincpay Tech eeb326a221 improved the error handling and updated link paymentstartrecord and transactionmaster 2025-12-15 12:25:40 +05:30
Mohd_Arham efd6a58b62 Merge pull request 'feature3-userId-added' (#33) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/33
2025-12-12 15:11:02 +05:30
Mohd-Arham 78c0e023d9 update code 2025-12-12 15:09:43 +05:30
Mohd-Arham 28cf0aa98d add requestId in complaint 2025-12-12 15:02:05 +05:30
Lincpay Tech b3c507338e handled connection timeout exception 2025-12-11 18:00:36 +05:30
Lincpay Tech 6079ce48a3 updated audit table accroding to merchant panel 2025-12-11 17:35:26 +05:30
Mohd_Arham 67404c2279 Merge pull request 'feature3-userId-added' (#32) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/32
2025-12-11 16:48:55 +05:30
Mohd-Arham 870c37e7f5 updated code 2025-12-11 16:48:00 +05:30
Mohd-Arham 66a7677917 added user entity enabled 2025-12-11 16:45:22 +05:30
himanshu 2da63b2f11 Merge pull request 'audit-update' (#31) from audit-update into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/31
2025-12-11 11:11:49 +05:30
Lincpay Tech 06cb102aed made spome miniorchanges and remove user details 2025-12-11 11:05:38 +05:30
Mohd-Arham 825e309785 added 2025-12-11 10:50:51 +05:30
Lincpay Tech abf89ce7f0 resolved intitate payment problem 2025-12-10 16:07:57 +05:30
Mohd-Arham eb28221b96 update code added 2025-12-10 12:58:20 +05:30
Lincpay Tech 29bce40c65 removed userdetails table 2025-12-10 11:08:03 +05:30
Lincpay Tech e21039090d entity update with audit 2025-12-10 10:03:15 +05:30
Lincpay Tech 699d8572a9 added retry for the send otp 2025-12-09 19:11:42 +05:30
Mohd_Arham bb0aee2b2b Merge pull request 'update swagger configure' (#30) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/30
2025-12-09 18:32:15 +05:30
Mohd-Arham 13bfd34bbd update swagger configure 2025-12-09 18:30:22 +05:30
Lincpay Tech fb3c5d2e96 make some changes 2025-12-09 15:12:26 +05:30
Lincpay Tech 2c4855d59a added seprate auditable in entity 2025-12-09 10:13:23 +05:30
Mohd_Arham 0e56b4de7b Merge pull request 'feature3-userId-added' (#29) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/29
2025-12-09 10:10:07 +05:30
Mohd-Arham 74e4f86d67 update entity name 2025-12-09 10:08:51 +05:30
Mohd-Arham 896ff1722a updated code entity name 2025-12-08 18:41:12 +05:30
Mohd-Arham 6ea6dc4775 entity add bbps 2025-12-08 17:02:51 +05:30
Lincpay Tech 1cfe331ff1 improved the customerparamrequest to customerparam 2025-12-08 17:00:25 +05:30
Lincpay Tech c25382bd5c added txnid responsein web 2025-12-08 10:43:13 +05:30
Mohd-Arham fe4f653065 add rest client 2025-12-08 10:08:52 +05:30
Mohd-Arham 597f6b10d4 add rest client 2025-12-08 10:07:21 +05:30
Mohd-Arham 7e7b8ae9cf update complaint 2025-12-08 10:05:29 +05:30
Lincpay Tech 1e38efe3c0 imroved webbased datasaved 2025-12-05 11:55:49 +05:30
Mohd_Arham 66fceb95a1 Merge pull request 'feature3-userId-added' (#28) from feature3-userId-added into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/28
2025-12-04 18:42:15 +05:30
Mohd-Arham a28f70d2a9 resolved conflict 2025-12-04 18:41:00 +05:30
Mohd-Arham f15e967e58 04-12-25 2025-12-04 18:37:44 +05:30
Lincpay Tech 693b0b7801 fix untrancked file 2025-12-04 12:18:32 +05:30
Mohd-Arham 812aa3c2ff add validation in request 2025-12-04 12:17:14 +05:30
Lincpay Tech 1ab2768226 Merge remote-tracking branch 'origin/develop' into feature/callbackpaymentintent 2025-12-04 12:03:06 +05:30
Lincpay Tech 08b0689209 shift some constant from bbpsconstant to application properties 2025-12-04 11:54:58 +05:30
Lincpay Tech aea3d0d3a8 imroved the logic of intentpaymentapi 2025-12-04 10:44:25 +05:30
himanshu c0dbf531bd Merge pull request 'open callback with authentication' (#27) from feature/callbackpaymentintent into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/27
2025-12-03 18:17:03 +05:30
Lincpay Tech d88c624d50 open callback with authentication 2025-12-03 18:14:12 +05:30
Mohd-Arham 28708d1d74 updated payment code 2025-12-03 18:13:01 +05:30
Mohd-Arham 003dd9325c user id addded in this code 2025-12-03 17:40:04 +05:30
himanshu 9a9a07875c Merge pull request 'feature/callbackpaymentintent' (#25) from feature/callbackpaymentintent into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/25
2025-12-03 17:36:13 +05:30
Lincpay Tech a210c86bcd Merge branch 'develop' into feature/callbackpaymentintent 2025-12-03 17:31:08 +05:30
Lincpay Tech 78c38e6d74 added pollbackpayment status 2025-12-03 17:29:10 +05:30
Mohd_Arham 58d450b22e Merge pull request 'feature3-shared' (#24) from feature3-shared into develop
Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/24
2025-12-03 11:49:40 +05:30
250 changed files with 3854 additions and 3142 deletions
View File
+14
View File
@@ -45,6 +45,12 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>io.github.resilience4j</groupId>
<artifactId>resilience4j-spring-boot3</artifactId>
<version>2.2.0</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> <artifactId>spring-boot-starter-data-jpa</artifactId>
@@ -159,6 +165,12 @@
<version>0.11.5</version> <version>0.11.5</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.17.1</version>
</dependency>
<!-- Test --> <!-- Test -->
<dependency> <dependency>
@@ -174,6 +186,8 @@
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
@@ -1,42 +0,0 @@
package com.billpaymentservice.bbps.audit;
import java.io.Serializable;
import java.util.Date;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType;
import lombok.Data;
@Data
@MappedSuperclass
public abstract class Auditable<U> implements Serializable {
private static final long serialVersionUID = 1L;
@CreatedDate
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "create_date_time")
protected Date createDateTime;
@LastModifiedDate
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_date_time")
protected Date updatedDateTime;
@LastModifiedBy
@Column(name = "updated_by")
protected U updatedBy;
@CreatedBy
@Column(name = "create_by")
protected U createdBy;
@Column(name = "is_deleted")
protected boolean isDeleted = false;
}
@@ -11,9 +11,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.billpaymentservice.bbps.entites.UserEntity; import com.billpaymentservice.bbps.entites.UserEntity;
import com.billpaymentservice.bbps.entites.UsersDetails;
import com.billpaymentservice.bbps.repository.UserRepository; import com.billpaymentservice.bbps.repository.UserRepository;
import com.billpaymentservice.bbps.repository.UsersDetailsRepository;
@Service @Service
public class CustomUserDetailsService implements UserDetailsService { public class CustomUserDetailsService implements UserDetailsService {
@@ -2,13 +2,14 @@ package com.billpaymentservice.bbps.config;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager; import javax.net.ssl.X509TrustManager;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestClient; import org.springframework.web.client.RestClient;
@Configuration @Configuration
@@ -16,24 +17,31 @@ public class RestClientConfig {
@Bean @Bean
public RestClient restClient() throws Exception { public RestClient restClient() throws Exception {
// ✅ Create trust all SSL context
SSLContext sslContext = SSLContext.getInstance("TLS"); // Create Trust-All SSL context
TrustManager[] trustAllCerts = new TrustManager[]{ TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0]; return new X509Certificate[0];
} }
public void checkClientTrusted(X509Certificate[] certs, String authType) { public void checkClientTrusted(X509Certificate[] certs, String authType) {}
} public void checkServerTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
} }
}; };
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
// ✅ Create RestClient with custom SSL context // Use JDK's Simple HTTP client with custom SSL context
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setBufferRequestBody(false);
// Apply SSL context to HttpsURLConnection globally
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
return RestClient.builder() return RestClient.builder()
.requestFactory(new HttpComponentsClientHttpRequestFactory()) .requestFactory(requestFactory)
.build(); .build();
} }
} }
@@ -2,6 +2,7 @@ package com.billpaymentservice.bbps.config;
import java.util.Arrays; import java.util.Arrays;
import com.billpaymentservice.bbps.controller.AgentController;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
@@ -18,13 +19,16 @@ import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
@EnableWebSecurity @EnableWebSecurity
public class SecurityConfig { public class SecurityConfig {
private final AgentController agentController;
private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint;
private final JwtFilter jwtFilter; private final JwtFilter jwtFilter;
public SecurityConfig(JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint, JwtFilter jwtFilter) { public SecurityConfig(JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint, JwtFilter jwtFilter, AgentController agentController) {
this.jwtAuthenticationEntryPoint = jwtAuthenticationEntryPoint; this.jwtAuthenticationEntryPoint = jwtAuthenticationEntryPoint;
this.jwtFilter = jwtFilter; this.jwtFilter = jwtFilter;
this.agentController = agentController;
} }
@Bean @Bean
@@ -39,6 +43,8 @@ public class SecurityConfig {
"/swagger-resources/**", "/swagger-resources/**",
"/webjars/**", "/webjars/**",
"/error") "/error")
.permitAll()
.requestMatchers("/payment/callback/startPayment","/complaints/checkTicketStatus")
.permitAll().requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() .permitAll().requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.anyRequest().authenticated()) .anyRequest().authenticated())
.exceptionHandling(ex -> ex.authenticationEntryPoint(jwtAuthenticationEntryPoint)) .exceptionHandling(ex -> ex.authenticationEntryPoint(jwtAuthenticationEntryPoint))
@@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.billpaymentservice.bbps.dto.GeneralResp;
import com.billpaymentservice.bbps.dto.ResponseModel; import com.billpaymentservice.bbps.dto.ResponseModel;
import com.billpaymentservice.bbps.dto.request.BillFetchByBillIdRequest; import com.billpaymentservice.bbps.dto.request.BillFetchByBillIdRequest;
import com.billpaymentservice.bbps.dto.request.BillFetchByClientIdRequest; import com.billpaymentservice.bbps.dto.request.BillFetchByClientIdRequest;
@@ -19,6 +18,14 @@ import com.billpaymentservice.bbps.dto.request.FetchBillValidatestRequest;
import com.billpaymentservice.bbps.dto.response.BillDataResponse; import com.billpaymentservice.bbps.dto.response.BillDataResponse;
import com.billpaymentservice.bbps.dto.response.FetchBillValidateResponse; import com.billpaymentservice.bbps.dto.response.FetchBillValidateResponse;
import com.billpaymentservice.bbps.service.AgentService; import com.billpaymentservice.bbps.service.AgentService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RestController @RestController
@RequestMapping("/agent") @RequestMapping("/agent")
@@ -31,20 +38,22 @@ public class AgentController {
this.agentService = agentService; this.agentService = agentService;
} }
/** @PostMapping(value = "/requestBillFetch")
* Fetches bill details from external BBPS service @Operation(summary = "Initiate bill fetch request", description = "This API initiates a bill fetch request for the given customer/biller details.")
*/ @ApiResponses(value = {
@PostMapping(value = "/requestBillFetch", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill fetch request initiated successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> requestBillFetch(@Validated @RequestBody FetchBillRequest fetchBillRequest) { public ResponseEntity<ResponseModel> requestBillFetch(@Validated @RequestBody FetchBillRequest fetchBillRequest) {
ResponseModel response = agentService.initiateBillFetch(fetchBillRequest); ResponseModel response = agentService.initiateBillFetch(fetchBillRequest);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
/** @PostMapping(value = "/fetchBillById")
* Fetches bill details from external BBPS service @Operation(summary = "Fetch bill details by bill ID", description = "This API retrieves bill details from the BBPS system using the provided bill ID.")
*/ @ApiResponses(value = {
@PostMapping(value = "/fetchBillById", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill details fetched successfully by bill ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchBillById( public ResponseEntity<ResponseModel> fetchBillById(
@Validated @RequestBody BillFetchByBillIdRequest billFetchByBillIdRequest) { @Validated @RequestBody BillFetchByBillIdRequest billFetchByBillIdRequest) {
@@ -52,10 +61,11 @@ public class AgentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
/** @PostMapping(value = "/requestBillValidate")
* Fetches bill details validate from external BBPS service @Operation(summary = "Initiate bill validation request", description = "This API validates customer input and bill details .")
*/ @ApiResponses(value = {
@PostMapping(value = "/requestBillValidate", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill validation initiated successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> requestBillValidate( public ResponseEntity<ResponseModel> requestBillValidate(
@Validated @RequestBody FetchBillValidatestRequest fetchBillValidateRequest) { @Validated @RequestBody FetchBillValidatestRequest fetchBillValidateRequest) {
@@ -63,10 +73,11 @@ public class AgentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
/** @PostMapping(value = "/requestBillValidateByBillId")
* Fetches bill details by bill Id from external BBPS service @Operation(summary = "Bill validate by details by bill ID", description = "This API retrieves bill details from BBPS using the provided bill ID.")
*/ @ApiResponses(value = {
@PostMapping(value = "/requestBillValidateByBillId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill details fetched successfully by bill ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> requestBillByBillId( public ResponseEntity<ResponseModel> requestBillByBillId(
@Validated @RequestBody BillFetchByBillIdRequest billRequest) { @Validated @RequestBody BillFetchByBillIdRequest billRequest) {
@@ -74,7 +85,11 @@ public class AgentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/fetchBillByClientReqId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/fetchBillByClientReqId")
@Operation(summary = "Fetch bill details by client request ID", description = "This API fetches bill details using the client-generated request ID (clientReqId).")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill details fetched successfully using client request ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchBillByClientReqId( public ResponseEntity<ResponseModel> fetchBillByClientReqId(
@Validated @RequestBody BillFetchByClientIdRequest billFetchByClientIdRequest) { @Validated @RequestBody BillFetchByClientIdRequest billFetchByClientIdRequest) {
@@ -82,7 +97,11 @@ public class AgentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/fetchBillValidateByClientReqId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/fetchBillValidateByClientReqId")
@Operation(summary = "Fetch bill details by client request ID", description = "This API retrieves bill details using the client's request ID (clientReqId).")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Bill details fetched successfully using client request ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchBillValidateByClientReqId( public ResponseEntity<ResponseModel> fetchBillValidateByClientReqId(
@Validated @RequestBody BillValidateByClientIdRequest billValidateByClientIdRequest) { @Validated @RequestBody BillValidateByClientIdRequest billValidateByClientIdRequest) {
@@ -90,15 +109,24 @@ public class AgentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value="/callback/billFetch", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/callback/billFetch")
@Operation(summary = "Handle bill fetch callback", description = "This callback API is invoked by BBPS/Biller to send bill fetch response.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Callback received and processed successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> handleBillFetchCallback(@RequestBody BillDataResponse billDataResponse) { public ResponseEntity<ResponseModel> handleBillFetchCallback(@RequestBody BillDataResponse billDataResponse) {
ResponseModel genralResp = agentService.processBillFetchCallback(billDataResponse); ResponseModel genralResp = agentService.processBillFetchCallback(billDataResponse);
// Return a response indicating successful receipt // Return a response indicating successful receipt
return ResponseEntity.ok(genralResp); return ResponseEntity.ok(genralResp);
} }
@PostMapping(value="/callback/billValidate", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/callback/billValidate")
public ResponseEntity<ResponseModel> handleBillValidateCallback(@RequestBody FetchBillValidateResponse fetchBillValidateResponse) { @Operation(summary = "Handle bill validate callback", description = "This callback API is triggered by BBPS/Biller to send bill validation response.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Callback received and processed successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> handleBillValidateCallback(
@RequestBody FetchBillValidateResponse fetchBillValidateResponse) {
ResponseModel genralResp = agentService.processBillValidateCallback(fetchBillValidateResponse); ResponseModel genralResp = agentService.processBillValidateCallback(fetchBillValidateResponse);
// Return a response indicating successful receipt // Return a response indicating successful receipt
return ResponseEntity.ok(genralResp); return ResponseEntity.ok(genralResp);
@@ -10,14 +10,18 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.billpaymentservice.bbps.dto.ResponseModel; 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.LoginRequest;
import com.billpaymentservice.bbps.dto.auth.OtpSendResponse;
import com.billpaymentservice.bbps.dto.auth.RegisterRequest; import com.billpaymentservice.bbps.dto.auth.RegisterRequest;
import com.billpaymentservice.bbps.dto.auth.VerifyOtpRequest; import com.billpaymentservice.bbps.dto.auth.VerifyOtpRequest;
import com.billpaymentservice.bbps.service.AuthService; import com.billpaymentservice.bbps.service.AuthService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@RestController @RestController
@@ -32,25 +36,42 @@ public class AuthController {
this.authService = authService; this.authService = authService;
} }
@PostMapping(value = "/sendOtp", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/sendOtp")
@Operation(summary = "Send OTP to user", description = "This API sends an OTP to the user's registered mobile number for authentication.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "OTP sent successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> sendOtp(@Validated @RequestBody LoginRequest request) { public ResponseEntity<ResponseModel> sendOtp(@Validated @RequestBody LoginRequest request) {
log.info("Received sendOtp request for mobile: {}", request.getMobile()); log.info("Received sendOtp request for mobile: {}", request.getMobile());
return ResponseEntity.ok(authService.sendOtp(request)); return ResponseEntity.ok(authService.sendOtp(request));
} }
@PostMapping(value = "/verifyOtp", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/verifyOtp")
@Operation(summary = "Verify OTP", description = "This API verifies the OTP entered by the user and validates the authentication flow.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "OTP verified successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> verifyOtp(@Validated @RequestBody VerifyOtpRequest request) { public ResponseEntity<ResponseModel> verifyOtp(@Validated @RequestBody VerifyOtpRequest request) {
return ResponseEntity.ok(authService.verifyOtp(request)); return ResponseEntity.ok(authService.verifyOtp(request));
} }
@PostMapping(value = "/register", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/register")
@Operation(summary = "Register a new user", description = "This API registers a new user into the system by validating the provided registration details.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "User registered successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> register(@Validated @RequestBody RegisterRequest request) { public ResponseEntity<ResponseModel> register(@Validated @RequestBody RegisterRequest request) {
return ResponseEntity.ok(authService.registerUser(request)); return ResponseEntity.ok(authService.registerUser(request));
} }
@PostMapping("/loginWithoutDecryption") @PostMapping("/loginWithoutDecryption")
@Operation(summary = "Login without decryption (Testing Only)", description = "This API is used only for testing purposes. It authenticates the user without decrypting the credentials, typically used when token generation fails or decryption flow is not enabled.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "User authenticated successfully (Testing Only)", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> login(@RequestBody LoginRequest loginRequest) { public ResponseEntity<ResponseModel> login(@RequestBody LoginRequest loginRequest) {
return ResponseEntity.ok(authService.authenticateUser(loginRequest)); return ResponseEntity.ok(authService.authenticateUser(loginRequest));
@@ -16,10 +16,16 @@ import com.billpaymentservice.bbps.dto.request.AllMasterOptionsRequest;
import com.billpaymentservice.bbps.dto.request.ComplainStatusRequest; import com.billpaymentservice.bbps.dto.request.ComplainStatusRequest;
import com.billpaymentservice.bbps.dto.request.ComplaintRequestDTO; import com.billpaymentservice.bbps.dto.request.ComplaintRequestDTO;
import com.billpaymentservice.bbps.dto.request.GetTicketLatestStausRequest; import com.billpaymentservice.bbps.dto.request.GetTicketLatestStausRequest;
import com.billpaymentservice.bbps.dto.request.ViewAllComplaintsRequest;
import com.billpaymentservice.bbps.dto.request.ViewAllComplaintsTicketsRequest; import com.billpaymentservice.bbps.dto.request.ViewAllComplaintsTicketsRequest;
import com.billpaymentservice.bbps.service.ComplainService; import com.billpaymentservice.bbps.service.ComplainService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RestController @RestController
@RequestMapping("/complaints") @RequestMapping("/complaints")
@@ -31,19 +37,26 @@ public class ComplainController {
private final ComplainService complainService; private final ComplainService complainService;
// ✅ Constructor name fixed and variable consistent
public ComplainController(ComplainService complainService) { public ComplainController(ComplainService complainService) {
this.complainService = complainService; this.complainService = complainService;
} }
@PostMapping(value = "/addComplainTicket", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/addComplainTicket")
@Operation(summary = "Add complaint ticket", description = "This API creates a new complaint ticket based on the provided request details.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Complaint ticket created successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> addComplain(@Validated @RequestBody ComplaintRequestDTO complainRequestDTO) { public ResponseEntity<ResponseModel> addComplain(@Validated @RequestBody ComplaintRequestDTO complainRequestDTO) {
ResponseModel response = complainService.addComplain(complainRequestDTO); ResponseModel response = complainService.addComplain(complainRequestDTO);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/checkTicketStatus", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/checkTicketStatus")
@Operation(summary = "Fetch latest complaint ticket status", description = "This API retrieves the latest status of a complaint ticket based on the provided ticket ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Complaint ticket status fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getComplaintStatus( public ResponseEntity<ResponseModel> getComplaintStatus(
@Validated @RequestBody GetTicketLatestStausRequest request) { @Validated @RequestBody GetTicketLatestStausRequest request) {
log.info("Received complaint status request for complaintId: {}", request.getTicketId()); log.info("Received complaint status request for complaintId: {}", request.getTicketId());
@@ -51,7 +64,11 @@ public class ComplainController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/viewComplainsTicketHistory", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/viewComplainsTicketHistory")
@Operation(summary = "View complaint ticket history", description = "This API retrieves the full complaint history for the provided ticket ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Complaint ticket history fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> viewComplaintHistory(@Validated @RequestBody ComplainStatusRequest request) { public ResponseEntity<ResponseModel> viewComplaintHistory(@Validated @RequestBody ComplainStatusRequest request) {
log.info("Received complaint View Complaint History request for ticketId: {}", request.getTicketId()); log.info("Received complaint View Complaint History request for ticketId: {}", request.getTicketId());
ResponseModel response = complainService.viewComplaintHistory(request); ResponseModel response = complainService.viewComplaintHistory(request);
@@ -59,6 +76,10 @@ public class ComplainController {
} }
@PostMapping("/viewTicketById") @PostMapping("/viewTicketById")
@Operation(summary = "View complaint details by ID", description = "This API retrieves the complaint details for the given complaint ticket ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Complaint details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> viewComplaintById(@Validated @RequestBody ComplainStatusRequest request) { public ResponseEntity<ResponseModel> viewComplaintById(@Validated @RequestBody ComplainStatusRequest request) {
log.info("Received complaint View Complaint By ID request for complaintId: {}", request.getTicketId()); log.info("Received complaint View Complaint By ID request for complaintId: {}", request.getTicketId());
ResponseModel response = complainService.viewComplaintById(request); ResponseModel response = complainService.viewComplaintById(request);
@@ -66,19 +87,33 @@ public class ComplainController {
} }
@PostMapping("/allMasterOptions") @PostMapping("/allMasterOptions")
@Operation(summary = "Fetch all master options by ID", description = "This API retrieves all master option values based on the provided ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Master options fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getAllStatuses(@Validated @RequestBody AllMasterOptionsRequest request) { public ResponseEntity<ResponseModel> getAllStatuses(@Validated @RequestBody AllMasterOptionsRequest request) {
return ResponseEntity.ok(complainService.getAllActiveStatuses(request)); return ResponseEntity.ok(complainService.getAllActiveStatuses(request));
} }
@PostMapping("/viewAllComplaints") @PostMapping("/viewAllComplaints")
public ResponseEntity<ResponseModel> viewAllComplaints(@RequestBody ViewAllComplaintsTicketsRequest request) { @Operation(summary = "View all complaints by status type", description = "This API retrieves all complaints filtered by the provided status type.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "All complaints fetched successfully based on status type", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> viewAllComplaints(
@Validated @RequestBody ViewAllComplaintsTicketsRequest request) {
log.info("Received request complaint View All Complaints for Status Type={}", request.getStatusType()); log.info("Received request complaint View All Complaints for Status Type={}", request.getStatusType());
ResponseModel response = complainService.ViewAllComplaints(request); ResponseModel response = complainService.ViewAllComplaints(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/viewAllComplaintsByUserId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/viewAllComplaintsByUserId")
public ResponseEntity<ResponseModel> viewAllComplaintsByUserId(@Validated @RequestBody AllMasterOptionsRequest request) { @Operation(summary = "View all complaints by user ID", description = "This API retrieves all complaint tickets associated with the provided user ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "All complaints fetched successfully by user ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> viewAllComplaintsByUserId(
@Validated @RequestBody AllMasterOptionsRequest request) {
ResponseModel response = complainService.viewAllComplaintsByUserId(request); ResponseModel response = complainService.viewAllComplaintsByUserId(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@@ -16,13 +16,18 @@ import com.billpaymentservice.bbps.dto.request.BillerDetailRequest;
import com.billpaymentservice.bbps.dto.request.ContactMasterRequest; import com.billpaymentservice.bbps.dto.request.ContactMasterRequest;
import com.billpaymentservice.bbps.dto.request.CustomParamRequest; import com.billpaymentservice.bbps.dto.request.CustomParamRequest;
import com.billpaymentservice.bbps.dto.request.DispositionRequest; import com.billpaymentservice.bbps.dto.request.DispositionRequest;
import com.billpaymentservice.bbps.dto.request.LoginRequest;
import com.billpaymentservice.bbps.dto.request.MasterCategoryRequest; import com.billpaymentservice.bbps.dto.request.MasterCategoryRequest;
import com.billpaymentservice.bbps.dto.request.MasterRequest; import com.billpaymentservice.bbps.dto.request.MasterRequest;
import com.billpaymentservice.bbps.dto.request.PlanRequest; import com.billpaymentservice.bbps.dto.request.PlanRequest;
import com.billpaymentservice.bbps.dto.response.AuthResponses;
import com.billpaymentservice.bbps.service.MasterDataService; import com.billpaymentservice.bbps.service.MasterDataService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@RequestMapping("/masterData") @RequestMapping("/masterData")
@@ -39,8 +44,12 @@ public class MasterDataController {
this.masterDataService = masterDataService; this.masterDataService = masterDataService;
} }
/** Get Details of the biller by billId **/ @PostMapping(value = "/getBillerDetails")
@PostMapping(value = "/getBillerDetails", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Fetch biller details", description = "Get biller details by biller id and returns the result")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Biller details fetch successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getBillerDetails(@Valid @RequestBody BillerDetailRequest billerDetailRequest) { public ResponseEntity<ResponseModel> getBillerDetails(@Valid @RequestBody BillerDetailRequest billerDetailRequest) {
log.info("Received biller details request for billerId: {}", billerDetailRequest.getBillerId()); log.info("Received biller details request for billerId: {}", billerDetailRequest.getBillerId());
@@ -48,32 +57,41 @@ public class MasterDataController {
return ResponseEntity.ok(masterDataService.getBillerByBillerId(billerDetailRequest)); return ResponseEntity.ok(masterDataService.getBillerByBillerId(billerDetailRequest));
} }
/** Get Master Contact **/ @PostMapping(value = "/getContactMasterResponse")
@PostMapping(value = "/getContactMasterResponse", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Fetch contact master data", description = "Fetch contact master and returns the response")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Fetch contact master response fetch successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getContactMaster( public ResponseEntity<ResponseModel> getContactMaster(
@Validated @RequestBody ContactMasterRequest contactMasterRequest) { @Validated @RequestBody ContactMasterRequest contactMasterRequest) {
return ResponseEntity.ok(masterDataService.getContactMaster(contactMasterRequest)); return ResponseEntity.ok(masterDataService.getContactMaster(contactMasterRequest));
} }
@PostMapping(value = "/getDispostionDetail", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/getDispostionDetail")
@Operation(summary = "Fetch disposition details", description = "Fetch disposition details for a given ticket and return the response")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Disposition details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
public ResponseEntity<ResponseModel> getDispostionDetail( public ResponseEntity<ResponseModel> getDispostionDetail(
@Validated @RequestBody DispositionRequest dispositionDetailRequest) { @Validated @RequestBody DispositionRequest dispositionDetailRequest) {
return ResponseEntity.ok(masterDataService.getDispositionDetails(dispositionDetailRequest)); return ResponseEntity.ok(masterDataService.getDispositionDetails(dispositionDetailRequest));
} }
@PostMapping(value = "/getTicketDispositions", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/getTicketDispositions")
@Operation(summary = "Fetch ticket disposition details", description = "Fetch ticket disposition details for a given ticket and return the response")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Ticket disposition details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
public ResponseEntity<ResponseModel> getTicketDispositions( public ResponseEntity<ResponseModel> getTicketDispositions(
@Validated @RequestBody DispositionRequest dispositionDetailRequest) { @Validated @RequestBody DispositionRequest dispositionDetailRequest) {
return ResponseEntity.ok(masterDataService.getTicketDispositions(dispositionDetailRequest)); return ResponseEntity.ok(masterDataService.getTicketDispositions(dispositionDetailRequest));
} }
/** @PostMapping(value = "/getCustomerParamDetails")
* Get CustomerParam by billerId.The parameter is different from the data we are @Operation(summary = "Fetch customer parameter details by biller ID", description = "API fetches the customer parameter configuration based on the provided biller ID.")
* getting in the billerDetail @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Customer parameter details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
@PostMapping(value = "/getCustomerParamDetails", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseModel> getCustomerParamDetails( public ResponseEntity<ResponseModel> getCustomerParamDetails(
@Validated @RequestBody CustomParamRequest customerParamRequest) { @Validated @RequestBody CustomParamRequest customerParamRequest) {
@@ -82,68 +100,68 @@ public class MasterDataController {
return ResponseEntity.ok(masterDataService.getCustomerParamByBillerId(customerParamRequest)); return ResponseEntity.ok(masterDataService.getCustomerParamByBillerId(customerParamRequest));
} }
/**
* Get All Master Data .The parameter is different from the data we are getting
* Made By Arham in the MasterRequest
**/
@PostMapping("/getAllMastersData") @PostMapping("/getAllMastersData")
@Operation(summary = "Fetch all master data", description = "API retrieves all the master data based on the provided .")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Master data fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseModel fetchMasterData(@Validated @RequestBody MasterRequest masterRequest) { public ResponseModel fetchMasterData(@Validated @RequestBody MasterRequest masterRequest) {
return masterDataService.getMasterData(masterRequest); return masterDataService.getMasterData(masterRequest);
} }
/** @PostMapping(value = "/getMasterCategoryWise")
* POST Master CategoryResponseList Wise API Fetch CategoryResponseList Wise @Operation(summary = "Fetch master data category-wise", description = "API retrieves master data based on the selected category.")
* from BBPS URL Made By Arham @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Category-wise master data fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/getMasterCategoryWise", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> getMasterDataCategoryWise( public ResponseEntity<ResponseModel> getMasterDataCategoryWise(
@Valid @RequestBody MasterCategoryRequest masterRequest) { @Valid @RequestBody MasterCategoryRequest masterRequest) {
return ResponseEntity.ok(masterDataService.fetchMasterDataCategoryWise(masterRequest)); return ResponseEntity.ok(masterDataService.fetchMasterDataCategoryWise(masterRequest));
} }
/** @PostMapping(value = "/customerParamGroupsByBillerId")
* POST Customer Param Groups API Fetch CategoryResponseList Wise from BBPS URL @Operation(summary = "Fetch customer parameter groups by biller ID", description = "API retrieves all customer parameter groups configured for the specified biller ID.")
* Made By Arham @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Customer parameter groups fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/customerParamGroupsByBillerId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> getCustomerParamGroup( public ResponseEntity<ResponseModel> getCustomerParamGroup(
@Validated @RequestBody BillerDetailRequest requestModel) { @Validated @RequestBody BillerDetailRequest requestModel) {
return ResponseEntity.ok(masterDataService.fetchCustomerParamGroup(requestModel)); return ResponseEntity.ok(masterDataService.fetchCustomerParamGroup(requestModel));
} }
/** @PostMapping(value = "/fetchAmountOptionsByBillerId")
* POST Fetch All AMount Options By Biller Id API Fetch CategoryResponseList @Operation(summary = "Fetch all master amount options by biller ID", description = "API retrieves all the master amount options configured for the given biller ID.")
* Wise from BBPS URL Made By Arham @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Master amount options fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/fetchAmountOptionsByBillerId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchAllMasterAmountOptionsByBillerId( public ResponseEntity<ResponseModel> fetchAllMasterAmountOptionsByBillerId(
@Validated @RequestBody BillerDetailRequest requestModel) { @Validated @RequestBody BillerDetailRequest requestModel) {
return ResponseEntity.ok(masterDataService.fetchAllMasterAmountOption(requestModel)); return ResponseEntity.ok(masterDataService.fetchAllMasterAmountOption(requestModel));
} }
/** @PostMapping(value = "/fetchAllPlanCategoriesByBillerId")
* POST Fetch All AMount Options By Biller Id API Fetch CategoryResponseList @Operation(summary = "Fetch plan categories by biller ID", description = "API retrieves all plan categories available for the specified biller ID.")
* Wise from BBPS URL Made By Arham @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Plan categories fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/fetchAllPlanCategoriesByBillerId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchPlanCategories(@Validated @RequestBody BillerDetailRequest requestModel) { public ResponseEntity<ResponseModel> fetchPlanCategories(@Validated @RequestBody BillerDetailRequest requestModel) {
return ResponseEntity.ok(masterDataService.fetchPlanCategorie(requestModel)); return ResponseEntity.ok(masterDataService.fetchPlanCategorie(requestModel));
} }
/** @PostMapping(value = "/initiatingChannel")
* POST Fetch Initiating Channel API Fetch CategoryResponseList Wise from BBPS @Operation(summary = "Fetch initiating channel details by biller ID", description = "API retrieves initiating channel information configured for the specified biller ID.")
* URL Made By Arham @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Initiating channel details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/initiatingChannel", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> initiatingChannel(@Validated @RequestBody BillerDetailRequest requestModel) { public ResponseEntity<ResponseModel> initiatingChannel(@Validated @RequestBody BillerDetailRequest requestModel) {
return ResponseEntity.ok(masterDataService.fetchInitiatingChannel(requestModel)); return ResponseEntity.ok(masterDataService.fetchInitiatingChannel(requestModel));
} }
/** @PostMapping(value = "/fetchPlanByCategoryName")
* POST Fetch All AMount Options By Biller Id API Fetch CategoryResponseList @Operation(summary = "Fetch plans by category name", description = "API retrieves all available plans for the specified category name.")
* Wise from BBPS Made By Arham URL @ApiResponses(value = {
**/ @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Plans fetched successfully based on category name", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@PostMapping(value = "/fetchPlanByCategoryName", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @ApiDocCommonResponses
public ResponseEntity<ResponseModel> fetchPlanByCategory(@Validated @RequestBody PlanRequest requestModel) { public ResponseEntity<ResponseModel> fetchPlanByCategory(@Validated @RequestBody PlanRequest requestModel) {
return ResponseEntity.ok(masterDataService.fetchPlanByCategories(requestModel)); return ResponseEntity.ok(masterDataService.fetchPlanByCategories(requestModel));
} }
@@ -12,10 +12,16 @@ import com.billpaymentservice.bbps.dto.ResponseModel;
import com.billpaymentservice.bbps.dto.request.BillPaymentRequest; import com.billpaymentservice.bbps.dto.request.BillPaymentRequest;
import com.billpaymentservice.bbps.dto.request.TransactionStatusRequest; import com.billpaymentservice.bbps.dto.request.TransactionStatusRequest;
import com.billpaymentservice.bbps.dto.request.TrasactionStatusByClientReqIdRequest; import com.billpaymentservice.bbps.dto.request.TrasactionStatusByClientReqIdRequest;
import com.billpaymentservice.bbps.dto.response.TransactionStatusResponse;
import com.billpaymentservice.bbps.service.PaymentService; import com.billpaymentservice.bbps.service.PaymentService;
import com.billpaymentservice.bbps.service.PaymentStartService; import com.billpaymentservice.bbps.service.PaymentStartService;
import com.billpaymentservice.bbps.dto.request.PaymentStartUserRequest; import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RestController @RestController
@RequestMapping("/agent/payment") @RequestMapping("/agent/payment")
@@ -28,21 +34,27 @@ public class PaymentController {
private final PaymentService paymentService; private final PaymentService paymentService;
private final PaymentStartService paymentStartService; private final PaymentStartService paymentStartService;
// New constructor used by Spring to inject both services
public PaymentController(PaymentService paymentService, PaymentStartService paymentStartService) { public PaymentController(PaymentService paymentService, PaymentStartService paymentStartService) {
this.paymentService = paymentService; this.paymentService = paymentService;
this.paymentStartService = paymentStartService; this.paymentStartService = paymentStartService;
} }
@PostMapping(value = "/intiatePayment", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/intiatePayment")
@Operation(summary = "Initiate payment request", description = "This API initiates the payment process for the provided bill payment request.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Payment initiated successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> requestBillFetch( public ResponseEntity<ResponseModel> requestBillFetch(
@Validated @RequestBody BillPaymentRequest billPaymentRequest) { @RequestBody BillPaymentRequest billPaymentRequest) {
ResponseModel response = paymentService.initiatePayment(billPaymentRequest); ResponseModel response = paymentService.initiatePayment(billPaymentRequest);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/checkTransactionStatus", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/checkTransactionStatus")
@Operation(summary = "Check transaction status", description = "This API checks the current status of a bill payment transaction using transactionId or clientReqId.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Transaction status fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> checkTransactionStatus( public ResponseEntity<ResponseModel> checkTransactionStatus(
@Validated @RequestBody TransactionStatusRequest transactionStatusRequest) { @Validated @RequestBody TransactionStatusRequest transactionStatusRequest) {
@@ -50,7 +62,11 @@ public class PaymentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/checkTransactionStatusByClientReqId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/checkTransactionStatusByClientReqId")
@Operation(summary = "Check transaction status by client request ID", description = "This API checks the payment transaction status using the client-generated request ID (clientReqId).")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Transaction status fetched successfully using clientReqId", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> checkTransactionStatusByClientReqId( public ResponseEntity<ResponseModel> checkTransactionStatusByClientReqId(
@Validated @RequestBody TrasactionStatusByClientReqIdRequest transactionStatusRequest) { @Validated @RequestBody TrasactionStatusByClientReqIdRequest transactionStatusRequest) {
@@ -58,8 +74,4 @@ public class PaymentController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
} }
@@ -0,0 +1,42 @@
package com.billpaymentservice.bbps.controller;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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.request.PollBackRequest;
import com.billpaymentservice.bbps.service.PollBackService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RequestMapping("/payment")
@RestController
public class PaymentPollBackController {
private final PollBackService pollBackService;
public PaymentPollBackController(PollBackService pollBackService) {
this.pollBackService = pollBackService;
}
@PostMapping(value = "/pollback")
@Operation(summary = "Process poll-back request", description = "This API handles the poll-back request from biller.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Poll Back processed successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> startIntentPayment(@Validated @RequestBody PollBackRequest pollBackRequest) {
ResponseModel response = pollBackService.managePollBack(pollBackRequest);
return ResponseEntity.ok(response);
}
}
@@ -12,9 +12,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.billpaymentservice.bbps.dto.ResponseModel; import com.billpaymentservice.bbps.dto.ResponseModel;
import com.billpaymentservice.bbps.dto.request.PaymentStartUserRequest;
import com.billpaymentservice.bbps.dto.request.CallbackRequest; import com.billpaymentservice.bbps.dto.request.CallbackRequest;
import com.billpaymentservice.bbps.dto.request.PaymentStartUserRequest;
import com.billpaymentservice.bbps.service.PaymentStartService; import com.billpaymentservice.bbps.service.PaymentStartService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
@RestController @RestController
@RequestMapping("/payment") @RequestMapping("/payment")
@@ -25,14 +33,23 @@ public class PaymentStartController {
this.paymentStartService = paymentStartService; this.paymentStartService = paymentStartService;
} }
@PostMapping(value = "/startWebPayment", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/startWebPayment")
public ResponseEntity<ResponseModel> startWebPayment(@Validated @RequestBody PaymentStartUserRequest paymentStartUserRequest) { @Operation(summary = "Start web payment process", description = "This API initiates the payment process for a web-based transaction using user and bill details.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Payment process started successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> startWebPayment(
@Validated @RequestBody PaymentStartUserRequest paymentStartUserRequest) {
ResponseModel response = paymentStartService.startWebPayment(paymentStartUserRequest); ResponseModel response = paymentStartService.startWebPayment(paymentStartUserRequest);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/callback/startPayment", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/callback/startPayment")
@Operation(summary = "Handle start payment callback", description = "This callback API is invoked by the payment gateway/BBPS to confirm the payment initiation status.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Start Payment Callback handled successfully", content = @Content(mediaType = "application/json")) })
@ApiDocCommonResponses
public ResponseEntity<Map<String, String>> handleCallback(@RequestBody CallbackRequest callbackRequest) { public ResponseEntity<Map<String, String>> handleCallback(@RequestBody CallbackRequest callbackRequest) {
ResponseModel resp = paymentStartService.handleStartCallback(callbackRequest); ResponseModel resp = paymentStartService.handleStartCallback(callbackRequest);
Map<String, String> result = new HashMap<>(); Map<String, String> result = new HashMap<>();
@@ -41,12 +58,15 @@ public class PaymentStartController {
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }
@PostMapping(value = "/startIntentPayment", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/startIntentPayment")
public ResponseEntity<ResponseModel> startIntentPayment(@Validated @RequestBody PaymentStartUserRequest paymentStartUserRequest) { @Operation(summary = "Start intent payment process", description = "This API initiates the intent-based payment process for a user.")
if (this.paymentStartService == null) { @ApiResponses(value = {
// Defensive: if bean not injected, return failure @ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Intent payment started successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))), })
return ResponseEntity.badRequest().body(new ResponseModel("PaymentStartService not available", "FAILED", 400, null)); @ApiDocCommonResponses
} public ResponseEntity<ResponseModel> startIntentPayment(
@Validated @RequestBody PaymentStartUserRequest paymentStartUserRequest) {
ResponseEntity.badRequest().body(new ResponseModel("PaymentStartService not available", "FAILED", 400, null));
ResponseModel response = paymentStartService.startIntentPayment(paymentStartUserRequest); ResponseModel response = paymentStartService.startIntentPayment(paymentStartUserRequest);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@@ -13,7 +13,14 @@ import com.billpaymentservice.bbps.dto.ResponseModel;
import com.billpaymentservice.bbps.dto.request.PaymentHistoryByTxnRequest; import com.billpaymentservice.bbps.dto.request.PaymentHistoryByTxnRequest;
import com.billpaymentservice.bbps.dto.request.PaymentHistoryRequest; import com.billpaymentservice.bbps.dto.request.PaymentHistoryRequest;
import com.billpaymentservice.bbps.service.TxnHistoryService; import com.billpaymentservice.bbps.service.TxnHistoryService;
import com.billpaymentservice.bbps.util.ApiDocCommonResponses;
import com.billpaymentservice.bbps.util.BBPSConstant;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@RestController @RestController
@@ -29,7 +36,11 @@ public class TxnHistoryController {
} }
@PostMapping(value = "/paymentHistoryDetails", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/paymentHistoryDetails")
@Operation(summary = "Get payment history details", description = "This API retrieves the payment history for a user based.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Payment history fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getPaymentHistory( public ResponseEntity<ResponseModel> getPaymentHistory(
@Validated @RequestBody PaymentHistoryRequest paymentHistoryRequest) { @Validated @RequestBody PaymentHistoryRequest paymentHistoryRequest) {
@@ -37,7 +48,11 @@ public class TxnHistoryController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(value = "/paymentHistoryByTxnId", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/paymentHistoryByTxnId")
@Operation(summary = "Get payment history by transaction ID", description = "This API retrieves the payment details for a specific transaction using the provided transaction ID.")
@ApiResponses(value = {
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Payment history fetched successfully by transaction ID", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
@ApiDocCommonResponses
public ResponseEntity<ResponseModel> getPaymentHistoryByTxnId( public ResponseEntity<ResponseModel> getPaymentHistoryByTxnId(
@Validated @RequestBody PaymentHistoryByTxnRequest request) { @Validated @RequestBody PaymentHistoryByTxnRequest request) {
@@ -3,6 +3,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -12,6 +14,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdditionalInfo { public class AdditionalInfo {
private UUID planAdditionalInfoId; private UUID planAdditionalInfoId;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,6 +11,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdditionalInfoBillDTO { public class AdditionalInfoBillDTO {
private String additionalInfoId; private String additionalInfoId;
private String name; private String name;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdditionalInfoBillValidateDTO { public class AdditionalInfoBillValidateDTO {
String name; String name;
String value; String value;
@@ -1,10 +1,15 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdditionalInfoDTO { public class AdditionalInfoDTO {
@NotBlank(message = "Param Config ID cannot be blank") @NotBlank(message = "Param Config ID cannot be blank")
private String paramConfigId; private String paramConfigId;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
@@ -7,6 +9,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class AgentFundTransfer { public class AgentFundTransfer {
@NotBlank private String fundTxnReferenceId; @NotBlank private String fundTxnReferenceId;
@NotBlank private String fundTxnRemarks; @NotBlank private String fundTxnRemarks;
@@ -1,11 +1,17 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class AmountOptionDTO{ public class AmountOptionDTO{
private String amountOptionId; // Matches "amountOptionId" from JSON private String amountOptionId; // Matches "amountOptionId" from JSON
private List<String> amountBreakupSets; // Reference to BillerResponseParams (only ID, not full entity) private List<String> amountBreakupSets; // Reference to BillerResponseParams (only ID, not full entity)
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillAdditionalInfoDTO { public class BillAdditionalInfoDTO {
private String additionalInfoId; private String additionalInfoId;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillCustomerParamsDTO { public class BillCustomerParamsDTO {
private String name; private String name;
@@ -1,10 +1,15 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillerAdditonalInfoDTO { public class BillerAdditonalInfoDTO {
private String paramConfigId; private String paramConfigId;
private String paramName; private String paramName;
@@ -2,17 +2,18 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class BillerDTO { public class BillerDTO {
@NotBlank(message = "Biller ID is mandatory") @NotBlank(message = "Biller ID is mandatory")
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,6 +11,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillerIconDTO { public class BillerIconDTO {
private String icon_data; // Base64 or image data private String icon_data; // Base64 or image data
@@ -3,10 +3,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class BillerPlanResponseParamsDTO { public class BillerPlanResponseParamsDTO {
private String billerPlanResponseId; private String billerPlanResponseId;
private String paramsJson; private String paramsJson;
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillerResponseBill { public class BillerResponseBill {
private String billId; private String billId;
private String amount; private String amount;
@@ -2,11 +2,16 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillerResponseParamsDTO { public class BillerResponseParamsDTO {
private String billerResponseId; private String billerResponseId;
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.UUID; import java.util.UUID;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ChannelDTO { public class ChannelDTO {
private UUID channelId; // Machine-generated Unique ID assigned internally private UUID channelId; // Machine-generated Unique ID assigned internally
@@ -2,11 +2,14 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class CheckClientBillerResponseDTO { public class CheckClientBillerResponseDTO {
private String billId; private String billId;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class CloseComplaintDTO { public class CloseComplaintDTO {
private String complaintId; private String complaintId;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplaintHistoryDTO { public class ComplaintHistoryDTO {
private String historyId; private String historyId;
@@ -0,0 +1,27 @@
package com.billpaymentservice.bbps.dto;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplaintResponseDto {
private String ticketId;
private String ticketType;
private String txnNpciId;
private String status;
private String userId;
private String ticketDesp;
private String ticketDesr;
private List<ComplaintStatusDto> complaintStatusList;
private List<ComplaintHistoryDTO> historyList;
private List<ComplaintStatusDetailsDto> statusDetailsList;
private List<ViewAllComplaintDto> viewAllList;
}
@@ -0,0 +1,21 @@
package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplaintStatusDetailsDto {
private String ticketStatus;
private String ticketType;
private String txnAmount;
private String billerName;
private String ticketId;
private String totalTxnAmount;
private String billCategory;
}
@@ -0,0 +1,20 @@
package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplaintStatusDto {
private String ticketId;
private String npciTicketStatus;
private String ticketDespo;
private String createdTime;
private String npciTicketType;
}
@@ -1,5 +1,6 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
@@ -7,6 +8,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ContactMaster { public class ContactMaster {
private String mobNo; private String mobNo;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -13,6 +15,7 @@ import lombok.ToString;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomParamDTO { public class CustomParamDTO {
private String customParamName; private String customParamName;
private String dataType; private String dataType;
@@ -1,13 +1,18 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomerParamDTO { public class CustomerParamDTO {
private String paramConfigId; private String paramConfigId;
@NotBlank(message = "Parameter name is required") @NotBlank(message = "Parameter name is required")
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@@ -8,6 +10,7 @@ import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomerParamGroupsDTO { public class CustomerParamGroupsDTO {
private List<GroupDTO> groups; private List<GroupDTO> groups;
} }
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomerParamsRequest { public class CustomerParamsRequest {
private List<Tag> tags; private List<Tag> tags;
} }
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -10,6 +12,7 @@ import lombok.Setter;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Detail { public class Detail {
private String name; private String name;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeviceBlockTag { public class DeviceBlockTag {
private String name; private String name;
private String tagId; private String tagId;
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeviceDetail { public class DeviceDetail {
private List<Detail> detail; private List<Detail> detail;
@@ -1,11 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class DispositionsDTO { public class DispositionsDTO {
private String dispositionId; private String dispositionId;
private String dispositionDescr; private String dispositionDescr;
@@ -1,10 +1,16 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Setter @Setter
@Getter @Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class FaqDetailsResponse { public class FaqDetailsResponse {
private String name; private String name;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,8 @@ import lombok.ToString;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class GeneralResp { public class GeneralResp {
private String statusCode; private String statusCode;
private String status; private String status;
@@ -2,11 +2,16 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class GroupDTO { public class GroupDTO {
private String groupId; private String groupId;
@@ -6,10 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class InterchangeFeeConfDTO { public class InterchangeFeeConfDTO {
@NotBlank(message = "Interchange Fee Config ID cannot be blank") @NotBlank(message = "Interchange Fee Config ID cannot be blank")
private String interChangeFeeConfId; private String interChangeFeeConfId;
@@ -6,10 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class InterchangeFeeDTO { public class InterchangeFeeDTO {
@NotBlank(message = "Interchange Fee ID cannot be blank") @NotBlank(message = "Interchange Fee ID cannot be blank")
private String interchangeFeeId; private String interchangeFeeId;
@@ -1,11 +1,16 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class InterchangeFeeDetailDTO { public class InterchangeFeeDetailDTO {
private String interchangeFeeDetId; private String interchangeFeeDetId;
@@ -3,6 +3,7 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.billpaymentservice.bbps.dto.response.CategoryResponse; import com.billpaymentservice.bbps.dto.response.CategoryResponse;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -16,6 +17,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class MasterApiResponse { public class MasterApiResponse {
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,6 +11,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class MasterCategoryBillerResponse { public class MasterCategoryBillerResponse {
private String billerId; private String billerId;
@@ -1,12 +1,17 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentChannelDTO { public class PaymentChannelDTO {
private String paymentChannelLimitId; private String paymentChannelLimitId;
@@ -7,10 +7,12 @@ import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.PositiveOrZero; import jakarta.validation.constraints.PositiveOrZero;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class PaymentModeDTO { public class PaymentModeDTO {
@NotBlank(message = "Payment model limit ID cannot be blank") @NotBlank(message = "Payment model limit ID cannot be blank")
private String paymentModelLimitId; private String paymentModelLimitId;
@@ -0,0 +1,16 @@
package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentPollBackResponse {
private String txnId;
private String orderId;
private String txnStatus;
}
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentStartReturnDto { public class PaymentStartReturnDto {
private String amount; private String amount;
private String orderNo; private String orderNo;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentStatusDataResponse { public class PaymentStatusDataResponse {
private String amount; private String amount;
private String orderNo; private String orderNo;
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class PlanDTO { public class PlanDTO {
private String planId; private String planId;
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.UUID; import java.util.UUID;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class PlanTag { public class PlanTag {
private UUID tagId; private UUID tagId;
@@ -2,6 +2,8 @@ package com.billpaymentservice.bbps.dto;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class PlansListDTO { public class PlansListDTO {
private List<PlanDTO> plans; private List<PlanDTO> plans;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,6 +11,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class RemitterIdentity { public class RemitterIdentity {
private String name; private String name;
private String value; private String value;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -9,6 +11,8 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Builder @Builder
@JsonIgnoreProperties(ignoreUnknown = true)
public class ResponseModel<T> { public class ResponseModel<T> {
private String message; private String message;
@@ -1,5 +1,8 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,7 +12,9 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Tag { public class Tag {
private String name; private String name;
private String value; private String value;
} }
@@ -1,8 +1,11 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class TicketDetailsDTO { public class TicketDetailsDTO {
private String ticketId; private String ticketId;
@@ -1,10 +1,14 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class TicketDispositionsDTO { public class TicketDispositionsDTO {
private String dispositionId; private String dispositionId;
@@ -66,9 +66,12 @@ public class TransactionDTO {
private String planType; private String planType;
// ✅ Date fields as String (for JSON compatibility) // ✅ Date fields as String (for JSON compatibility)
private String creationDate; @JsonProperty("creationDate")
private String modifiedDate; private String creationDateBank;
@JsonProperty("modifiedDate")
private Long createdEpochDate; private String modifiedDateBank;
private Long modifiedEpochDate; @JsonProperty("createdEpochDate")
private Long createdEpochDateBank;
@JsonProperty("modifiedEpochDate")
private Long modifiedEpochDateBank;
} }
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@@ -7,6 +9,8 @@ import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class TransactionHistoryMasterDTO { public class TransactionHistoryMasterDTO {
private String bankTxnId; private String bankTxnId;
@@ -22,8 +26,8 @@ public class TransactionHistoryMasterDTO {
private String billId; private String billId;
private String userType; private String userType;
private String userId; private String userId;
private Double txnAmount; private String txnAmount;
private Double totalTxnAmount; private String totalTxnAmount;
private String billerId; private String billerId;
private String billerCategory; private String billerCategory;
private String billerName; private String billerName;
@@ -33,15 +37,15 @@ public class TransactionHistoryMasterDTO {
private String quickPay; private String quickPay;
private String paymentMode; private String paymentMode;
private String agentPaymentInformation; private String agentPaymentInformation;
private Double custConvFee; private String custConvFee;
private String currency; private String currency;
private String status; private String status;
private String requestedIp; private String requestedIp;
private String customerMobNo; private String customerMobNo;
private String macAddress; private String macAddress;
private Double splitPayAmount; private String splitPayAmount;
private Double couCustConvFee; private String couCustConvFee;
private Boolean settlementVerification; private String settlementVerification;
private String fundTxnType; private String fundTxnType;
private String reason; private String reason;
private String amountTags; private String amountTags;
@@ -1,17 +1,20 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class TransactionHistoryParticularDetailsDTO { public class TransactionHistoryParticularDetailsDTO {
private String billerCategory; private String billerCategory;
private String billerName; private String billerName;
private Double totalTxnAmount; private String totalTxnAmount;
private String bankTxnId; private String bankTxnId;
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto; package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@@ -9,6 +11,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Builder @Builder
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDetailsDTO { public class UserDetailsDTO {
private String userId; private String userId;
@@ -0,0 +1,24 @@
package com.billpaymentservice.bbps.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ViewAllComplaintDto {
private String ticketStatus;
private String txnAmount;
private String billerName;
private String ticketId;
private String txnNpciId;
private String ticketType;
private String createdTime;
private String billCategory;
private String totalTxnAmount;
}
@@ -16,15 +16,16 @@ public class AuthResponse {
private boolean success; private boolean success;
private String message; private String message;
private boolean userExists; private boolean userExists;
private UserDto user; private Object user;
private String token; private String token;
public AuthResponse(boolean success, String message, boolean userExists, UserDto user) { public AuthResponse(boolean success, String message, String token, Object user) {
this.success = success; this.success = success;
this.message = message; this.message = message;
this.userExists = userExists; this.token = token;
this.user = user; this.user = user;
} }
public AuthResponse(boolean success, String message, String token) { public AuthResponse(boolean success, String message, String token) {
this.success = success; this.success = success;
this.message = message; this.message = message;
@@ -1,19 +1,24 @@
package com.billpaymentservice.bbps.dto.auth; package com.billpaymentservice.bbps.dto.auth;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class LoginRequest { public class 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; private String mobile;
public LoginRequest() {}
public LoginRequest(String mobile) {
this.mobile = mobile;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
} }
@@ -1,29 +1,17 @@
package com.billpaymentservice.bbps.dto.auth; package com.billpaymentservice.bbps.dto.auth;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class OtpSendResponse { public class OtpSendResponse {
private boolean success; private boolean success;
private String message; private String message;
public OtpSendResponse() {}
public OtpSendResponse(boolean success, String message) {
this.success = success;
this.message = message;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
} }
@@ -2,15 +2,35 @@ package com.billpaymentservice.bbps.dto.auth;
import com.billpaymentservice.bbps.dto.request.BaseClass; 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.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor
@AllArgsConstructor
public class RegisterRequest extends BaseClass { 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; 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; private String name;
@NotNull(message = "Email cannot be null.")
@Email(message = "Email must be a valid email address.")
private String email; private String email;
@NotNull(message = "Registration token cannot be null.")
private String registrationToken; private String registrationToken;
} }
@@ -10,7 +10,7 @@ import lombok.Setter;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class UserDto { public class UserDto {
private Long id; private String userId;
private String mobile; private String mobile;
private String name; private String name;
private String email; private String email;
@@ -1,30 +1,28 @@
package com.billpaymentservice.bbps.dto.auth; package com.billpaymentservice.bbps.dto.auth;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class VerifyOtpRequest { public class 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; private String mobile;
@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; private String otp;
public VerifyOtpRequest() {
}
public VerifyOtpRequest(String mobile, String otp) {
this.mobile = mobile;
this.otp = otp;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getOtp() {
return otp;
}
public void setOtp(String otp) {
this.otp = otp;
}
} }
@@ -1,10 +1,21 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class AllMasterOptionsRequest extends BaseClass { public class AllMasterOptionsRequest extends BaseClass {
private Integer pageNo = 0;
@NotNull(message = "pageEnd is required")
@Min(value = 1, message = "pageEnd must be greater than 0")
private Integer pageSize;
} }
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class AmountBreakRequest { public class AmountBreakRequest {
private String name; private String name;
private double value; private double value;
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import jakarta.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -10,9 +12,10 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillFetchByBillIdRequest extends BaseClass { public class BillFetchByBillIdRequest extends BaseClass {
@NotNull @NotBlank(message = "bill id not be null")
private String billId; private String billId;
} }
@@ -1,10 +1,14 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillFetchByClientIdRequest extends BaseClass{ public class BillFetchByClientIdRequest extends BaseClass{
private String clientReqId; private String clientReqId;
@@ -1,32 +1,51 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillPaymentRequest extends BaseClass { public class BillPaymentRequest extends BaseClass {
private String tenantId;
private String refId; private String refId;
private String billId; private String billId;
private boolean amountOptions;
// Change the field to Boolean (wrapper) type to allow @NotNull validation
private boolean amountOptions; // Changed to Boolean (wrapper type)
private String paymentMode; private String paymentMode;
private String paymentInformation; private String paymentInformation;
private String billerId; private String billerId;
private String billerName; private String billerName;
private String billerCategory; private String billerCategory;
private String macAdress; private String macAdress;
private String customerMobNo; private String customerMobNo;
private Integer txnAmount;
private Integer txnAmount; // Changed to @NotNull as it's an Integer (non-nullable)
private String paymentRefId; private String paymentRefId;
private String clientReqId; private String clientReqId;
private String paymentChannel; private String paymentChannel;
private List<DeviceBlockTagRequest> deviceBlockTags; private List<DeviceBlockTagRequest> deviceBlockTags;
private List<CustomerParamTagRequest> customerParamsRequest; private List<CustomerParamTagRequest> customerParams;
private List<RemitterIdentityRequest> remitterIdentity; private List<RemitterIdentityRequest> remitterIdentity;
private List<AmountBreakRequest> amountBreakSet; private List<AmountBreakRequest> amountBreakSet;
} }
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillValidateByClientIdRequest extends BaseClass{ public class BillValidateByClientIdRequest extends BaseClass{
private String clientReqId; private String clientReqId;
@@ -1,5 +1,8 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -7,10 +10,11 @@ import lombok.ToString;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class BillerDetailRequest extends BaseClass{ public class BillerDetailRequest extends BaseClass{
@NotNull @NotBlank(message = "biller id not be null")
private String billerId; private String billerId;
} }
@@ -1,8 +1,15 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
@JsonIgnoreProperties(ignoreUnknown = true)
public class CallbackRequest { public class CallbackRequest {
@NotBlank(message = "mid is mandatory")
private String mid; private String mid;
@NotBlank(message = "data is mandatory")
private String data; private String data;
@NotBlank(message = "signature is mandatory")
private String signature; private String signature;
public String getMid() { public String getMid() {
@@ -1,11 +1,14 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Setter @Setter
@Getter @Getter
@JsonIgnoreProperties(ignoreUnknown = true)
public class CloseComplaintRequest extends BaseClass { public class CloseComplaintRequest extends BaseClass {
@NotBlank(message = "complaintDescr not be null") @NotBlank(message = "complaintDescr not be null")
@@ -1,7 +1,8 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -11,6 +12,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplainStatusRequest extends BaseClass { public class ComplainStatusRequest extends BaseClass {
@NotBlank(message = "ticketId Id cannot be null or blank") @NotBlank(message = "ticketId Id cannot be null or blank")
@@ -1,15 +1,27 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComplaintRequestDTO extends BaseClass { public class ComplaintRequestDTO extends BaseClass {
private String ticketDescription; // Complaint description that the user enters @NotBlank(message = "Ticket description cannot be null.")
private String ticketDisposition; // Complaint disposition private String ticketDescription;
private String ticketDispositionCode; // Type of complaint
private String txnId; // Transaction ID (optional) @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;
} }
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -9,6 +11,8 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ContactMasterRequest extends BaseClass { public class ContactMasterRequest extends BaseClass {
private String category; private String category;
} }
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import jakarta.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -12,8 +14,9 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomParamRequest extends BaseClass { public class CustomParamRequest extends BaseClass {
@NotNull @NotBlank(message = "biller id not be null")
private String billerId; private String billerId;
} }
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomerParamTagRequest { public class CustomerParamTagRequest {
private String name; private String name;
private String value; private String value;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeviceBlockTagRequest { public class DeviceBlockTagRequest {
private String name; private String name;
private String value; private String value;
@@ -1,5 +1,8 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class DispositionRequest extends BaseClass { public class DispositionRequest extends BaseClass {
} }
@@ -5,32 +5,46 @@ import java.util.List;
import com.billpaymentservice.bbps.dto.CustomerParamsRequest; import com.billpaymentservice.bbps.dto.CustomerParamsRequest;
import com.billpaymentservice.bbps.dto.RemitterIdentity; import com.billpaymentservice.bbps.dto.RemitterIdentity;
import com.billpaymentservice.bbps.dto.Tag; import com.billpaymentservice.bbps.dto.Tag;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@Getter @Getter
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ToString @ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class FetchBillRequest extends BaseClass { public class FetchBillRequest extends BaseClass {
// private String tenantId; // M @NotBlank(message = "biller id not be null")
private String billerId; // M private String billerId;
private String billerName; //M
// private String digiledgeKey; // M @NotBlank(message = "biller name not be null")
// private String agentId; // M private String billerName;
private String billerCategory; // M
private String clientReqId; // C @NotBlank(message = "biller category not be null")
private String macAdress; // C private String billerCategory;
private String customerMobNo; // M
private String remitterName; // O private String clientReqId;
private String paymentChannel; // M private String macAdress;
private List<Tag> deviceBlockTags; // M
private CustomerParamsRequest customerParamsRequest; // M @NotBlank(message = "customer mob no not be null")
private List<RemitterIdentity> remitterIdentity; // O private String customerMobNo;
private String remitterName;
@NotBlank(message = "payment channel not be null")
private String paymentChannel;
private List<Tag> deviceBlockTags;
private CustomerParamsRequest customerParamsRequest;
private List<RemitterIdentity> remitterIdentity;
} }
@@ -1,7 +1,9 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.billpaymentservice.bbps.dto.CustomerParamsRequest; import com.billpaymentservice.bbps.dto.CustomerParamsRequest;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@@ -12,20 +14,21 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class FetchBillValidatestRequest extends BaseClass { public class FetchBillValidatestRequest extends BaseClass {
@NotNull @NotBlank(message = "biller id not be null")
private String billerId; // Alphanumeric, Unique ID assigned by NPCI private String billerId;
@NotNull @NotBlank(message = "biller name not be null")
private String billerName; // String, Name of the biller private String billerName;
@NotNull @NotBlank(message = "biller category not be null")
private String billerCategory; // String, CategoryResponseList of the biller private String billerCategory;
@NotNull @NotBlank(message = "biller mob no not be null")
private String customerMobNo; // String, Mobile of the Customer private String customerMobNo;
private String clientReqId; private String clientReqId;
// Optional Fields // Optional Fields
private String macAddress; // Alphanumeric MAC Address of the Agent Server private String macAddress;
//private String clientReqId; // String, Unique id provided by the client // private String clientReqId;
private CustomerParamsRequest customerParamsRequest; // Customer parameters for identifying the bill private CustomerParamsRequest customerParamsRequest; // Customer parameters for identifying the bill
} }
@@ -1,6 +1,7 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -12,6 +13,7 @@ import lombok.Setter;
@Setter @Setter
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class GetTicketLatestStausRequest extends BaseClass { public class GetTicketLatestStausRequest extends BaseClass {
@NotBlank(message = "txnNpciId Id cannot be null or blank") @NotBlank(message = "txnNpciId Id cannot be null or blank")
@@ -1,5 +1,7 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
@@ -9,6 +11,7 @@ import lombok.Setter;
@Data @Data
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class LoginRequest { public class LoginRequest {
@NotBlank(message = "Mobile number is required") @NotBlank(message = "Mobile number is required")
@@ -1,6 +1,9 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@@ -11,11 +14,12 @@ import lombok.Setter;
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class MasterCategoryRequest extends BaseClass { public class MasterCategoryRequest extends BaseClass {
private String billerName; private String billerName;
@NotNull @NotBlank(message = "category name not be null")
private String category; private String category;
private Integer pageNo = 0; private Integer pageNo = 0;
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class MasterRequest extends BaseClass { public class MasterRequest extends BaseClass {
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class MerchantRequestModel { public class MerchantRequestModel {
private String mid; private String mid;
@@ -1,11 +1,14 @@
package com.billpaymentservice.bbps.dto.request; package com.billpaymentservice.bbps.dto.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class PaymentHistoryByTxnRequest extends BaseClass { public class PaymentHistoryByTxnRequest extends BaseClass {
@NotBlank(message = "txn Id not be null") @NotBlank(message = "txn Id not be null")

Some files were not shown because too many files have changed in this diff Show More