Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extended fix for FINERACT-470 #379

Merged
merged 1 commit into from Jul 13, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -30,7 +30,4 @@ public class AccrualAccountingConstants {

public static final String PERIODIC_ACCRUAL_ACCOUNTING_RESOURCE_NAME = "periodicaccrual";
public static final String PERIODIC_ACCRUAL_ACCOUNTING_EXECUTION_ERROR_CODE = "execution.failed";

public static final Set<String> LOAN_PERIODIC_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(accrueTillParamName,
localeParamName, dateFormatParamName));
}
Expand Up @@ -18,14 +18,16 @@
*/
package org.apache.fineract.accounting.accrual.serialization;

import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants.LOAN_PERIODIC_REQUEST_DATA_PARAMETERS;
import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants.PERIODIC_ACCRUAL_ACCOUNTING_RESOURCE_NAME;
import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants.accrueTillParamName;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang.StringUtils;
import org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants;
Expand All @@ -52,6 +54,9 @@
public final class AccrualAccountingDataValidator {

private final FromJsonHelper fromApiJsonHelper;
private static final Set<String> LOAN_PERIODIC_REQUEST_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(accrueTillParamName, AccrualAccountingConstants.localeParamName,
AccrualAccountingConstants.dateFormatParamName));

@Autowired
public AccrualAccountingDataValidator(final FromJsonHelper fromApiJsonfromApiJsonHelper) {
Expand Down
Expand Up @@ -18,7 +18,10 @@
*/
package org.apache.fineract.infrastructure.accountnumberformat.api;

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
Expand Down Expand Up @@ -58,6 +61,10 @@ public class AccountNumberFormatsApiResource {
private final ToApiJsonSerializer<AccountNumberFormatData> toApiJsonSerializer;
private final ApiRequestParameterHelper apiRequestParameterHelper;
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
private static final Set<String> ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList(
AccountNumberFormatConstants.idParamName, AccountNumberFormatConstants.accountTypeParamName,
AccountNumberFormatConstants.prefixTypeParamName, AccountNumberFormatConstants.accountTypeOptionsParamName,
AccountNumberFormatConstants.prefixTypeOptionsParamName));

@Autowired
public AccountNumberFormatsApiResource(final PlatformSecurityContext context,
Expand All @@ -84,8 +91,8 @@ public String retrieveTemplate(@Context final UriInfo uriInfo) {
AccountNumberFormatData accountNumberFormatData = this.accountNumberFormatReadPlatformService.retrieveTemplate(accountType);

final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
}

@GET
Expand All @@ -99,8 +106,8 @@ public String retrieveAll(@Context final UriInfo uriInfo) {
.getAllAccountNumberFormats();

final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
}

@GET
Expand All @@ -121,8 +128,8 @@ public String retrieveOne(@Context final UriInfo uriInfo, @PathParam("accountNum
accountNumberFormatData.templateOnTop(templateData.getAccountTypeOptions(), templateData.getPrefixTypeOptions());
}

return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
return this.toApiJsonSerializer.serialize(settings, accountNumberFormatData,
ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS);
}

@POST
Expand Down
Expand Up @@ -20,6 +20,7 @@

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
Expand All @@ -45,6 +46,11 @@
public class AccountNumberFormatDataValidator {

private final FromJsonHelper fromApiJsonHelper;
private static final Set<String> ACCOUNT_NUMBER_FORMAT_CREATE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(
AccountNumberFormatConstants.accountTypeParamName, AccountNumberFormatConstants.prefixTypeParamName));

private static final Set<String> ACCOUNT_NUMBER_FORMAT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(AccountNumberFormatConstants.prefixTypeParamName));

@Autowired
public AccountNumberFormatDataValidator(final FromJsonHelper fromApiJsonHelper) {
Expand All @@ -55,8 +61,8 @@ public void validateForCreate(final String json) {

if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); }
final Type typeOfMap = new TypeToken<Map<String, Object>>() {}.getType();
this.fromApiJsonHelper.checkForUnsupportedParameters(typeOfMap, json,
AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_CREATE_REQUEST_DATA_PARAMETERS);
this.fromApiJsonHelper.checkForUnsupportedParameters(typeOfMap, json,
ACCOUNT_NUMBER_FORMAT_CREATE_REQUEST_DATA_PARAMETERS);
final JsonElement element = this.fromApiJsonHelper.parse(json);
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();

Expand Down Expand Up @@ -137,8 +143,8 @@ public void validateForUpdate(final String json, EntityAccountType entityAccount
if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); }

final Type typeOfMap = new TypeToken<Map<String, Object>>() {}.getType();
this.fromApiJsonHelper.checkForUnsupportedParameters(typeOfMap, json,
AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_UPDATE_REQUEST_DATA_PARAMETERS);
this.fromApiJsonHelper.checkForUnsupportedParameters(typeOfMap, json,
ACCOUNT_NUMBER_FORMAT_UPDATE_REQUEST_DATA_PARAMETERS);
final JsonElement element = this.fromApiJsonHelper.parse(json);

final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
Expand Down
Expand Up @@ -49,18 +49,11 @@ public class AccountNumberFormatConstants {
public static final String accountTypeOptionsParamName = "accountTypeOptions";
public static final String prefixTypeOptionsParamName = "prefixTypeOptions";

public static final Set<String> ACCOUNT_NUMBER_FORMAT_CREATE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(
accountTypeParamName, prefixTypeParamName));

public static final Set<String> ACCOUNT_NUMBER_FORMAT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(prefixTypeParamName));

/**
* These parameters will match the class level parameters of
* {@link AccountNumberFormatData}. Where possible, we try to get response
* parameters to match those of request parameters.
*/
public static final Set<String> ACCOUNT_NUMBER_FORMAT_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList(idParamName,
accountTypeParamName, prefixTypeParamName, accountTypeOptionsParamName, prefixTypeOptionsParamName));

// Error messages codes
public static final String EXCEPTION_DUPLICATE_ACCOUNT_TYPE = "error.msg.account.number.format.duplicate.account.type";
Expand Down
Expand Up @@ -26,6 +26,5 @@ public class CacheApiConstants {

public static final String RESOURCE_NAME = "CACHE";
public static final String cacheTypeParameter = "cacheType";
public static final Set<String> REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(cacheTypeParameter));

}
Expand Up @@ -20,8 +20,11 @@

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang.StringUtils;
import org.apache.fineract.commands.annotation.CommandType;
Expand All @@ -47,6 +50,8 @@
public class UpdateCacheCommandHandler implements NewCommandSourceHandler {

private final CacheWritePlatformService cacheService;
private static final Set<String> REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(CacheApiConstants
.cacheTypeParameter));

@Autowired
public UpdateCacheCommandHandler(final CacheWritePlatformService cacheService) {
Expand All @@ -62,7 +67,7 @@ public CommandProcessingResult processCommand(final JsonCommand command) {
if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); }

final Type typeOfMap = new TypeToken<Map<String, Object>>() {}.getType();
command.checkForUnsupportedParameters(typeOfMap, json, CacheApiConstants.REQUEST_DATA_PARAMETERS);
command.checkForUnsupportedParameters(typeOfMap, json, REQUEST_DATA_PARAMETERS);

final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors)
Expand Down
Expand Up @@ -151,6 +151,7 @@ public class DepositsApiConstants {
public static final String runningBalanceParamName = "runningBalance";
public static final String reversedParamName = "reversed";
public static final String dateParamName = "date";
public static final String accountIdParamName = "accountId";

// recurring deposits update parameters
public static final String effectiveDateParamName = "effectiveDate";
Expand Down Expand Up @@ -199,9 +200,6 @@ public class DepositsApiConstants {
// template
public static final String chartTemplate = "chartTemplate";

// allowed column names for sorting the query result
public final static Set<String> supportedOrderByValues = new HashSet<>(Arrays.asList("id", "accountNumbr", "officeId", "officeName"));

/**
* Deposit Product Parameters
*/
Expand Down Expand Up @@ -244,7 +242,7 @@ public class DepositsApiConstants {
adjustAdvanceTowardsFuturePaymentsParamName, recurringFrequencyTypeParamName, recurringFrequencyParamName,
isCalendarInheritedParamName));

public static final Set<String> DEPOSIT_PRECLOSURE_CALCULATION_REQUEST_DATA_PARAMETERS = new HashSet<>(
private static final Set<String> DEPOSIT_PRECLOSURE_CALCULATION_REQUEST_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(preMatureCloseOnDateParamName));

public static final Set<String> FIXED_DEPOSIT_PRODUCT_REQUEST_DATA_PARAMETERS = fixedDepositProductRequestData();
Expand Down Expand Up @@ -293,13 +291,15 @@ private static Set<String> recurringDepositProductResponseData() {
* Depost Account parameters
*/

public static final Set<String> DEPOSIT_ACCOUNT_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,
dateFormatParamName, monthDayFormatParamName, accountNoParamName, externalIdParamName, clientIdParamName, groupIdParamName,
productIdParamName, fieldOfficerIdParamName, submittedOnDateParamName, nominalAnnualInterestRateParamName,
interestCompoundingPeriodTypeParamName, interestPostingPeriodTypeParamName, interestCalculationTypeParamName,
interestCalculationDaysInYearTypeParamName, lockinPeriodFrequencyParamName, lockinPeriodFrequencyTypeParamName,
chargesParamName, chartsParamName, depositAmountParamName, depositPeriodParamName, depositPeriodFrequencyIdParamName,
savingsAccounts, expectedFirstDepositOnDateParamName, SavingsApiConstants.withHoldTaxParamName));
private static final Set<String> DEPOSIT_ACCOUNT_REQUEST_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(localeParamName, dateFormatParamName, monthDayFormatParamName, accountNoParamName,
externalIdParamName, clientIdParamName, groupIdParamName, productIdParamName,
fieldOfficerIdParamName, submittedOnDateParamName, nominalAnnualInterestRateParamName,
interestCompoundingPeriodTypeParamName, interestPostingPeriodTypeParamName,
interestCalculationTypeParamName, interestCalculationDaysInYearTypeParamName,
lockinPeriodFrequencyParamName, lockinPeriodFrequencyTypeParamName, chargesParamName,
chartsParamName, depositAmountParamName, depositPeriodParamName, depositPeriodFrequencyIdParamName,
savingsAccounts, expectedFirstDepositOnDateParamName, SavingsApiConstants.withHoldTaxParamName));

public static final Set<String> FIXED_DEPOSIT_ACCOUNT_REQUEST_DATA_PARAMETERS = fixedDepositAccountRequestData();
public static final Set<String> FIXED_DEPOSIT_ACCOUNT_RESPONSE_DATA_PARAMETERS = fixedDepositAccountResponseData();
Expand Down Expand Up @@ -345,27 +345,27 @@ private static Set<String> recurringDepositAccountResponseData() {
return recurringDepositResponseData;
}

public static final Set<String> FIXED_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList(idParamName,
"accountId", accountNoParamName, "currency", "amount", dateParamName, paymentDetailDataParamName, runningBalanceParamName,
reversedParamName));

public static final Set<String> RECURRING_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList(idParamName,
"accountId", accountNoParamName, "currency", "amount", dateParamName, paymentDetailDataParamName, runningBalanceParamName,
reversedParamName));
private static final Set<String> RECURRING_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(idParamName, "accountId", accountNoParamName, "currency", "amount", dateParamName,
paymentDetailDataParamName, runningBalanceParamName, reversedParamName));

public static final Set<String> SAVINGS_ACCOUNT_ACTIVATION_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,
private static final Set<String> SAVINGS_ACCOUNT_ACTIVATION_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList
(localeParamName,
dateFormatParamName, activatedOnDateParamName));

public static final Set<String> SAVINGS_ACCOUNT_CHARGES_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList(chargeIdParamName,
private static final Set<String> SAVINGS_ACCOUNT_CHARGES_RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList
(chargeIdParamName,
savingsAccountChargeIdParamName, chargeNameParamName, penaltyParamName, chargeTimeTypeParamName, dueAsOfDateParamName,
chargeCalculationTypeParamName, percentageParamName, amountPercentageAppliedToParamName, currencyParamName,
amountWaivedParamName, amountWrittenOffParamName, amountOutstandingParamName, amountOrPercentageParamName, amountParamName,
amountPaidParamName, chargeOptionsParamName));

public static final Set<String> SAVINGS_ACCOUNT_CHARGES_ADD_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(chargeIdParamName,
private static final Set<String> SAVINGS_ACCOUNT_CHARGES_ADD_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList
(chargeIdParamName,
amountParamName, dueAsOfDateParamName, dateFormatParamName, localeParamName, feeOnMonthDayParamName, monthDayFormatParamName,
feeIntervalParamName));

public static final Set<String> SAVINGS_ACCOUNT_CHARGES_PAY_CHARGE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(
private static final Set<String> SAVINGS_ACCOUNT_CHARGES_PAY_CHARGE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays
.asList(
amountParamName, dueAsOfDateParamName, dateFormatParamName, localeParamName));
}
Expand Up @@ -26,7 +26,7 @@
import org.apache.fineract.portfolio.savings.data.SavingsAccountData;
import org.apache.fineract.portfolio.savings.data.SavingsProductData;

public class SavingsApiConstants {
public class SavingsApiConstants {

public static final String SAVINGS_PRODUCT_RESOURCE_NAME = "savingsproduct";
public static final String SAVINGS_ACCOUNT_RESOURCE_NAME = "savingsaccount";
Expand Down Expand Up @@ -186,7 +186,4 @@ public class SavingsApiConstants {
public static final String datatables = "datatables";

public static final String ERROR_MSG_SAVINGS_ACCOUNT_NOT_ACTIVE = "not.in.active.state";

public static final Set<String> SAVINGS_ACCOUNT_HOLD_AMOUNT_REQUEST_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(transactionDateParamName, dateFormatParamName, localeParamName, transactionAmountParamName));
}
Expand Up @@ -18,7 +18,10 @@
*/
package org.apache.fineract.portfolio.savings.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.GET;
Expand Down Expand Up @@ -62,7 +65,13 @@ public class FixedDepositAccountTransactionsApiResource {
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
private final ApiRequestParameterHelper apiRequestParameterHelper;
private final SavingsAccountReadPlatformService savingsAccountReadPlatformService;
private final PaymentTypeReadPlatformService paymentTypeReadPlatformService;
private final PaymentTypeReadPlatformService paymentTypeReadPlatformService;
private static final Set<String> FIXED_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS = new HashSet<>(
Arrays.asList(DepositsApiConstants.idParamName, DepositsApiConstants.accountIdParamName,
DepositsApiConstants.accountNoParamName, DepositsApiConstants.currencyParamName,
DepositsApiConstants.amountParamName, DepositsApiConstants.dateParamName,
DepositsApiConstants.paymentDetailDataParamName, DepositsApiConstants.runningBalanceParamName,
DepositsApiConstants.reversedParamName));

@Autowired
public FixedDepositAccountTransactionsApiResource(final PlatformSecurityContext context,
Expand Down Expand Up @@ -120,8 +129,8 @@ public String retrieveOne(@PathParam("fixedDepositAccountId") final Long fixedDe
transactionData = SavingsAccountTransactionData.templateOnTop(transactionData, paymentTypeOptions);
}

return this.toApiJsonSerializer.serialize(settings, transactionData,
DepositsApiConstants.FIXED_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
return this.toApiJsonSerializer.serialize(settings, transactionData,
FIXED_DEPOSIT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
}

@POST
Expand Down