diff --git a/pom.xml b/pom.xml index c73831f..19bf1de 100644 --- a/pom.xml +++ b/pom.xml @@ -2,55 +2,38 @@ + 4.0.0 + org.springframework.boot spring-boot-starter-parent - 3.2.5 - + 3.2.7 + + com.billpaymentservice.bbps bbps 0.0.1-SNAPSHOT war bbps This is the bbps switch project - - - - - - - - - - - - - + 17 + - - io.github.resilience4j - resilience4j-spring-boot3 - 2.2.0 - + org.springframework.boot - spring-boot-starter-aop + spring-boot-starter - - org.springframework.boot - spring-boot-starter-data-jpa - org.springframework.boot spring-boot-starter-web - org.apache.httpcomponents httpclient @@ -58,59 +41,51 @@ - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - 2.13.3 - org.springframework.boot - spring-boot-devtools - runtime - true - - - org.postgresql - postgresql - runtime - - - org.projectlombok - lombok - 1.18.30 - provided + spring-boot-starter-data-jpa - com.nimbusds - nimbus-jose-jwt - 9.37 + org.springframework.boot + spring-boot-starter-aop + + org.springframework.boot spring-boot-starter-tomcat provided - - org.springframework.boot - spring-boot-starter - - - org.modelmapper - modelmapper - 3.2.0 - + - org.springframework.boot - spring-boot-starter-test - test + org.postgresql + postgresql + runtime + + - org.springdoc - springdoc-openapi-starter-webmvc-ui - 2.5.0 + io.github.resilience4j + resilience4j-spring-boot3 + 2.2.0 + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + + + com.nimbusds + nimbus-jose-jwt + 9.37 + + + org.apache.httpcomponents.client5 httpclient5 @@ -121,32 +96,56 @@ httpcore5 5.2.5 - org.apache.httpcomponents.core5 httpcore5-h2 5.2.5 + + + org.modelmapper + modelmapper + 3.2.0 + - + - org.apache.httpcomponents.client5 - httpclient5-fluent - 5.3.1 + org.projectlombok + lombok + 1.18.30 + provided + + + + + org.springframework.boot + spring-boot-devtools runtime + true + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.5.0 + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot spring-boot-configuration-processor true - - org.springframework.boot - spring-boot-configuration-processor - true - + @@ -159,7 +158,7 @@ org.projectlombok lombok - 1.18.42 + 1.18.30 @@ -168,14 +167,6 @@ org.springframework.boot spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - diff --git a/src/main/java/com/billpaymentservice/bbps/controller/MasterDataController.java b/src/main/java/com/billpaymentservice/bbps/controller/MasterDataController.java index e5019f9..d485d41 100644 --- a/src/main/java/com/billpaymentservice/bbps/controller/MasterDataController.java +++ b/src/main/java/com/billpaymentservice/bbps/controller/MasterDataController.java @@ -47,12 +47,19 @@ public class MasterDataController { return ResponseEntity.ok(masterDataService.getContactMaster(contactMasterRequest)); } + @PostMapping(value = "/getDispostionDetail", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getDispostionDetail( + @Validated @RequestBody ContactMasterRequest contactMasterRequest) { + return ResponseEntity.ok(masterDataService.getDispositionDetails()); + } + /** * Get CustomerParam by billerId.The parameter is different from the data we are * getting in the billerDetail **/ + @PostMapping(value = "/getCustomerParamDetails", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity getBillerDetails( + public ResponseEntity getCustomerParamDetails( @Validated @RequestBody CustomParamRequest customerParamRequest) { log.info("Received biller details request for billerId: {}", customerParamRequest.getBillerId()); @@ -101,10 +108,9 @@ public class MasterDataController { public ResponseEntity fetchPlanCategories(@Validated @RequestBody BillerDetailRequest requestModel) { return ResponseEntity.ok(masterDataService.fetchPlanCategorie(requestModel)); } - + /** - * POST Fetch Initiating Channel API Fetch Category Wise from BBPS - * URL + * POST Fetch Initiating Channel API Fetch Category Wise from BBPS URL **/ @PostMapping(value = "/initiatingChannel", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity initiatingChannel(@Validated @RequestBody BillerDetailRequest requestModel) { diff --git a/src/main/java/com/billpaymentservice/bbps/dto/AgentFundTransfer.java b/src/main/java/com/billpaymentservice/bbps/dto/AgentFundTransfer.java index 9c4b85a..efda03a 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/AgentFundTransfer.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/AgentFundTransfer.java @@ -1,4 +1,5 @@ package com.billpaymentservice.bbps.dto; + import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Getter; @@ -10,13 +11,12 @@ public class AgentFundTransfer { @NotBlank private String fundTxnReferenceId; @NotBlank private String fundTxnRemarks; @NotBlank private String fundTxnDate; - @NotNull private Double fundTxnAmt; - @NotBlank private String fundUTR; + private String fundRespRemarks; private String agentNpciId; private String txnRefId; - + private String tenantId; @NotBlank private String fundStatus; // FUND_TRANSFER_SUCCESS or FUND_TRANSFER_FAILED } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/CustomParam.java b/src/main/java/com/billpaymentservice/bbps/dto/CustomParamDTO.java similarity index 94% rename from src/main/java/com/billpaymentservice/bbps/dto/CustomParam.java rename to src/main/java/com/billpaymentservice/bbps/dto/CustomParamDTO.java index 6229cf3..1fa4940 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/CustomParam.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/CustomParamDTO.java @@ -11,7 +11,7 @@ import lombok.Setter; @Setter @AllArgsConstructor @NoArgsConstructor -public class CustomParam { +public class CustomParamDTO { private String customParamName; private String dataType; private boolean optional; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/DeviceBlockTag.java b/src/main/java/com/billpaymentservice/bbps/dto/DeviceBlockTag.java new file mode 100644 index 0000000..74ded7b --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/DeviceBlockTag.java @@ -0,0 +1,12 @@ +package com.billpaymentservice.bbps.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class DeviceBlockTag { + private String name; + private String tagId; + private String value; +} \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/dto/DispositionsDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/DispositionsDTO.java new file mode 100644 index 0000000..4297bd6 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/DispositionsDTO.java @@ -0,0 +1,14 @@ +package com.billpaymentservice.bbps.dto; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter + +public class DispositionsDTO { + private String dispositionId; + private String dispositionDescr; + private String tenantId; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/GeneralResp.java b/src/main/java/com/billpaymentservice/bbps/dto/GeneralResp.java index 495c3a0..48962aa 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/GeneralResp.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/GeneralResp.java @@ -4,11 +4,13 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.ToString; @Getter @Setter @AllArgsConstructor @NoArgsConstructor +@ToString public class GeneralResp { private String statusCode; private String status; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/TransactionDAO.java b/src/main/java/com/billpaymentservice/bbps/dto/TransactionDAO.java deleted file mode 100644 index 04c29e3..0000000 --- a/src/main/java/com/billpaymentservice/bbps/dto/TransactionDAO.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.billpaymentservice.bbps.dto; - -import java.time.LocalDateTime; -import java.util.List; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - public class TransactionDAO { - - @NotBlank private String txnId; - @NotBlank private String refId; - - private String txnNpciId; - - @NotBlank private String orderId; - @NotBlank private String billId; - @NotBlank private String userType; - @NotBlank private String userId; - - @NotNull private Double txnAmount; - @NotNull private Double totalTxnAmount; - - @NotBlank private String billerId; - @NotBlank private String billerCategory; - @NotBlank private String billerName; - - private String clientReqId; - private String offUsPay; - private String splitPay; - private String quickPay; - private String paymentMode; - - private Double custConvFee; - private String currency; - private String status; - private String requestedIp; - private String customerMobNo; - private String macAddress; - - private Double splitPayAmount; - private Double couCustConvFee; - - private Boolean settlementVerification; - private String fundTxnType; - private String reason; - - private List amountTags; - private List customerParamsDAOS; - private List paymentInformation; - - private List customerParamsDAO; - - private String planId; - private String planType; - - private LocalDateTime creationDate; - private LocalDateTime modifiedDate; - - private Long createdEpochDate; - private Long modifiedEpochDate; - } - - diff --git a/src/main/java/com/billpaymentservice/bbps/dto/TransactionDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/TransactionDTO.java new file mode 100644 index 0000000..34952da --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/TransactionDTO.java @@ -0,0 +1,75 @@ +package com.billpaymentservice.bbps.dto; + +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.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) + +public class TransactionDTO { + + @NotBlank private String txnId; + @NotBlank private String refId; + private String txnNpciId; + private String paymentRefId; + private String remitterName; + + + @NotBlank private String orderId; + @NotBlank private String billId; + @NotBlank private String userType; + @NotBlank private String userId; + + @NotNull private Double txnAmount; + @NotNull private Double totalTxnAmount; + + @NotBlank private String billerId; + @NotBlank private String billerCategory; + @NotBlank private String billerName; + + private String clientReqId; + private String offUsPay; + private String splitPay; + private String quickPay; + private String paymentMode; + private String agentPaymentInformation; + + private Double custConvFee; + private String currency; + private String status; + private String requestedIp; + private String customerMobNo; + private String macAddress; + + private Double splitPayAmount; + private Double couCustConvFee; + + private Boolean settlementVerification; + private String fundTxnType; + private String reason; + + private List amountTags; + private List customerParamsDAOS; + private List paymentInformation; + private List deviceBlockTags; + + + private List customerParamsDAO; + + private String planId; + private String planType; + + // ✅ Date fields as String (for JSON compatibility) + private String creationDate; + private String modifiedDate; + + private Long createdEpochDate; + private Long modifiedEpochDate; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/request/DispositionRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/request/DispositionRequest.java new file mode 100644 index 0000000..33df692 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/request/DispositionRequest.java @@ -0,0 +1,5 @@ +package com.billpaymentservice.bbps.dto.request; + +public class DispositionRequest extends BaseClass { + +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/BillPaymentResponse.java b/src/main/java/com/billpaymentservice/bbps/dto/response/BillPaymentResponse.java index 93d0fcd..1654b5f 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/BillPaymentResponse.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/BillPaymentResponse.java @@ -3,9 +3,11 @@ package com.billpaymentservice.bbps.dto.response; import com.billpaymentservice.bbps.dto.GeneralResp; import lombok.Getter; import lombok.Setter; +import lombok.ToString; @Getter @Setter +@ToString public class BillPaymentResponse { private String txnId; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java b/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java index f57f510..102b1c7 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java @@ -1,9 +1,8 @@ package com.billpaymentservice.bbps.dto.response; import java.util.List; - import com.billpaymentservice.bbps.dto.ContactMaster; -import com.billpaymentservice.bbps.dto.CustomParam; +import com.billpaymentservice.bbps.dto.CustomParamDTO; import com.billpaymentservice.bbps.dto.GeneralResp; import com.billpaymentservice.bbps.entites.CustomerParam; import com.fasterxml.jackson.annotation.JsonProperty; @@ -20,5 +19,5 @@ import lombok.Setter; public class CustomParamResp { @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private GeneralResp generalResp; - private List customParamResp; + private List customParamResp; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/DispositionResponse.java b/src/main/java/com/billpaymentservice/bbps/dto/response/DispositionResponse.java new file mode 100644 index 0000000..ac57782 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/DispositionResponse.java @@ -0,0 +1,20 @@ +package com.billpaymentservice.bbps.dto.response; + +import java.util.List; + +import com.billpaymentservice.bbps.dto.DispositionsDTO; +import com.billpaymentservice.bbps.dto.GeneralResp; +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +public class DispositionResponse { + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private GeneralResp generalResp; + List dispositionsList; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/TransactionStatusResponse.java b/src/main/java/com/billpaymentservice/bbps/dto/response/TransactionStatusResponse.java index 258f6bc..27d61cc 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/TransactionStatusResponse.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/TransactionStatusResponse.java @@ -2,7 +2,7 @@ package com.billpaymentservice.bbps.dto.response; import com.billpaymentservice.bbps.dto.AgentFundTransfer; import com.billpaymentservice.bbps.dto.GeneralResp; -import com.billpaymentservice.bbps.dto.TransactionDAO; +import com.billpaymentservice.bbps.dto.TransactionDTO; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; @@ -13,7 +13,7 @@ import lombok.Setter; public class TransactionStatusResponse { @JsonProperty("transactionDAO") - private TransactionDAO transactionDAO; + private TransactionDTO transactionDAO; @JsonProperty("agentFundTransfer") private AgentFundTransfer agentFundTransfer; diff --git a/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java b/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java index c786030..906ac37 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java @@ -5,10 +5,12 @@ import jakarta.persistence.*; import jakarta.validation.constraints.*; import lombok.Getter; import lombok.Setter; +import lombok.ToString; @Getter @Setter @Entity +@ToString @Table(name = "additional_info") public class AdditionalInfo { diff --git a/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java b/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java index 1b336d0..d1fab78 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java @@ -1,12 +1,10 @@ package com.billpaymentservice.bbps.entites; - import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.util.List; - -import com.billpaymentservice.bbps.entites.BillerResponseParams; +import com.fasterxml.jackson.annotation.JsonProperty; @Entity @Table(name = "amount_option") @@ -15,9 +13,9 @@ import com.billpaymentservice.bbps.entites.BillerResponseParams; public class AmountOption { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "amount_option_id") - private Long id; + @JsonProperty("amountOptionId") // ✅ JSON field map karo + private String amountOptionId; // ✅ String type, manual ID @ElementCollection @CollectionTable( @@ -31,4 +29,4 @@ public class AmountOption { @ManyToOne @JoinColumn(name = "biller_response_id", nullable = false) private BillerResponseParams billerResponseParams; -} +} \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java b/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java index 804d110..1737bf7 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java @@ -147,8 +147,10 @@ public class BillerDetails { @OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true) private List billerAdditionalInfos; - @OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true) - private List billerAdditionalInfoPayments; + /* + * @OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = + * true) private List billerAdditionalInfoPayments; + */ @OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true) private List interchangeFeeConves; diff --git a/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java b/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java index b5b8719..ac919a9 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java @@ -4,7 +4,7 @@ import java.util.List; import lombok.Getter; import lombok.Setter; - +import lombok.ToString; import jakarta.persistence.*; import jakarta.validation.constraints.*; import lombok.Getter; @@ -14,6 +14,7 @@ import java.util.List; @Getter @Setter @Entity +@ToString @Table(name = "biller_plan_response_params") public class BillerPlanResponseParams { diff --git a/src/main/java/com/billpaymentservice/bbps/entites/CustomParam.java b/src/main/java/com/billpaymentservice/bbps/entites/CustomParam.java new file mode 100644 index 0000000..e6b782e --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/entites/CustomParam.java @@ -0,0 +1,39 @@ +package com.billpaymentservice.bbps.entites; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Entity +@Table(name = "custom_param") +public class CustomParam { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "custom_param_name") + private String customParamName; + + @Column(name = "data_type") + private String dataType; + + @Column(name = "optional") + private Boolean optional; + + @Column(name = "min_length") + private Integer minLength; + + @Column(name = "max_length") + private Integer maxLength; + + @Column(name = "regex") + private String regex; + + @Column(name = "visibility") + private Boolean visibility; + + +} diff --git a/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java index c99e01f..f422665 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java @@ -3,12 +3,14 @@ package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import java.util.List; @Getter @Setter @Entity +@ToString @Table(name = "customer_param_groups") public class CustomerParamGroups { diff --git a/src/main/java/com/billpaymentservice/bbps/entites/DispositionDetails.java b/src/main/java/com/billpaymentservice/bbps/entites/DispositionDetails.java new file mode 100644 index 0000000..c0cdba9 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/entites/DispositionDetails.java @@ -0,0 +1,25 @@ +package com.billpaymentservice.bbps.entites; + +import jakarta.persistence.*; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@Entity +@Table(name = "disposition_details") +@ToString +public class DispositionDetails { + + @Id + @Column(name = "disposition_id", nullable = false, unique = true) + private String dispositionId; // UUID type string + + @Column(name = "disposition_descr", nullable = false) + private String dispositionDescr; + + @Column(name = "tenant_id") + private String tenantId; +} \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java index 308c752..0343502 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java @@ -4,8 +4,7 @@ import java.util.List; import lombok.Getter; import lombok.Setter; - - +import lombok.ToString; import jakarta.persistence.*; import jakarta.validation.constraints.*; import lombok.Getter; @@ -15,6 +14,7 @@ import java.util.List; @Getter @Setter @Entity +@ToString @Table(name = "interchange_fee") public class InterchangeFee { diff --git a/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java b/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java index 6f5962d..5c12b4e 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java @@ -4,18 +4,20 @@ import jakarta.persistence.*; import jakarta.validation.constraints.*; import lombok.Getter; import lombok.Setter; +import lombok.ToString; + import com.fasterxml.jackson.annotation.JsonProperty; @Getter @Setter @Entity +@ToString @Table(name = "payment_channel") public class PaymentChannel { - @Id + @Id @Column(name = "payment_channel_limit_id") - @JsonProperty("paymentChannelLimitId") // 👈 Map JSON field to this property - private String id; // Primary key (manual, not auto-generated) + private String paymentChannelLimitId; // Primary key (manual, not auto-generated) @NotBlank(message = "Payment channel is required") @Column(name = "payment_channel", nullable = false) diff --git a/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java b/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java index fce2f76..82babca 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java @@ -2,15 +2,27 @@ package com.billpaymentservice.bbps.entites; -import jakarta.persistence.*; -import jakarta.validation.constraints.*; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.PositiveOrZero; import lombok.Getter; import lombok.Setter; +import lombok.ToString; @Getter @Setter @Entity @Table(name = "biller_payment_modes") +@ToString public class PaymentMode { @Id diff --git a/src/main/java/com/billpaymentservice/bbps/repository/DispositionRepository.java b/src/main/java/com/billpaymentservice/bbps/repository/DispositionRepository.java new file mode 100644 index 0000000..aade2b5 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/repository/DispositionRepository.java @@ -0,0 +1,9 @@ +package com.billpaymentservice.bbps.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.billpaymentservice.bbps.entites.DispositionDetails; + +public interface DispositionRepository extends JpaRepository { + +} diff --git a/src/main/java/com/billpaymentservice/bbps/service/MasterDataService.java b/src/main/java/com/billpaymentservice/bbps/service/MasterDataService.java index f05a799..ec815bf 100644 --- a/src/main/java/com/billpaymentservice/bbps/service/MasterDataService.java +++ b/src/main/java/com/billpaymentservice/bbps/service/MasterDataService.java @@ -29,4 +29,6 @@ public interface MasterDataService { public ResponseModel fetchInitiatingChannel(BillerDetailRequest requestModel); + public ResponseModel getDispositionDetails(); + } diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/AgentServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/AgentServiceImpl.java index f780587..a38b25f 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/AgentServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/AgentServiceImpl.java @@ -292,4 +292,4 @@ public class AgentServiceImpl implements AgentService { } -} \ No newline at end of file +} diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java index 6dc46aa..be989f0 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java @@ -1,6 +1,8 @@ package com.billpaymentservice.bbps.serviceImpl; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.modelmapper.ModelMapper; import org.modelmapper.convention.MatchingStrategies; @@ -23,14 +25,19 @@ import com.billpaymentservice.bbps.dto.response.BillerResponse; import com.billpaymentservice.bbps.dto.response.ChannelsListResponse; import com.billpaymentservice.bbps.dto.response.CustomParamResp; import com.billpaymentservice.bbps.dto.response.CustomerParamGroupsResponse; +import com.billpaymentservice.bbps.dto.response.DispositionResponse; import com.billpaymentservice.bbps.dto.response.PlaneCategoriesResponse; import com.billpaymentservice.bbps.entites.BharatConnectMaster; import com.billpaymentservice.bbps.entites.BillerDetails; +import com.billpaymentservice.bbps.entites.DispositionDetails; import com.billpaymentservice.bbps.exception.CustomException; import com.billpaymentservice.bbps.repository.BharatConnectMasterRepository; import com.billpaymentservice.bbps.repository.BillerDataRepository; +import com.billpaymentservice.bbps.repository.DispositionRepository; +import com.billpaymentservice.bbps.repository.MerchantRepository; import com.billpaymentservice.bbps.service.MasterDataService; import com.billpaymentservice.bbps.util.BBPSConstant; +import com.billpaymentservice.bbps.util.EntityRelationshipUtil; import com.billpaymentservice.bbps.util.Helper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -43,71 +50,27 @@ public class MasterDataServiceImpl implements MasterDataService { @Value("${master.data.url}") private String masterRegisterUrl; - - private Helper helper; - private final BillerDataRepository billerDataRespository; private final BharatConnectMasterRepository beneficiaryDetailsRepository; + private MerchantRepository merchantRegisterRepo; + private HttpClientApi httpClientApi; + private final DispositionRepository dispositionRepository; + private final Helper helper; + private final BillerDataRepository billerDataRespository; private static final Logger log = LoggerFactory.getLogger(MasterDataServiceImpl.class); private final HttpService httpService; private final ObjectMapper objectMapper = new ObjectMapper(); - // Inject HttpService - public MasterDataServiceImpl(BharatConnectMasterRepository beneficiaryDetailsRepository, HttpService httpService, - Helper helper, BillerDataRepository billerDataRespository) { - this.beneficiaryDetailsRepository = beneficiaryDetailsRepository; + public MasterDataServiceImpl(MerchantRepository merchantRegisterRepo, HttpService httpService, + HttpClientApi httpClientApi, Helper helper, BillerDataRepository billerDataRespository, + DispositionRepository dispositionRepository, BharatConnectMasterRepository beneficiaryDetailsRepository) { + this.merchantRegisterRepo = merchantRegisterRepo; this.httpService = httpService; + this.httpClientApi = httpClientApi; this.helper = helper; this.billerDataRespository = billerDataRespository; - - } - - @Override - public ResponseModel getBillerByBillerId(BillerDetailRequest billerDetailRequest) { - - String billerId = billerDetailRequest.getBillerId(); - String fullUrl = masterRegisterUrl + BBPSConstant.BILLER_DATA_FETCH_URL + billerId; - - Map responseMap = httpService.getRequest(fullUrl); - String responseData = responseMap.get("data"); - log.info("data is :{}", responseData); - - ObjectMapper objectMapper = new ObjectMapper(); - - try { - Map dataMap = objectMapper.readValue(responseData, - new TypeReference>() { - }); - if (!dataMap.containsKey("generalResp")) { - throw new CustomException(String.valueOf(dataMap.get("message")), // message - String.valueOf(dataMap.get("status")), // status - Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), // statusCode (int) - String.valueOf(dataMap.get("remarks"))); - } - - BillerDataResponse responseWrapper = objectMapper.convertValue(dataMap, BillerDataResponse.class); - GeneralResp generalResp = responseWrapper.getGeneralResp(); - ModelMapper mapper = new ModelMapper(); - mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); - BillerDetails entity = mapper.map(responseWrapper.getBillerDAO(), BillerDetails.class); - - System.out.println(entity); - - if (entity != null) { - billerDataRespository.save(entity); - } else { - LOGGER.warn("No biller found in response to save."); - } - - ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(), - Integer.parseInt(generalResp.getStatusCode()), responseWrapper); - - return responseModel; - - } catch (JsonProcessingException e) { - log.error("Error parsing responseData JSON: {}", e.getMessage()); - throw new CustomException("Invalid JSON received from API"); - } + this.dispositionRepository = dispositionRepository; + this.beneficiaryDetailsRepository = beneficiaryDetailsRepository; } @@ -158,6 +121,45 @@ public class MasterDataServiceImpl implements MasterDataService { } } + @Override + public ResponseModel getBillerByBillerId(BillerDetailRequest billerDetailRequest) { + + String billerId = billerDetailRequest.getBillerId(); + String fullUrl = masterRegisterUrl + BBPSConstant.BILLER_DATA_FETCH_URL + billerId; + + Map responseMap = httpService.getRequest(fullUrl); + String responseData = responseMap.get("data"); + log.info("data is :{}", responseData); + + ObjectMapper objectMapper = new ObjectMapper(); + + try { + Map dataMap = objectMapper.readValue(responseData, + new TypeReference>() { + }); + if (!dataMap.containsKey("generalResp")) { + throw new CustomException(String.valueOf(dataMap.get("message")), // message + String.valueOf(dataMap.get("status")), // status + Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), // statusCode (int) + String.valueOf(dataMap.get("remarks"))); + } + BillerDataResponse responseWrapper = objectMapper.convertValue(dataMap, BillerDataResponse.class); + GeneralResp generalResp = responseWrapper.getGeneralResp(); + ModelMapper mapper = new ModelMapper(); + mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + BillerDetails entity = mapper.map(responseWrapper.getBillerDAO(), BillerDetails.class); + EntityRelationshipUtil.linkBillerRelationships(entity); + // billerDataRespository.save(entity); + ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(), + Integer.parseInt(generalResp.getStatusCode()), responseWrapper); + return responseModel; + + } catch (JsonProcessingException e) { + log.error("Error parsing responseData JSON: {}", e.getMessage()); + throw new CustomException("Invalid JSON received from API"); + } + } + @Override public ResponseModel getCustomerParamByBillerId(CustomParamRequest customerParamRequest) { @@ -245,7 +247,52 @@ public class MasterDataServiceImpl implements MasterDataService { Integer.parseInt(generalResp.getStatusCode()), responseWrapper); return responseModel; + } catch (JsonProcessingException e) { + log.error("Error parsing responseData JSON: {}", e.getMessage()); + throw new CustomException("Invalid JSON received from API"); + } + } + + @Override + public ResponseModel getDispositionDetails() { + String fullUrl = masterRegisterUrl + BBPSConstant.DISPOSTION_URL; + Map responseMap = httpService.getRequest(fullUrl); + String responseData = responseMap.get("data"); + + ObjectMapper objectMapper = new ObjectMapper(); + + try { + Map dataMap = objectMapper.readValue(responseData, + new TypeReference>() { + }); + if (!dataMap.containsKey("generalResp")) { + throw new CustomException(String.valueOf(dataMap.get("message")), // message + String.valueOf(dataMap.get("status")), // status + Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), // statusCode (int) + String.valueOf(dataMap.get("remarks"))); + } + + DispositionResponse responseWrapper = objectMapper.convertValue(dataMap, DispositionResponse.class); + System.out.println(responseWrapper); + GeneralResp generalResp = responseWrapper.getGeneralResp(); + ModelMapper mapper = new ModelMapper(); + mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + List entities = responseWrapper.getDispositionsList().stream() + .map(dto -> mapper.map(dto, DispositionDetails.class)).collect(Collectors.toList()); + + System.out.println(entities); + + if (entities != null) { + dispositionRepository.saveAll(entities); + } else { + LOGGER.warn("No disposition found in response to save."); + } + + ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(), + Integer.parseInt(generalResp.getStatusCode()), responseWrapper); + + return responseModel; } catch (JsonProcessingException e) { log.error("Error parsing responseData JSON: {}", e.getMessage()); throw new CustomException("Invalid JSON received from API"); diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentServiceImpl.java index 3e180b1..f758fdd 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentServiceImpl.java @@ -58,7 +58,7 @@ public class PaymentServiceImpl implements PaymentService { public ResponseModel initiatePayment(BillPaymentRequest billPaymentRequest) { String url = paymentUrl + BBPSConstant.PAYMENT_URL; - System.out.println(url); + System.out.println(url); BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001"); @@ -99,7 +99,9 @@ public class PaymentServiceImpl implements PaymentService { // ✅ Convert to your custom DTO BillPaymentResponse billPaymentResponse = objectMapper.convertValue(dataMap, BillPaymentResponse.class); + System.out.print(billPaymentResponse); GeneralResp generalResponse = billPaymentResponse.getGenericResponse(); + // // start a new thread here /* @@ -108,15 +110,16 @@ public class PaymentServiceImpl implements PaymentService { * return fetchBillById(pollReq); }, 3, // interval in seconds 15 // total time * in seconds ); */ + ModelMapper mapper = new ModelMapper(); mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); BillPayment entity = mapper.map(billPaymentResponse, BillPayment.class); paymentRepository.save(entity); - - // ✅ Build final ResponseModel - responseModel = new ResponseModel(generalResponse.getMessage(), generalResponse.getStatus(), - Integer.parseInt(generalResponse.getStatusCode()), billPaymentResponse); - + TransactionStatusRequest transactionStatusRequest=new TransactionStatusRequest(); + //call the checkTransactionStatus + transactionStatusRequest.setTxnId(billPaymentResponse.getTxnId()); + System.out.println(transactionStatusRequest); + responseModel= checkTrasactionStatus(transactionStatusRequest); } catch (Exception e) { LOGGER.error("❌ Exception in initiateBillFetch(): {}", e.getMessage(), e); responseModel.setStatus("500"); @@ -130,49 +133,88 @@ public class PaymentServiceImpl implements PaymentService { @Override public ResponseModel checkTrasactionStatus(TransactionStatusRequest transactionStatusRequest) { - String url=paymentUrl + BBPSConstant.CHECK_TRANSACTION_URL+transactionStatusRequest.getTxnId(); - - BharatConnectMaster headersData=beneficiaryDetailsRepository.findByOrgId("ORG001"); - - HttpHeaders headers = new HttpHeaders(); - headers.set("x-digiledge-key",headersData.getXDigiledgeKey()); - headers.set("agentId", headersData.getAgentId()); - headers.set("tenantId", headersData.getTenantId()); - headers.setContentType(MediaType.APPLICATION_JSON); - - Map responseMap = httpService.getRequest(url,headers); - String responseData = responseMap.get("data"); - LOGGER.info("data is :{}", responseData); - + String url = paymentUrl + BBPSConstant.CHECK_TRANSACTION_URL + transactionStatusRequest.getTxnId(); + BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001"); - ObjectMapper objectMapper = new ObjectMapper(); + HttpHeaders headers = new HttpHeaders(); + headers.set("x-digiledge-key", headersData.getXDigiledgeKey()); + headers.set("agentId", headersData.getAgentId()); + headers.set("tenantId", headersData.getTenantId()); + headers.setContentType(MediaType.APPLICATION_JSON); - try { - Map dataMap = objectMapper.readValue(responseData, - new TypeReference>() { - }); - if (!dataMap.containsKey("genericResponse")) { - throw new CustomException(String.valueOf(dataMap.get("message")), // message - String.valueOf(dataMap.get("status")), // status - Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), // statusCode (int) - String.valueOf(dataMap.get("remarks")) ); - } - - TransactionStatusResponse responseWrapper = objectMapper.convertValue(dataMap, TransactionStatusResponse.class); - - GeneralResp generalResp = responseWrapper.getGeneralResp(); - - ResponseModel responseModel=new ResponseModel( generalResp.getMessage(), - generalResp.getStatus(), - Integer.parseInt(generalResp.getStatusCode()), - responseWrapper); - - return responseModel; + ObjectMapper objectMapper = new ObjectMapper(); - } catch (JsonProcessingException e) { - LOGGER.error("Error parsing responseData JSON: {}", e.getMessage()); - throw new CustomException("Invalid JSON received from API"); - } + // ✅ Polling configuration + long startTime = System.currentTimeMillis(); + long maxWaitTimeMs = 40000; // 40 seconds timeout + long intervalMs = 5000; // retry every 5 seconds + + while (true) { + Map responseMap = httpService.getRequest(url, headers); + String responseData = responseMap.get("data"); + LOGGER.info("Transaction status response data: {}", responseData); + + try { + Map dataMap = objectMapper.readValue(responseData, new TypeReference>() {}); + + // If genericResponse key missing, throw exception + if (!dataMap.containsKey("generalResp")) { + throw new CustomException( + String.valueOf(dataMap.get("message")), + String.valueOf(dataMap.get("status")), + Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), + String.valueOf(dataMap.get("remarks")) + ); + } + + + // Convert into proper DTO + TransactionStatusResponse responseWrapper = objectMapper.convertValue(dataMap, TransactionStatusResponse.class); + + GeneralResp generalResp = responseWrapper.getGeneralResp(); + + String status = generalResp.getStatus(); + LOGGER.info("Current transaction status: {}", status); + + // ✅ If IN_PROGRESS → wait & retry + if ("INPROGRESS".equalsIgnoreCase(status)) { + + if (System.currentTimeMillis() - startTime > maxWaitTimeMs) { + // Timeout after 40 sec + throw new CustomException( + "Timeout waiting for transaction completion", + "FAILED", + 408, + "Transaction still in progress after 40 seconds" + ); + } + + try { + Thread.sleep(intervalMs); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new CustomException("Thread interrupted during retry"); + } + + LOGGER.info("Transaction still IN_PROGRESS... retrying after {} seconds", (intervalMs / 1000)); + continue; // retry + } + + // ✅ If status is SUCCESS / FAILED / etc. → return response + ResponseModel responseModel = new ResponseModel( + generalResp.getMessage(), + generalResp.getStatus(), + Integer.parseInt(generalResp.getStatusCode()), + responseWrapper + ); + + return responseModel; + + } catch (JsonProcessingException e) { + LOGGER.error("Error parsing responseData JSON: {}", e.getMessage()); + throw new CustomException("Invalid JSON received from API"); + } + } } /* diff --git a/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java b/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java index d327dbb..24fcdab 100644 --- a/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java +++ b/src/main/java/com/billpaymentservice/bbps/util/BBPSConstant.java @@ -27,12 +27,6 @@ public class BBPSConstant { public static final String BILLER_URL = "/billers"; public static final String MASTER_CATEGORY_URL = "/categories-master?tenantId="; - public static final String BILLER_DATA_FETCH_URL = "/billersById?billerId="; - public static final String CUSTOMPARAM_URL = "/customerParam?billerId="; - public static final String BILL_FETCH_INTI = "/couapp/bills/fetch"; - public static final String BILL_FETCH_BY_ID = "/couapp/bills/fetch/byId?billId="; - public static final String PAYMENT_URL = "/agent/bills/payment"; - public static final String CHECK_TRANSACTION_URL = "/transactions/payment/byTxnId?txnId="; public static final String CUSTOMER_PARAM_GROUP = "/customerParamGroup?billerId="; public static final String AMOUNT_OPTIONS = "/amountOptions?billerId="; public static final String PLAN_CATEGORIES = "/planCategories?billerId="; @@ -41,4 +35,12 @@ public class BBPSConstant { public static final String BILLER_VALIDATE_URL = "/couapp/bills/validate"; public static final String BILL_ID_URL = "/couapp/bills/validate/byId?billId="; + public static final String BILLER_DATA_FETCH_URL = "/billersById?billerId="; + public static final String CUSTOMPARAM_URL = "/customerParam?billerId="; + public static final String BILL_FETCH_INTI = "/couapp/bills/fetch"; + public static final String BILL_FETCH_BY_ID = "/couapp/bills/fetch/byId?billId="; + public static final String PAYMENT_URL = "/agent/bills/payment"; + public static final String CHECK_TRANSACTION_URL = "/transactions/payment/byTxnId?txnId="; + public static final String DISPOSTION_URL = "/disposition"; + } diff --git a/src/main/java/com/billpaymentservice/bbps/util/EntityRelationshipUtil.java b/src/main/java/com/billpaymentservice/bbps/util/EntityRelationshipUtil.java new file mode 100644 index 0000000..86048d1 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/util/EntityRelationshipUtil.java @@ -0,0 +1,66 @@ +package com.billpaymentservice.bbps.util; + +import com.billpaymentservice.bbps.entites.*; + +public class EntityRelationshipUtil { + + private EntityRelationshipUtil() { + // prevent instantiation + } + + /** + * Links all parent-child relationships for BillerDetails and nested entities. + * Ensures bidirectional JPA relationships are correctly set before saving. + */ + public static void linkBillerRelationships(BillerDetails entity) { + + if (entity == null) return; + + if (entity.getBillerPaymentModes() != null) { + entity.getBillerPaymentModes().forEach(m -> m.setBiller(entity)); + } + + if (entity.getBillerPaymentChannels() != null) { + entity.getBillerPaymentChannels().forEach(c -> c.setBiller(entity)); + } + + if (entity.getBillerCustomerParams() != null) { + entity.getBillerCustomerParams().forEach(p -> p.setBiller(entity)); + } + + if (entity.getBillerAdditionalInfos() != null) { + entity.getBillerAdditionalInfos().forEach(a -> a.setBiller(entity)); + } + + if (entity.getInterchangeFees() != null) { + for (InterchangeFee fee : entity.getInterchangeFees()) { + fee.setBiller(entity); + + if (fee.getInterchangeFeeDetails() != null) { + fee.getInterchangeFeeDetails().forEach(detail -> detail.setInterchangeFee(fee)); + } + } + } + + if (entity.getInterchangeFeeConves() != null) { + entity.getInterchangeFeeConves().forEach(fc -> fc.setBiller(entity)); + } + + if (entity.getCustomerParamGroups() != null) + entity.getCustomerParamGroups().setBiller(entity); + + if (entity.getBillerPlanResponseParams() != null) + entity.getBillerPlanResponseParams().setBiller(entity); + + if (entity.getBillerResponseParams() != null) { + BillerResponseParams responseParams = entity.getBillerResponseParams(); + responseParams.setBiller(entity); + + if (responseParams.getAmountOptions() != null) { + responseParams.getAmountOptions() + .forEach(option -> option.setBillerResponseParams(responseParams)); + } + } + } +} + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9dbd297..1f1c54e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,6 +7,8 @@ server.port=8080 # JPA & Hibernate spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.properties.hibernate.default_schema=public + # DataSource spring.datasource.url=jdbc:postgresql://localhost:5432/TestingDB diff --git a/src/test/java/com/lincpay/bbps/BbpsApplicationTests.java b/src/test/java/com/billpaymentservice/bbps/BbpsApplicationTests.java similarity index 64% rename from src/test/java/com/lincpay/bbps/BbpsApplicationTests.java rename to src/test/java/com/billpaymentservice/bbps/BbpsApplicationTests.java index 2068271..4d08e97 100644 --- a/src/test/java/com/lincpay/bbps/BbpsApplicationTests.java +++ b/src/test/java/com/billpaymentservice/bbps/BbpsApplicationTests.java @@ -1,4 +1,4 @@ -package com.lincpay.bbps; +package com.billpaymentservice.bbps; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -6,8 +6,7 @@ import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class BbpsApplicationTests { - @Test - void contextLoads() { - } - + @Test + void contextLoads() { + } } diff --git a/src/test/java/com/billpaymentservice/bbps/controller/TestHttpControllerTest.java b/src/test/java/com/billpaymentservice/bbps/controller/TestHttpControllerTest.java deleted file mode 100644 index 625d96d..0000000 --- a/src/test/java/com/billpaymentservice/bbps/controller/TestHttpControllerTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.billpaymentservice.bbps.controller; - -import com.billpaymentservice.bbps.serviceImpl.HttpService; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.HashMap; - -import static org.junit.jupiter.api.Assertions.*; - -@SpringBootTest -public class TestHttpControllerTest { - - @Autowired - private HttpService httpService; - - @Test - void testGetRequest() { - String url = "https://bbps-staging.digiledge.in/agent/cou-master/masters/billersById?billerId=ADAN00000HAR02"; // Dummy public GET API - HashMap response = httpService.getRequest(url); - System.out.println("✅ GET Response: " + response); - - System.out.println(response); - } - - -}