MIFOSX-232: align loan account api data with loan product data.
This commit is contained in:
+47
-27
@@ -153,27 +153,6 @@ public class LoansApiResource {
|
||||
|
||||
// template
|
||||
final Collection<LoanProductData> productOptions = this.loanProductReadPlatformService.retrieveAllLoanProductsForLookup();
|
||||
final Collection<EnumOptionData> loanTermFrequencyTypeOptions = dropdownReadPlatformService.retrieveLoanTermFrequencyTypeOptions();
|
||||
final Collection<EnumOptionData> repaymentFrequencyTypeOptions = dropdownReadPlatformService
|
||||
.retrieveRepaymentFrequencyTypeOptions();
|
||||
final Collection<EnumOptionData> interestRateFrequencyTypeOptions = dropdownReadPlatformService
|
||||
.retrieveInterestRateFrequencyTypeOptions();
|
||||
|
||||
final Collection<EnumOptionData> amortizationTypeOptions = dropdownReadPlatformService.retrieveLoanAmortizationTypeOptions();
|
||||
final Collection<EnumOptionData> interestTypeOptions = dropdownReadPlatformService.retrieveLoanInterestTypeOptions();
|
||||
final Collection<EnumOptionData> interestCalculationPeriodTypeOptions = dropdownReadPlatformService
|
||||
.retrieveLoanInterestRateCalculatedInPeriodOptions();
|
||||
|
||||
final Collection<FundData> fundOptions = this.fundReadPlatformService.retrieveAllFunds();
|
||||
final Collection<TransactionProcessingStrategyData> repaymentStrategyOptions = this.dropdownReadPlatformService
|
||||
.retreiveTransactionProcessingStrategies();
|
||||
final Collection<CodeValueData> loanPurposeOptions = this.codeValueReadPlatformService.retrieveCodeValuesByCode("LoanPurpose");
|
||||
final Collection<CodeValueData> loanCollateralOptions = this.codeValueReadPlatformService
|
||||
.retrieveCodeValuesByCode("LoanCollateral");
|
||||
|
||||
final boolean feeChargesOnly = false;
|
||||
final Collection<ChargeData> chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges(feeChargesOnly);
|
||||
final ChargeData chargeTemplate = this.loanChargeReadPlatformService.retrieveLoanChargeTemplate();
|
||||
|
||||
// associations
|
||||
final LoanScheduleData repaymentSchedule = null;
|
||||
@@ -181,12 +160,50 @@ public class LoansApiResource {
|
||||
final Collection<LoanCollateralData> collateral = null;
|
||||
final Collection<GuarantorData> guarantors = null;
|
||||
|
||||
// options
|
||||
Collection<EnumOptionData> loanTermFrequencyTypeOptions = null;
|
||||
Collection<EnumOptionData> repaymentFrequencyTypeOptions = null;
|
||||
Collection<EnumOptionData> interestRateFrequencyTypeOptions = null;
|
||||
Collection<EnumOptionData> amortizationTypeOptions = null;
|
||||
Collection<EnumOptionData> interestTypeOptions = null;
|
||||
Collection<EnumOptionData> interestCalculationPeriodTypeOptions = null;
|
||||
Collection<FundData> fundOptions = null;
|
||||
Collection<TransactionProcessingStrategyData> repaymentStrategyOptions = null;
|
||||
Collection<StaffData> allowedLoanOfficers = null;
|
||||
Collection<CodeValueData> loanPurposeOptions = null;
|
||||
Collection<CodeValueData> loanCollateralOptions = null;
|
||||
Collection<ChargeData> chargeOptions = null;
|
||||
ChargeData chargeTemplate = null;
|
||||
|
||||
if (productId != null) {
|
||||
loanTermFrequencyTypeOptions = dropdownReadPlatformService.retrieveLoanTermFrequencyTypeOptions();
|
||||
repaymentFrequencyTypeOptions = dropdownReadPlatformService.retrieveRepaymentFrequencyTypeOptions();
|
||||
interestRateFrequencyTypeOptions = dropdownReadPlatformService.retrieveInterestRateFrequencyTypeOptions();
|
||||
|
||||
amortizationTypeOptions = dropdownReadPlatformService.retrieveLoanAmortizationTypeOptions();
|
||||
interestTypeOptions = dropdownReadPlatformService.retrieveLoanInterestTypeOptions();
|
||||
interestCalculationPeriodTypeOptions = dropdownReadPlatformService.retrieveLoanInterestRateCalculatedInPeriodOptions();
|
||||
|
||||
fundOptions = this.fundReadPlatformService.retrieveAllFunds();
|
||||
repaymentStrategyOptions = this.dropdownReadPlatformService.retreiveTransactionProcessingStrategies();
|
||||
loanPurposeOptions = this.codeValueReadPlatformService.retrieveCodeValuesByCode("LoanPurpose");
|
||||
loanCollateralOptions = this.codeValueReadPlatformService.retrieveCodeValuesByCode("LoanCollateral");
|
||||
|
||||
final boolean feeChargesOnly = false;
|
||||
chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges(feeChargesOnly);
|
||||
// chargeTemplate =
|
||||
// this.loanChargeReadPlatformService.retrieveLoanChargeTemplate();
|
||||
}
|
||||
|
||||
LoanAccountData newLoanAccount = null;
|
||||
if (clientId != null) {
|
||||
final LoanAccountData loanBasicDetails = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
||||
final LoanAccountData loanBasicDetails = this.loanReadPlatformService.retrieveTemplateWithClientAndProductDetails(clientId,
|
||||
productId);
|
||||
final Collection<LoanChargeData> charges = loanBasicDetails.charges();
|
||||
final Long officeId = loanBasicDetails.officeId();
|
||||
final Collection<StaffData> allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId);
|
||||
if (productId != null) {
|
||||
final Long officeId = loanBasicDetails.officeId();
|
||||
allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId);
|
||||
}
|
||||
|
||||
newLoanAccount = LoanAccountData.associationsAndTemplate(loanBasicDetails, repaymentSchedule, loanRepayments, charges,
|
||||
collateral, guarantors, productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||
@@ -195,10 +212,13 @@ public class LoansApiResource {
|
||||
loanPurposeOptions, loanCollateralOptions);
|
||||
|
||||
} else if (groupId != null) {
|
||||
final LoanAccountData loanBasicDetails = this.loanReadPlatformService.retrieveGroupAndProductDetails(groupId, productId);
|
||||
final LoanAccountData loanBasicDetails = this.loanReadPlatformService.retrieveTemplateWithGroupAndProductDetails(groupId,
|
||||
productId);
|
||||
final Collection<LoanChargeData> charges = loanBasicDetails.charges();
|
||||
final Long officeId = loanBasicDetails.officeId();
|
||||
final Collection<StaffData> allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId);
|
||||
if (productId != null) {
|
||||
final Long officeId = loanBasicDetails.officeId();
|
||||
allowedLoanOfficers = this.staffReadPlatformService.retrieveAllLoanOfficersByOffice(officeId);
|
||||
}
|
||||
|
||||
newLoanAccount = LoanAccountData.associationsAndTemplate(loanBasicDetails, repaymentSchedule, loanRepayments, charges,
|
||||
collateral, guarantors, productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||
|
||||
+68
-37
@@ -22,6 +22,7 @@ import org.mifosplatform.portfolio.loanaccount.guarantor.data.GuarantorData;
|
||||
import org.mifosplatform.portfolio.loanaccount.loanschedule.data.LoanScheduleData;
|
||||
import org.mifosplatform.portfolio.loanproduct.data.LoanProductData;
|
||||
import org.mifosplatform.portfolio.loanproduct.data.TransactionProcessingStrategyData;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
/**
|
||||
* Immutable data object representing loan account data.
|
||||
@@ -30,10 +31,16 @@ import org.mifosplatform.portfolio.loanproduct.data.TransactionProcessingStrateg
|
||||
public class LoanAccountData {
|
||||
|
||||
// basic loan details
|
||||
|
||||
// identity
|
||||
private final Long id;
|
||||
private final String accountNo;
|
||||
private final LoanStatusEnumData status;
|
||||
private final String externalId;
|
||||
|
||||
// status
|
||||
private final LoanStatusEnumData status;
|
||||
|
||||
// related to
|
||||
private final Long clientId;
|
||||
private final String clientName;
|
||||
private final Long clientOfficeId;
|
||||
@@ -49,27 +56,31 @@ public class LoanAccountData {
|
||||
private final String loanPurposeName;
|
||||
private final Long loanOfficerId;
|
||||
private final String loanOfficerName;
|
||||
|
||||
// terms
|
||||
private final CurrencyData currency;
|
||||
private final BigDecimal principal;
|
||||
private final BigDecimal inArrearsTolerance;
|
||||
private final Integer termFrequency;
|
||||
private final EnumOptionData termPeriodFrequencyType;
|
||||
private final Integer numberOfRepayments;
|
||||
private final Integer repaymentEvery;
|
||||
private final EnumOptionData repaymentFrequencyType;
|
||||
private final Long transactionProcessingStrategyId;
|
||||
private final EnumOptionData amortizationType;
|
||||
private final BigDecimal interestRatePerPeriod;
|
||||
private final EnumOptionData interestRateFrequencyType;
|
||||
private final BigDecimal annualInterestRate;
|
||||
private final EnumOptionData interestType;
|
||||
private final EnumOptionData interestCalculationPeriodType;
|
||||
|
||||
// settings
|
||||
private final EnumOptionData amortizationType;
|
||||
private final EnumOptionData interestType;
|
||||
private final EnumOptionData interestCalculationPeriodType;
|
||||
private final BigDecimal inArrearsTolerance;
|
||||
private final Long transactionProcessingStrategyId;
|
||||
private final LocalDate expectedFirstRepaymentOnDate;
|
||||
private final LocalDate interestChargedFromDate;
|
||||
|
||||
// timeline
|
||||
private final LoanApplicationTimelineData timeline;
|
||||
|
||||
// totals
|
||||
private final LoanSummaryData summary;
|
||||
|
||||
@@ -81,22 +92,20 @@ public class LoanAccountData {
|
||||
private final Collection<GuarantorData> guarantors;
|
||||
|
||||
// template
|
||||
private final Collection<StaffData> loanOfficerOptions;
|
||||
private final Collection<LoanProductData> productOptions;
|
||||
private final Collection<StaffData> loanOfficerOptions;
|
||||
private final Collection<CodeValueData> loanPurposeOptions;
|
||||
private final Collection<FundData> fundOptions;
|
||||
private final Collection<EnumOptionData> termFrequencyTypeOptions;
|
||||
private final Collection<EnumOptionData> repaymentFrequencyTypeOptions;
|
||||
private final Collection<TransactionProcessingStrategyData> repaymentStrategyOptions;
|
||||
private final Collection<EnumOptionData> interestRateFrequencyTypeOptions;
|
||||
private final Collection<EnumOptionData> amortizationTypeOptions;
|
||||
private final Collection<EnumOptionData> interestTypeOptions;
|
||||
private final Collection<EnumOptionData> interestCalculationPeriodTypeOptions;
|
||||
private final Collection<FundData> fundOptions;
|
||||
private final Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions;
|
||||
private final Collection<ChargeData> chargeOptions;
|
||||
private final Collection<CodeValueData> loanPurposeOptions;
|
||||
private final Collection<CodeValueData> loanCollateralOptions;
|
||||
|
||||
private final ChargeData chargeTemplate;
|
||||
|
||||
@Transient
|
||||
private BigDecimal feeChargesAtDisbursementCharged;
|
||||
|
||||
@@ -153,7 +162,7 @@ public class LoanAccountData {
|
||||
final Collection<LoanProductData> productOptions = null;
|
||||
final Collection<EnumOptionData> termFrequencyTypeOptions = null;
|
||||
final Collection<EnumOptionData> repaymentFrequencyTypeOptions = null;
|
||||
final Collection<TransactionProcessingStrategyData> repaymentStrategyOptions = null;
|
||||
final Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions = null;
|
||||
final Collection<EnumOptionData> interestRateFrequencyTypeOptions = null;
|
||||
final Collection<EnumOptionData> amortizationTypeOptions = null;
|
||||
final Collection<EnumOptionData> interestTypeOptions = null;
|
||||
@@ -171,9 +180,9 @@ public class LoanAccountData {
|
||||
interestRatePerPeriod, interestRateFrequencyType, annualInterestRate, interestType, interestCalculationPeriodType,
|
||||
expectedFirstRepaymentOnDate, interestChargedFromDate, timeline, summary, feeChargesDueAtDisbursementCharged,
|
||||
repaymentSchedule, transactions, charges, collateral, guarantors, productOptions, termFrequencyTypeOptions,
|
||||
repaymentFrequencyTypeOptions, repaymentStrategyOptions, interestRateFrequencyTypeOptions, amortizationTypeOptions,
|
||||
interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, chargeTemplate, loanOfficerOptions,
|
||||
loanPurposeOptions, loanCollateralOptions);
|
||||
repaymentFrequencyTypeOptions, transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions,
|
||||
chargeTemplate, loanOfficerOptions, loanPurposeOptions, loanCollateralOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -429,7 +438,7 @@ public class LoanAccountData {
|
||||
final Collection<LoanCollateralData> collateral, final Collection<GuarantorData> guarantors,
|
||||
final Collection<LoanProductData> productOptions, final Collection<EnumOptionData> termFrequencyTypeOptions,
|
||||
final Collection<EnumOptionData> repaymentFrequencyTypeOptions,
|
||||
final Collection<TransactionProcessingStrategyData> repaymentStrategyOptions,
|
||||
final Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions,
|
||||
final Collection<EnumOptionData> interestRateFrequencyTypeOptions, final Collection<EnumOptionData> amortizationTypeOptions,
|
||||
final Collection<EnumOptionData> interestTypeOptions, final Collection<EnumOptionData> interestCalculationPeriodTypeOptions,
|
||||
final Collection<FundData> fundOptions, final Collection<ChargeData> chargeOptions, final ChargeData chargeTemplate,
|
||||
@@ -443,7 +452,7 @@ public class LoanAccountData {
|
||||
acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType,
|
||||
acc.interestCalculationPeriodType, acc.expectedFirstRepaymentOnDate, acc.interestChargedFromDate, acc.timeline,
|
||||
acc.summary, acc.feeChargesAtDisbursementCharged, repaymentSchedule, transactions, charges, collateral, guarantors,
|
||||
productOptions, termFrequencyTypeOptions, repaymentFrequencyTypeOptions, repaymentStrategyOptions,
|
||||
productOptions, termFrequencyTypeOptions, repaymentFrequencyTypeOptions, transactionProcessingStrategyOptions,
|
||||
interestRateFrequencyTypeOptions, amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions,
|
||||
fundOptions, chargeOptions, chargeTemplate, loanOfficerOptions, loanPurposeOptions, loanCollateralOptions);
|
||||
}
|
||||
@@ -476,23 +485,16 @@ public class LoanAccountData {
|
||||
final Integer numberOfRepayments,
|
||||
final Integer repaymentEvery,
|
||||
final EnumOptionData repaymentFrequencyType, //
|
||||
final Long transactionProcessingStrategyId,
|
||||
final EnumOptionData amortizationType,
|
||||
final BigDecimal interestRatePerPeriod,
|
||||
final EnumOptionData interestRateFrequencyType,
|
||||
final BigDecimal annualInterestRate,
|
||||
final EnumOptionData interestType,
|
||||
final EnumOptionData interestCalculationPeriodType,
|
||||
final LocalDate expectedFirstRepaymentOnDate,
|
||||
final LocalDate interestChargedFromDate,
|
||||
final LoanApplicationTimelineData timeline,
|
||||
final LoanSummaryData summary, //
|
||||
final Long transactionProcessingStrategyId, final EnumOptionData amortizationType, final BigDecimal interestRatePerPeriod,
|
||||
final EnumOptionData interestRateFrequencyType, final BigDecimal annualInterestRate, final EnumOptionData interestType,
|
||||
final EnumOptionData interestCalculationPeriodType, final LocalDate expectedFirstRepaymentOnDate,
|
||||
final LocalDate interestChargedFromDate, final LoanApplicationTimelineData timeline, final LoanSummaryData summary,
|
||||
final BigDecimal feeChargesDueAtDisbursementCharged, final LoanScheduleData repaymentSchedule,
|
||||
final Collection<LoanTransactionData> transactions, final Collection<LoanChargeData> charges,
|
||||
final Collection<LoanCollateralData> collateral, final Collection<GuarantorData> guarantors,
|
||||
final Collection<LoanProductData> productOptions, final Collection<EnumOptionData> termFrequencyTypeOptions,
|
||||
final Collection<EnumOptionData> repaymentFrequencyTypeOptions,
|
||||
final Collection<TransactionProcessingStrategyData> repaymentStrategyOptions,
|
||||
final Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions,
|
||||
final Collection<EnumOptionData> interestRateFrequencyTypeOptions, final Collection<EnumOptionData> amortizationTypeOptions,
|
||||
final Collection<EnumOptionData> interestTypeOptions, final Collection<EnumOptionData> interestCalculationPeriodTypeOptions,
|
||||
final Collection<FundData> fundOptions, final Collection<ChargeData> chargeOptions, final ChargeData chargeTemplate,
|
||||
@@ -550,17 +552,46 @@ public class LoanAccountData {
|
||||
this.productOptions = productOptions;
|
||||
this.termFrequencyTypeOptions = termFrequencyTypeOptions;
|
||||
this.repaymentFrequencyTypeOptions = repaymentFrequencyTypeOptions;
|
||||
this.repaymentStrategyOptions = repaymentStrategyOptions;
|
||||
this.interestRateFrequencyTypeOptions = interestRateFrequencyTypeOptions;
|
||||
this.amortizationTypeOptions = amortizationTypeOptions;
|
||||
this.interestTypeOptions = interestTypeOptions;
|
||||
this.interestCalculationPeriodTypeOptions = interestCalculationPeriodTypeOptions;
|
||||
this.fundOptions = fundOptions;
|
||||
this.chargeOptions = chargeOptions;
|
||||
this.chargeTemplate = chargeTemplate;
|
||||
this.loanOfficerOptions = loanOfficerOptions;
|
||||
this.loanPurposeOptions = loanPurposeOptions;
|
||||
this.loanCollateralOptions = loanCollateralOptions;
|
||||
|
||||
if (CollectionUtils.isEmpty(transactionProcessingStrategyOptions)) {
|
||||
this.transactionProcessingStrategyOptions = null;
|
||||
} else {
|
||||
this.transactionProcessingStrategyOptions = transactionProcessingStrategyOptions;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(fundOptions)) {
|
||||
this.fundOptions = null;
|
||||
} else {
|
||||
this.fundOptions = fundOptions;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(chargeOptions)) {
|
||||
this.chargeOptions = null;
|
||||
} else {
|
||||
this.chargeOptions = chargeOptions;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(loanOfficerOptions)) {
|
||||
this.loanOfficerOptions = null;
|
||||
} else {
|
||||
this.loanOfficerOptions = loanOfficerOptions;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(loanPurposeOptions)) {
|
||||
this.loanPurposeOptions = null;
|
||||
} else {
|
||||
this.loanPurposeOptions = loanPurposeOptions;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(loanCollateralOptions)) {
|
||||
this.loanCollateralOptions = null;
|
||||
} else {
|
||||
this.loanCollateralOptions = loanCollateralOptions;
|
||||
}
|
||||
}
|
||||
|
||||
public RepaymentScheduleRelatedLoanData repaymentScheduleRelatedData() {
|
||||
|
||||
+2
-2
@@ -20,9 +20,9 @@ public interface LoanReadPlatformService {
|
||||
|
||||
Collection<LoanTransactionData> retrieveLoanTransactions(Long loanId);
|
||||
|
||||
LoanAccountData retrieveClientAndProductDetails(Long clientId, Long productId);
|
||||
LoanAccountData retrieveTemplateWithClientAndProductDetails(Long clientId, Long productId);
|
||||
|
||||
LoanAccountData retrieveGroupAndProductDetails(Long groupId, Long productId);
|
||||
LoanAccountData retrieveTemplateWithGroupAndProductDetails(Long groupId, Long productId);
|
||||
|
||||
LoanTransactionData retrieveLoanTransactionTemplate(Long loanId);
|
||||
|
||||
|
||||
+2
-2
@@ -136,7 +136,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoanAccountData retrieveClientAndProductDetails(final Long clientId, final Long productId) {
|
||||
public LoanAccountData retrieveTemplateWithClientAndProductDetails(final Long clientId, final Long productId) {
|
||||
|
||||
context.authenticatedUser();
|
||||
|
||||
@@ -154,7 +154,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoanAccountData retrieveGroupAndProductDetails(final Long groupId, final Long productId) {
|
||||
public LoanAccountData retrieveTemplateWithGroupAndProductDetails(final Long groupId, final Long productId) {
|
||||
|
||||
context.authenticatedUser();
|
||||
|
||||
|
||||
-3
@@ -156,11 +156,9 @@ public class LoanProductData {
|
||||
this.principal = principal;
|
||||
this.inArrearsTolerance = tolerance;
|
||||
this.numberOfRepayments = numberOfRepayments;
|
||||
// this.loanTermFrequency = loanTermFrequency;
|
||||
this.repaymentEvery = repaymentEvery;
|
||||
this.interestRatePerPeriod = interestRatePerPeriod;
|
||||
this.annualInterestRate = annualInterestRate;
|
||||
// this.loanTermFrequencyType = loanTermFrequencyType;
|
||||
this.repaymentFrequencyType = repaymentFrequencyType;
|
||||
this.interestRateFrequencyType = interestRateFrequencyType;
|
||||
this.amortizationType = amortizationType;
|
||||
@@ -180,7 +178,6 @@ public class LoanProductData {
|
||||
this.amortizationTypeOptions = null;
|
||||
this.interestTypeOptions = null;
|
||||
this.interestCalculationPeriodTypeOptions = null;
|
||||
// this.loanTermFrequencyTypeOptions = null;
|
||||
this.repaymentFrequencyTypeOptions = null;
|
||||
this.interestRateFrequencyTypeOptions = null;
|
||||
|
||||
|
||||
+6
-10
@@ -15,7 +15,6 @@ import javax.ws.rs.core.UriInfo;
|
||||
import org.mifosplatform.infrastructure.core.api.ApiRequestParameterHelper;
|
||||
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||
import org.mifosplatform.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.mifosplatform.portfolio.search.SearchConstants.SEARCH_RESPONSE_PARAMETERS;
|
||||
import org.mifosplatform.portfolio.search.data.SearchConditions;
|
||||
import org.mifosplatform.portfolio.search.data.SearchData;
|
||||
@@ -31,15 +30,14 @@ public class SearchApiResource {
|
||||
|
||||
private final Set<String> searchResponseParameters = SEARCH_RESPONSE_PARAMETERS.getAllValues();
|
||||
|
||||
private final PlatformSecurityContext context;
|
||||
private final SearchReadPlatformService searchReadPlatformService;
|
||||
private final ToApiJsonSerializer<SearchData> toApiJsonSerializer;
|
||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||
|
||||
@Autowired
|
||||
public SearchApiResource(final PlatformSecurityContext context, final SearchReadPlatformService searchReadPlatformService, final ToApiJsonSerializer<SearchData> toApiJsonSerializer, final ApiRequestParameterHelper apiRequestParameterHelper) {
|
||||
public SearchApiResource(final SearchReadPlatformService searchReadPlatformService,
|
||||
final ToApiJsonSerializer<SearchData> toApiJsonSerializer, final ApiRequestParameterHelper apiRequestParameterHelper) {
|
||||
|
||||
this.context = context;
|
||||
this.searchReadPlatformService = searchReadPlatformService;
|
||||
this.toApiJsonSerializer = toApiJsonSerializer;
|
||||
this.apiRequestParameterHelper = apiRequestParameterHelper;
|
||||
@@ -49,16 +47,14 @@ public class SearchApiResource {
|
||||
@GET
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") final String query, @QueryParam("resource") final String resource) {
|
||||
public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") final String query,
|
||||
@QueryParam("resource") final String resource) {
|
||||
|
||||
// FIXME - Do we need to validate for permissions
|
||||
|
||||
SearchConditions searchConditions = new SearchConditions(query, resource);
|
||||
final SearchConditions searchConditions = new SearchConditions(query, resource);
|
||||
|
||||
final Collection<SearchData> searchResults = this.searchReadPlatformService.retriveMatchingData(searchConditions);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, searchResults, searchResponseParameters);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Collection;
|
||||
import org.mifosplatform.portfolio.search.data.SearchConditions;
|
||||
import org.mifosplatform.portfolio.search.data.SearchData;
|
||||
|
||||
|
||||
public interface SearchReadPlatformService {
|
||||
|
||||
Collection<SearchData> retriveMatchingData(SearchConditions searchConditions);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user