170 lines
10 KiB
Java
170 lines
10 KiB
Java
package com.billpaymentservice.bbps.controller;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
|
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.BillerDetailRequest;
|
|
import com.billpaymentservice.bbps.dto.request.ContactMasterRequest;
|
|
import com.billpaymentservice.bbps.dto.request.CustomParamRequest;
|
|
import com.billpaymentservice.bbps.dto.request.DispositionRequest;
|
|
import com.billpaymentservice.bbps.dto.request.MasterCategoryRequest;
|
|
import com.billpaymentservice.bbps.dto.request.MasterRequest;
|
|
import com.billpaymentservice.bbps.dto.request.PlanRequest;
|
|
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;
|
|
|
|
@RequestMapping("/masterData")
|
|
@RestController
|
|
@Validated
|
|
@CrossOrigin(origins = "*")
|
|
public class MasterDataController {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(MasterDataController.class);
|
|
|
|
private final MasterDataService masterDataService;
|
|
|
|
public MasterDataController(MasterDataService masterDataService) {
|
|
this.masterDataService = masterDataService;
|
|
}
|
|
|
|
@PostMapping(value = "/getBillerDetails")
|
|
@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) {
|
|
|
|
log.info("Received biller details request for billerId: {}", billerDetailRequest.getBillerId());
|
|
|
|
return ResponseEntity.ok(masterDataService.getBillerByBillerId(billerDetailRequest));
|
|
}
|
|
|
|
@PostMapping(value = "/getContactMasterResponse")
|
|
@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(
|
|
@Validated @RequestBody ContactMasterRequest contactMasterRequest) {
|
|
|
|
return ResponseEntity.ok(masterDataService.getContactMaster(contactMasterRequest));
|
|
}
|
|
|
|
@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(
|
|
@Validated @RequestBody DispositionRequest dispositionDetailRequest) {
|
|
return ResponseEntity.ok(masterDataService.getDispositionDetails(dispositionDetailRequest));
|
|
}
|
|
|
|
@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(
|
|
@Validated @RequestBody DispositionRequest dispositionDetailRequest) {
|
|
return ResponseEntity.ok(masterDataService.getTicketDispositions(dispositionDetailRequest));
|
|
}
|
|
|
|
@PostMapping(value = "/getCustomerParamDetails")
|
|
@Operation(summary = "Fetch customer parameter details by biller ID", description = "API fetches the customer parameter configuration based on the provided biller ID.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Customer parameter details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> getCustomerParamDetails(
|
|
@Validated @RequestBody CustomParamRequest customerParamRequest) {
|
|
|
|
log.info("Received biller details request for billerId: {}", customerParamRequest.getBillerId());
|
|
|
|
return ResponseEntity.ok(masterDataService.getCustomerParamByBillerId(customerParamRequest));
|
|
}
|
|
|
|
@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) {
|
|
return masterDataService.getMasterData(masterRequest);
|
|
}
|
|
|
|
@PostMapping(value = "/getMasterCategoryWise")
|
|
@Operation(summary = "Fetch master data category-wise", description = "API retrieves master data based on the selected category.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Category-wise master data fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> getMasterDataCategoryWise(
|
|
@Valid @RequestBody MasterCategoryRequest masterRequest) {
|
|
return ResponseEntity.ok(masterDataService.fetchMasterDataCategoryWise(masterRequest));
|
|
}
|
|
|
|
@PostMapping(value = "/customerParamGroupsByBillerId")
|
|
@Operation(summary = "Fetch customer parameter groups by biller ID", description = "API retrieves all customer parameter groups configured for the specified biller ID.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Customer parameter groups fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> getCustomerParamGroup(
|
|
@Validated @RequestBody BillerDetailRequest requestModel) {
|
|
return ResponseEntity.ok(masterDataService.fetchCustomerParamGroup(requestModel));
|
|
}
|
|
|
|
@PostMapping(value = "/fetchAmountOptionsByBillerId")
|
|
@Operation(summary = "Fetch all master amount options by biller ID", description = "API retrieves all the master amount options configured for the given biller ID.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Master amount options fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> fetchAllMasterAmountOptionsByBillerId(
|
|
@Validated @RequestBody BillerDetailRequest requestModel) {
|
|
return ResponseEntity.ok(masterDataService.fetchAllMasterAmountOption(requestModel));
|
|
}
|
|
|
|
@PostMapping(value = "/fetchAllPlanCategoriesByBillerId")
|
|
@Operation(summary = "Fetch plan categories by biller ID", description = "API retrieves all plan categories available for the specified biller ID.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Plan categories fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> fetchPlanCategories(@Validated @RequestBody BillerDetailRequest requestModel) {
|
|
return ResponseEntity.ok(masterDataService.fetchPlanCategorie(requestModel));
|
|
}
|
|
|
|
@PostMapping(value = "/initiatingChannel")
|
|
@Operation(summary = "Fetch initiating channel details by biller ID", description = "API retrieves initiating channel information configured for the specified biller ID.")
|
|
@ApiResponses(value = {
|
|
@ApiResponse(responseCode = BBPSConstant.OK_STR, description = "Initiating channel details fetched successfully", content = @Content(mediaType = "application/json", schema = @Schema(implementation = ResponseModel.class))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> initiatingChannel(@Validated @RequestBody BillerDetailRequest requestModel) {
|
|
return ResponseEntity.ok(masterDataService.fetchInitiatingChannel(requestModel));
|
|
}
|
|
|
|
@PostMapping(value = "/fetchPlanByCategoryName")
|
|
@Operation(summary = "Fetch plans by category name", description = "API retrieves all available plans for the specified category name.")
|
|
@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))) })
|
|
@ApiDocCommonResponses
|
|
public ResponseEntity<ResponseModel> fetchPlanByCategory(@Validated @RequestBody PlanRequest requestModel) {
|
|
return ResponseEntity.ok(masterDataService.fetchPlanByCategories(requestModel));
|
|
}
|
|
|
|
}
|