tidy up json serialization for loan account areas.
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package org.mifosng.platform.api;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
@@ -28,12 +31,12 @@ import org.mifosng.platform.api.data.LoanAccountSummaryData;
|
||||
import org.mifosng.platform.api.data.LoanBasicDetailsData;
|
||||
import org.mifosng.platform.api.data.LoanPermissionData;
|
||||
import org.mifosng.platform.api.data.LoanRepaymentPeriodData;
|
||||
import org.mifosng.platform.api.data.LoanRepaymentTransactionData;
|
||||
import org.mifosng.platform.api.data.LoanSchedule;
|
||||
import org.mifosng.platform.api.data.LoanTransactionData;
|
||||
import org.mifosng.platform.api.data.LoanRepaymentTransactionData;
|
||||
import org.mifosng.platform.api.data.NewLoanData;
|
||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
||||
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
|
||||
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
||||
import org.mifosng.platform.exceptions.UnrecognizedQueryParamException;
|
||||
import org.mifosng.platform.loan.service.CalculationPlatformService;
|
||||
import org.mifosng.platform.loan.service.LoanReadPlatformService;
|
||||
@@ -47,14 +50,6 @@ import org.springframework.stereotype.Component;
|
||||
@Scope("singleton")
|
||||
public class LoansApiResource {
|
||||
|
||||
private String filterName = "myFilter";
|
||||
private String allowedFieldList = "";
|
||||
private String loanFilterName = "loanFilter";
|
||||
private String loanAllowedFieldList = "";
|
||||
private String loanRepaymentFilterName = "loanRepaymentFilter";
|
||||
private String loanRepaymentDefaultFieldList = "transactionType,date,total";
|
||||
private String loanRepaymentAllowedFieldList = "";
|
||||
|
||||
@Autowired
|
||||
private LoanReadPlatformService loanReadPlatformService;
|
||||
|
||||
@@ -67,9 +62,6 @@ public class LoansApiResource {
|
||||
@Autowired
|
||||
private ApiDataConversionService apiDataConversionService;
|
||||
|
||||
@Autowired
|
||||
private ApiJSONFormattingService jsonFormattingService;
|
||||
|
||||
@GET
|
||||
@Path("template")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@@ -78,14 +70,19 @@ public class LoansApiResource {
|
||||
@QueryParam("clientId") final Long clientId,
|
||||
@QueryParam("productId") final Long productId,
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
Set<String> typicalResponseParameters = new HashSet<String>(Arrays.asList("clientId", "clientName", "productId", "productName",
|
||||
"selectedProduct", "expectedDisbursementDate", "allowedProducts"));
|
||||
|
||||
Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
if (responseParameters.isEmpty()) {
|
||||
responseParameters.addAll(typicalResponseParameters);
|
||||
}
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
|
||||
NewLoanData workflowData = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
||||
|
||||
NewLoanData workflowData = this.loanReadPlatformService
|
||||
.retrieveClientAndProductDetails(clientId, productId);
|
||||
|
||||
String selectedFields = "";
|
||||
return this.jsonFormattingService.convertRequest(workflowData,
|
||||
filterName, allowedFieldList, selectedFields,
|
||||
uriInfo.getQueryParameters());
|
||||
return this.apiDataConversionService.convertNewLoanDataToJson(prettyPrint, responseParameters, workflowData);
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -96,32 +93,36 @@ public class LoansApiResource {
|
||||
@PathParam("loanId") final Long loanId,
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService
|
||||
.retrieveLoanAccountDetails(loanId);
|
||||
Set<String> typicalResponseParameters = new HashSet<String>(
|
||||
Arrays.asList("id", "externalId", "fundId", "fundName", "loanProductId", "loanProductName", "principal", "inArrearsTolerance", "numberOfRepayments",
|
||||
"repaymentEvery", "interestRatePerPeriod", "annualInterestRate",
|
||||
"repaymentFrequencyType", "interestRateFrequencyType", "amortizationType", "interestType", "interestCalculationPeriodType",
|
||||
"submittedOnDate", "approvedOnDate", "expectedDisbursementDate", "actualDisbursementDate",
|
||||
"expectedFirstRepaymentOnDate", "interestChargedFromDate", "closedOnDate", "expectedMaturityDate",
|
||||
"lifeCycleStatusId", "lifeCycleStatusText", "lifeCycleStatusDate",
|
||||
"summary", "repaymentSchedule", "loanRepayments", "permissions", "convenienceData")
|
||||
);
|
||||
|
||||
Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
if (responseParameters.isEmpty()) {
|
||||
responseParameters.addAll(typicalResponseParameters);
|
||||
}
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
|
||||
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService.retrieveLoanAccountDetails(loanId);
|
||||
|
||||
Collection<LoanRepaymentTransactionData> loanRepayments = this.loanReadPlatformService
|
||||
.retrieveLoanPayments(loanId);
|
||||
Collection<LoanRepaymentPeriodData> repaymentSchedule = this.loanReadPlatformService
|
||||
.retrieveRepaymentSchedule(loanId);
|
||||
Collection<LoanRepaymentTransactionData> loanRepayments = this.loanReadPlatformService.retrieveLoanPayments(loanId);
|
||||
Collection<LoanRepaymentPeriodData> repaymentSchedule = this.loanReadPlatformService.retrieveRepaymentSchedule(loanId);
|
||||
|
||||
LoanAccountSummaryData summary = this.loanReadPlatformService
|
||||
.retrieveSummary(loanBasicDetails.getPrincipal(),
|
||||
repaymentSchedule, loanRepayments);
|
||||
LoanAccountSummaryData summary = this.loanReadPlatformService.retrieveSummary(loanBasicDetails.getPrincipal(), repaymentSchedule, loanRepayments);
|
||||
|
||||
LoanPermissionData permissions = this.loanReadPlatformService
|
||||
.retrieveLoanPermissions(loanBasicDetails, summary
|
||||
.isWaiveAllowed(loanBasicDetails
|
||||
.getInArrearsTolerance()), loanRepayments
|
||||
.size());
|
||||
LoanPermissionData permissions = this.loanReadPlatformService.retrieveLoanPermissions(loanBasicDetails,
|
||||
summary.isWaiveAllowed(loanBasicDetails.getInArrearsTolerance()),
|
||||
loanRepayments.size());
|
||||
|
||||
LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails,
|
||||
summary, repaymentSchedule, loanRepayments, permissions);
|
||||
|
||||
String selectedFields = "";
|
||||
String associatedFields = "summary,repaymentSchedule,loanRepayments,permissions,convenienceData";
|
||||
return this.jsonFormattingService.convertRequest(loanAccount,
|
||||
loanFilterName, loanAllowedFieldList, selectedFields,
|
||||
associatedFields, uriInfo.getQueryParameters());
|
||||
LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, summary, repaymentSchedule, loanRepayments, permissions);
|
||||
|
||||
return this.apiDataConversionService.convertLoanAccountDataToJson(prettyPrint, responseParameters, loanAccount);
|
||||
}
|
||||
|
||||
@POST
|
||||
@@ -261,28 +262,27 @@ public class LoansApiResource {
|
||||
@PathParam("loanId") final Long loanId,
|
||||
@QueryParam("command") final String commandParam,
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
String json = "";
|
||||
String selectedFields = loanRepaymentDefaultFieldList;
|
||||
if (is(commandParam, "repayment")) {
|
||||
LoanTransactionData loanRepaymentData = this.loanReadPlatformService
|
||||
.retrieveNewLoanRepaymentDetails(loanId);
|
||||
json = this.jsonFormattingService.convertRequest(loanRepaymentData,
|
||||
loanRepaymentFilterName, loanRepaymentAllowedFieldList,
|
||||
selectedFields, uriInfo.getQueryParameters());
|
||||
} else if (is(commandParam, "waiver")) {
|
||||
LoanTransactionData loanWaiverData = this.loanReadPlatformService
|
||||
.retrieveNewLoanWaiverDetails(loanId);
|
||||
json = this.jsonFormattingService.convertRequest(loanWaiverData,
|
||||
loanRepaymentFilterName, loanRepaymentAllowedFieldList,
|
||||
selectedFields, uriInfo.getQueryParameters());
|
||||
|
||||
Set<String> typicalResponseParameters = new HashSet<String>(
|
||||
Arrays.asList("id", "transactionType", "date", "principal", "interest", "total", "totalWaived", "overpaid")
|
||||
);
|
||||
|
||||
Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
if (responseParameters.isEmpty()) {
|
||||
responseParameters.addAll(typicalResponseParameters);
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(json)) {
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
|
||||
LoanTransactionData transactionData = null;
|
||||
if (is(commandParam, "repayment")) {
|
||||
transactionData = this.loanReadPlatformService.retrieveNewLoanRepaymentDetails(loanId);
|
||||
} else if (is(commandParam, "waiver")) {
|
||||
transactionData = this.loanReadPlatformService.retrieveNewLoanWaiverDetails(loanId);
|
||||
} else {
|
||||
throw new UnrecognizedQueryParamException("command", commandParam);
|
||||
}
|
||||
|
||||
return json;
|
||||
return this.apiDataConversionService.convertLoanTransactionDataToJson(prettyPrint, responseParameters, transactionData);
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -292,14 +292,20 @@ public class LoansApiResource {
|
||||
public String retrieveTransaction(@PathParam("loanId") final Long loanId,
|
||||
@PathParam("transactionId") final Long transactionId,
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
Set<String> typicalResponseParameters = new HashSet<String>(
|
||||
Arrays.asList("id", "transactionType", "date", "principal", "interest", "total", "totalWaived", "overpaid")
|
||||
);
|
||||
|
||||
Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
if (responseParameters.isEmpty()) {
|
||||
responseParameters.addAll(typicalResponseParameters);
|
||||
}
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
|
||||
LoanTransactionData transactionData = this.loanReadPlatformService.retrieveLoanTransactionDetails(loanId, transactionId);
|
||||
|
||||
LoanTransactionData loanRepaymentData = this.loanReadPlatformService
|
||||
.retrieveLoanTransactionDetails(loanId, transactionId);
|
||||
|
||||
String selectedFields = loanRepaymentDefaultFieldList;
|
||||
return this.jsonFormattingService.convertRequest(loanRepaymentData,
|
||||
loanRepaymentFilterName, loanRepaymentAllowedFieldList,
|
||||
selectedFields, uriInfo.getQueryParameters());
|
||||
return this.apiDataConversionService.convertLoanTransactionDataToJson(prettyPrint, responseParameters, transactionData);
|
||||
}
|
||||
|
||||
@POST
|
||||
|
||||
@@ -3,10 +3,8 @@ package org.mifosng.platform.api.data;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
@JsonFilter("loanFilter")
|
||||
public class LoanAccountData {
|
||||
|
||||
private Long id;
|
||||
|
||||
+25
-63
@@ -2,25 +2,22 @@ package org.mifosng.platform.api.data;
|
||||
|
||||
public class LoanPermissionData {
|
||||
|
||||
private boolean waiveAllowed;
|
||||
private boolean makeRepaymentAllowed;
|
||||
private boolean rejectAllowed;
|
||||
private boolean withdrawnByApplicantAllowed;
|
||||
private boolean undoApprovalAllowed;
|
||||
private boolean disbursalAllowed;
|
||||
private boolean undoDisbursalAllowed;
|
||||
private final boolean waiveAllowed;
|
||||
private final boolean makeRepaymentAllowed;
|
||||
private final boolean rejectAllowed;
|
||||
private final boolean withdrawnByApplicantAllowed;
|
||||
private final boolean undoApprovalAllowed;
|
||||
private final boolean disbursalAllowed;
|
||||
private final boolean undoDisbursalAllowed;
|
||||
|
||||
private boolean pendingApproval;
|
||||
private boolean waitingForDisbursal;
|
||||
private final boolean pendingApproval;
|
||||
private final boolean waitingForDisbursal;
|
||||
private final boolean anyActionOnLoanAllowed;
|
||||
|
||||
protected LoanPermissionData() {
|
||||
//
|
||||
}
|
||||
|
||||
public LoanPermissionData(boolean waiveAllowed,
|
||||
boolean makeRepaymentAllowed, boolean rejectAllowed,
|
||||
boolean withdrawnByApplicantAllowed, boolean undoApprovalAllowed,
|
||||
boolean undoDisbursalAllowed, boolean disbursalAllowed, boolean pendingApproval, boolean waitingForDisbursal) {
|
||||
public LoanPermissionData(final boolean waiveAllowed,
|
||||
final boolean makeRepaymentAllowed, final boolean rejectAllowed,
|
||||
final boolean withdrawnByApplicantAllowed, final boolean undoApprovalAllowed,
|
||||
final boolean undoDisbursalAllowed, final boolean disbursalAllowed, final boolean pendingApproval, final boolean waitingForDisbursal) {
|
||||
this.waiveAllowed = waiveAllowed;
|
||||
this.makeRepaymentAllowed = makeRepaymentAllowed;
|
||||
this.rejectAllowed = rejectAllowed;
|
||||
@@ -30,81 +27,46 @@ public class LoanPermissionData {
|
||||
this.disbursalAllowed = disbursalAllowed;
|
||||
this.pendingApproval = pendingApproval;
|
||||
this.waitingForDisbursal = waitingForDisbursal;
|
||||
}
|
||||
|
||||
public boolean isAnyActionOnLoanAllowed() {
|
||||
return isRejectAllowed() || isWithdrawnByApplicantAllowed() || isPendingApproval() || isUndoDisbursalAllowed() || isMakeRepaymentAllowed();
|
||||
this.anyActionOnLoanAllowed = isRejectAllowed() || isWithdrawnByApplicantAllowed() || isPendingApproval() || isUndoDisbursalAllowed() || isMakeRepaymentAllowed();
|
||||
}
|
||||
|
||||
public boolean isWaiveAllowed() {
|
||||
return waiveAllowed;
|
||||
}
|
||||
|
||||
public void setWaiveAllowed(boolean waiveAllowed) {
|
||||
this.waiveAllowed = waiveAllowed;
|
||||
}
|
||||
|
||||
public boolean isMakeRepaymentAllowed() {
|
||||
return makeRepaymentAllowed;
|
||||
}
|
||||
|
||||
public void setMakeRepaymentAllowed(boolean makeRepaymentAllowed) {
|
||||
this.makeRepaymentAllowed = makeRepaymentAllowed;
|
||||
}
|
||||
|
||||
public boolean isRejectAllowed() {
|
||||
return rejectAllowed;
|
||||
}
|
||||
|
||||
public void setRejectAllowed(boolean rejectAllowed) {
|
||||
this.rejectAllowed = rejectAllowed;
|
||||
}
|
||||
|
||||
public boolean isWithdrawnByApplicantAllowed() {
|
||||
return withdrawnByApplicantAllowed;
|
||||
}
|
||||
|
||||
public void setWithdrawnByApplicantAllowed(boolean withdrawnByApplicantAllowed) {
|
||||
this.withdrawnByApplicantAllowed = withdrawnByApplicantAllowed;
|
||||
}
|
||||
|
||||
public boolean isUndoApprovalAllowed() {
|
||||
return undoApprovalAllowed;
|
||||
}
|
||||
|
||||
public void setUndoApprovalAllowed(boolean undoApprovalAllowed) {
|
||||
this.undoApprovalAllowed = undoApprovalAllowed;
|
||||
}
|
||||
|
||||
public boolean isDisbursalAllowed() {
|
||||
return disbursalAllowed;
|
||||
}
|
||||
|
||||
public void setDisbursalAllowed(boolean disbursalAllowed) {
|
||||
this.disbursalAllowed = disbursalAllowed;
|
||||
}
|
||||
|
||||
public boolean isPendingApproval() {
|
||||
return pendingApproval;
|
||||
}
|
||||
|
||||
public void setPendingApproval(boolean pendingApproval) {
|
||||
this.pendingApproval = pendingApproval;
|
||||
}
|
||||
|
||||
public boolean isWaitingForDisbursal() {
|
||||
return waitingForDisbursal;
|
||||
}
|
||||
|
||||
public void setWaitingForDisbursal(boolean waitingForDisbursal) {
|
||||
this.waitingForDisbursal = waitingForDisbursal;
|
||||
}
|
||||
|
||||
public boolean isUndoDisbursalAllowed() {
|
||||
return undoDisbursalAllowed;
|
||||
}
|
||||
|
||||
public void setUndoDisbursalAllowed(boolean undoDisbursalAllowed) {
|
||||
this.undoDisbursalAllowed = undoDisbursalAllowed;
|
||||
public boolean isPendingApproval() {
|
||||
return pendingApproval;
|
||||
}
|
||||
|
||||
public boolean isWaitingForDisbursal() {
|
||||
return waitingForDisbursal;
|
||||
}
|
||||
|
||||
public boolean isAnyActionOnLoanAllowed() {
|
||||
return anyActionOnLoanAllowed;
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,7 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* TODO - KW - Think this is deprecated now.
|
||||
*/
|
||||
@Deprecated
|
||||
@JsonFilter("loanRepaymentFilter")
|
||||
public class LoanTransactionData {
|
||||
|
||||
private Long id;
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
@JsonFilter("myFilter")
|
||||
public class NewLoanData implements Serializable {
|
||||
public class NewLoanData {
|
||||
|
||||
private Long clientId;
|
||||
private String clientName;
|
||||
|
||||
+9
@@ -20,7 +20,10 @@ import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||
import org.mifosng.platform.api.data.ConfigurationData;
|
||||
import org.mifosng.platform.api.data.FundData;
|
||||
import org.mifosng.platform.api.data.LoanAccountData;
|
||||
import org.mifosng.platform.api.data.LoanProductData;
|
||||
import org.mifosng.platform.api.data.LoanTransactionData;
|
||||
import org.mifosng.platform.api.data.NewLoanData;
|
||||
import org.mifosng.platform.api.data.NoteData;
|
||||
import org.mifosng.platform.api.data.OfficeData;
|
||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||
@@ -48,6 +51,12 @@ public interface ApiDataConversionService {
|
||||
String convertNoteDataToJson(boolean prettyPrint, Set<String> responseParameters, NoteData... notes);
|
||||
|
||||
String convertLoanProductDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanProductData... products);
|
||||
|
||||
String convertNewLoanDataToJson(boolean prettyPrint, Set<String> responseParameters, NewLoanData newLoanData);
|
||||
|
||||
String convertLoanAccountDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanAccountData loanAccount);
|
||||
|
||||
String convertLoanTransactionDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanTransactionData... transactions);
|
||||
//
|
||||
|
||||
FundCommand convertJsonToFundCommand(Long resourceIdentifier, String json);
|
||||
|
||||
+108
@@ -37,7 +37,10 @@ import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||
import org.mifosng.platform.api.data.ConfigurationData;
|
||||
import org.mifosng.platform.api.data.FundData;
|
||||
import org.mifosng.platform.api.data.LoanAccountData;
|
||||
import org.mifosng.platform.api.data.LoanProductData;
|
||||
import org.mifosng.platform.api.data.LoanTransactionData;
|
||||
import org.mifosng.platform.api.data.NewLoanData;
|
||||
import org.mifosng.platform.api.data.NoteData;
|
||||
import org.mifosng.platform.api.data.OfficeData;
|
||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||
@@ -68,6 +71,111 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
|
||||
gsonConverter = new Gson();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertLoanTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanTransactionData... transactions) {
|
||||
Set<String> supportedParameters = new HashSet<String>(
|
||||
Arrays.asList("id", "transactionType", "date", "principal", "interest", "total", "totalWaived", "overpaid")
|
||||
);
|
||||
|
||||
final Set<String> parameterNamesToSkip = new HashSet<String>();
|
||||
|
||||
if (!responseParameters.isEmpty()) {
|
||||
if (!supportedParameters.containsAll(responseParameters)) {
|
||||
throw new UnsupportedParameterException(new ArrayList<String>(responseParameters));
|
||||
}
|
||||
|
||||
parameterNamesToSkip.addAll(supportedParameters);
|
||||
parameterNamesToSkip.removeAll(responseParameters);
|
||||
}
|
||||
|
||||
ExclusionStrategy strategy = new ParameterListExclusionStrategy(parameterNamesToSkip);
|
||||
|
||||
GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy);
|
||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
||||
if (prettyPrint) {
|
||||
builder.setPrettyPrinting();
|
||||
}
|
||||
Gson gsonDeserializer = builder.create();
|
||||
|
||||
String json = "";
|
||||
if (transactions != null && transactions.length == 1) {
|
||||
json = gsonDeserializer.toJson(transactions[0]);
|
||||
} else {
|
||||
json = gsonDeserializer.toJson(transactions);
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertLoanAccountDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanAccountData loanAccount) {
|
||||
Set<String> supportedParameters = new HashSet<String>(
|
||||
Arrays.asList("id", "externalId", "fundId", "fundName", "loanProductId", "loanProductName", "principal", "inArrearsTolerance", "numberOfRepayments",
|
||||
"repaymentEvery", "interestRatePerPeriod", "annualInterestRate",
|
||||
"repaymentFrequencyType", "interestRateFrequencyType", "amortizationType", "interestType", "interestCalculationPeriodType",
|
||||
"submittedOnDate", "approvedOnDate", "expectedDisbursementDate", "actualDisbursementDate",
|
||||
"expectedFirstRepaymentOnDate", "interestChargedFromDate", "closedOnDate", "expectedMaturityDate",
|
||||
"lifeCycleStatusId", "lifeCycleStatusText", "lifeCycleStatusDate",
|
||||
"summary", "repaymentSchedule", "loanRepayments", "permissions", "convenienceData")
|
||||
);
|
||||
|
||||
final Set<String> parameterNamesToSkip = new HashSet<String>();
|
||||
|
||||
if (!responseParameters.isEmpty()) {
|
||||
if (!supportedParameters.containsAll(responseParameters)) {
|
||||
throw new UnsupportedParameterException(new ArrayList<String>(responseParameters));
|
||||
}
|
||||
|
||||
parameterNamesToSkip.addAll(supportedParameters);
|
||||
parameterNamesToSkip.removeAll(responseParameters);
|
||||
}
|
||||
|
||||
ExclusionStrategy strategy = new ParameterListExclusionStrategy(parameterNamesToSkip);
|
||||
|
||||
GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy);
|
||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
||||
if (prettyPrint) {
|
||||
builder.setPrettyPrinting();
|
||||
}
|
||||
Gson gsonDeserializer = builder.create();
|
||||
|
||||
return gsonDeserializer.toJson(loanAccount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertNewLoanDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final NewLoanData newLoanData) {
|
||||
|
||||
Set<String> supportedParameters = new HashSet<String>(
|
||||
Arrays.asList("clientId", "clientName", "productId", "productName",
|
||||
"selectedProduct", "expectedDisbursementDate", "allowedProducts")
|
||||
);
|
||||
|
||||
final Set<String> parameterNamesToSkip = new HashSet<String>();
|
||||
|
||||
if (!responseParameters.isEmpty()) {
|
||||
if (!supportedParameters.containsAll(responseParameters)) {
|
||||
throw new UnsupportedParameterException(new ArrayList<String>(responseParameters));
|
||||
}
|
||||
|
||||
parameterNamesToSkip.addAll(supportedParameters);
|
||||
parameterNamesToSkip.removeAll(responseParameters);
|
||||
}
|
||||
|
||||
ExclusionStrategy strategy = new ParameterListExclusionStrategy(parameterNamesToSkip);
|
||||
|
||||
GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy);
|
||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
||||
if (prettyPrint) {
|
||||
builder.setPrettyPrinting();
|
||||
}
|
||||
Gson gsonDeserializer = builder.create();
|
||||
|
||||
return gsonDeserializer.toJson(newLoanData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertLoanProductDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanProductData... products) {
|
||||
Set<String> supportedParameters = new HashSet<String>(
|
||||
|
||||
Reference in New Issue
Block a user