Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ ResponseEntity<FetchBeneficiariesResponseDTO> fetchBeneficiary(@PathVariable Str

@GetMapping("/beneficiaries")
ResponseEntity<Page<FetchBeneficiariesResponseDTO>> fetchAllBeneficiary(
@RequestHeader(value = "X-Registering-Institution-ID") String registeringInstitutionId,
@RequestHeader(value = "X-Registering-Institution-ID", required = false) String registeringInstitutionId,
@RequestHeader(value = "X-Banking-Institution-Code", required = false) String bankingInstitutionCode,
@RequestParam(value = "page", required = false, defaultValue = "0") Integer page,
@RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize)
throws ExecutionException, InterruptedException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,17 @@ public ResponseEntity<FetchBeneficiariesResponseDTO> fetchBeneficiary(String pay
}

@Override
public ResponseEntity<Page<FetchBeneficiariesResponseDTO>> fetchAllBeneficiary(String registeringInstitutionId, Integer page,
public ResponseEntity<Page<FetchBeneficiariesResponseDTO>> fetchAllBeneficiary(String registeringInstitutionId,String bankingInstitutionCode, Integer page,
Integer pageSize) throws ExecutionException, InterruptedException {
if (StringUtils.isBlank(registeringInstitutionId)) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
Page<FetchBeneficiariesResponseDTO> fetchBeneficiariesResponseDTO;

if (StringUtils.isNotBlank(registeringInstitutionId)) {
fetchBeneficiariesResponseDTO = fetchBeneficiariesService.fetchAllBeneficiariesByRegisteringInstitution(page, pageSize, registeringInstitutionId);
} else if (StringUtils.isNotBlank(bankingInstitutionCode)) {
fetchBeneficiariesResponseDTO = fetchBeneficiariesService.fetchAllBeneficiariesByBankingInstitution(page, pageSize, bankingInstitutionCode);
} else {
fetchBeneficiariesResponseDTO = fetchBeneficiariesService.fetchAllBeneficiaries(page, pageSize);
}
Page<FetchBeneficiariesResponseDTO> fetchBeneficiariesResponseDTO = fetchBeneficiariesService.fetchAllBeneficiaries(page, pageSize,
registeringInstitutionId);
return ResponseEntity.status(HttpStatus.OK).body(fetchBeneficiariesResponseDTO);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.mifos.identityaccountmapper.repository;

import java.util.List;
import java.util.Optional;
import org.mifos.identityaccountmapper.domain.IdentityDetails;
import org.springframework.data.domain.Page;
Expand All @@ -11,6 +12,8 @@
@Repository
public interface MasterRepository extends JpaRepository<IdentityDetails, Long>, JpaSpecificationExecutor<IdentityDetails> {

List<IdentityDetails> findByMasterId(String masterId);

Optional<IdentityDetails> findByMasterIdAndRegisteringInstitutionId(String masterId, String registeringInstitutionId);

Optional<IdentityDetails> findByPayeeIdentityAndRegisteringInstitutionId(String functionalId, String registeringInstitutionId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
package org.mifos.identityaccountmapper.repository;

import java.util.List;
import java.util.Optional;

import org.mifos.identityaccountmapper.domain.PaymentModalityDetails;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

@Repository
Expand All @@ -12,4 +18,7 @@ public interface PaymentModalityRepository
// IdentityDetails findByMasterId(Long masterId);

List<PaymentModalityDetails> findByMasterId(String masterID);

Page<PaymentModalityDetails> findByInstitutionCode(String institutionCode, Pageable pageable);

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.mifos.identityaccountmapper.service;

import java.util.List;
import java.util.Optional;

import org.mifos.identityaccountmapper.data.FetchBeneficiariesResponseDTO;
import org.mifos.identityaccountmapper.domain.IdentityDetails;
import org.mifos.identityaccountmapper.domain.PaymentModalityDetails;
Expand Down Expand Up @@ -37,26 +39,43 @@ public FetchBeneficiariesResponseDTO fetchBeneficiary(String payeeIdentity, Stri
paymentModalityDetails.getDestinationAccount(), paymentModalityDetails.getInstitutionCode());
}

public Page<FetchBeneficiariesResponseDTO> fetchAllBeneficiaries(int page, int pageSize, String registeringInstitutionId) {
public Page<FetchBeneficiariesResponseDTO> fetchAllBeneficiaries(int page, int pageSize) {
Pageable pageRequest = PageRequest.of(page, pageSize);
Page<IdentityDetails> identityPage = masterRepository.findAll(pageRequest);
return identityPage.map(identityDetails -> {
PaymentModalityDetails paymentModalityDetails = paymentModalityRepository.findByMasterId(identityDetails.getMasterId()).get(0);
return new FetchBeneficiariesResponseDTO(identityDetails.getRegisteringInstitutionId(), identityDetails.getPayeeIdentity(),
paymentModalityDetails.getModality(), paymentModalityDetails.getDestinationAccount(), paymentModalityDetails.getInstitutionCode());
});
}

public Page<FetchBeneficiariesResponseDTO> fetchAllBeneficiariesByRegisteringInstitution(int page, int pageSize, String registeringInstitutionId) {
Pageable pageRequest = PageRequest.of(page, pageSize);
Page<IdentityDetails> identityPage = masterRepository.findByRegisteringInstitutionId(registeringInstitutionId, pageRequest);

return identityPage.map(identityDetails -> {
PaymentModalityDetails paymentModalityDetails = null;
if (identityDetails != null) {
List<PaymentModalityDetails> paymentModalities = paymentModalityRepository.findByMasterId(identityDetails.getMasterId());
if (!paymentModalities.isEmpty()) {
paymentModalityDetails = paymentModalities.get(0);
}
}

return new FetchBeneficiariesResponseDTO(registeringInstitutionId,
identityDetails != null ? identityDetails.getPayeeIdentity() : null,
paymentModalityDetails != null ? paymentModalityDetails.getModality() : null,
paymentModalityDetails != null ? paymentModalityDetails.getDestinationAccount() : null,
paymentModalityDetails != null ? paymentModalityDetails.getInstitutionCode() : null);
PaymentModalityDetails paymentModalityDetails = paymentModalityRepository.findByMasterId(identityDetails.getMasterId()).get(0);
return new FetchBeneficiariesResponseDTO(registeringInstitutionId, identityDetails.getPayeeIdentity(),
paymentModalityDetails.getModality(), paymentModalityDetails.getDestinationAccount(), paymentModalityDetails.getInstitutionCode());
});
}

public Page<FetchBeneficiariesResponseDTO> fetchAllBeneficiariesByBankingInstitution(int page, int pageSize, String bankingInstitutionCode) {
Pageable pageRequest = PageRequest.of(page, pageSize);
Page<PaymentModalityDetails> paymentModalityPage = paymentModalityRepository.findByInstitutionCode(bankingInstitutionCode, pageRequest);
System.out.println(paymentModalityPage);
return paymentModalityPage.map(paymentModalityDetails -> {
IdentityDetails identityDetails = masterRepository.findByMasterId(paymentModalityDetails.getMasterId()).get(0);
System.out.println(identityDetails.getPayeeIdentity());
System.out.println(paymentModalityDetails.getDestinationAccount());
return new FetchBeneficiariesResponseDTO(identityDetails.getRegisteringInstitutionId(), identityDetails.getPayeeIdentity(),
paymentModalityDetails.getModality(), paymentModalityDetails.getDestinationAccount(), bankingInstitutionCode);

});


}




}