From 89b2a15e4c3fbb6bcb810d9260f5a8bf06b23cb2 Mon Sep 17 00:00:00 2001 From: Keith Woodlock Date: Tue, 6 Nov 2012 17:31:36 +0000 Subject: [PATCH] MIFOSX-124: get shell of accounting ready for development. --- ...atch-0010-accounting-chart-of-accounts.sql | 17 ++++ .../api/ChartOfAccountsApiResource.java | 69 ++++++++++++++ .../api/commands/ChartOfAccountCommand.java | 78 ++++++++++++++++ .../api/data/ChartOfAccountsData.java | 24 +++++ .../api/data/GeneralLedgerAccountData.java | 43 +++++++++ .../AccountingApiDataConversionService.java | 9 ++ .../AccountingApiJsonSerializerService.java | 11 +++ ...ccountingApiDataConversionServiceImpl.java | 80 ++++++++++++++++ ...sonAccountingApiJsonSerializerService.java | 43 +++++++++ .../accounting/domain/ChartOfAccounts.java | 92 +++++++++++++++++++ .../domain/ChartOfAccountsRepository.java | 10 ++ .../ChartOfAccountsReadPlatformService.java | 9 ++ .../ChartOfAccountsWritePlatformService.java | 9 ++ ...hartOfAccountsReadPlatformServiceImpl.java | 53 +++++++++++ ...WritePlatformServiceJpaRepositoryImpl.java | 40 ++++++++ .../api/AdditionalFieldsApiResource.java | 6 +- .../api/AuthenticationApiResource.java | 4 +- .../platform/api/ChargesApiResource.java | 10 +- .../api/ClientIdentifiersApiResource.java | 10 +- .../platform/api/ClientsApiResource.java | 10 +- .../platform/api/CodesApiResource.java | 10 +- .../api/ConfigurationApiResource.java | 10 +- .../platform/api/DataTableApiResource.java | 6 +- .../api/DepositAccountsApiResource.java | 10 +- .../api/DepositProductsApiResource.java | 10 +- .../api/DocumentManagementApiResource.java | 6 +- .../platform/api/FundsApiResource.java | 10 +- .../platform/api/GroupsApiResource.java | 10 +- .../platform/api/LoanProductsApiResource.java | 10 +- .../platform/api/LoansApiResource.java | 10 +- .../api/OfficeTransactionsApiResource.java | 10 +- .../platform/api/OfficesApiResource.java | 10 +- .../platform/api/PermissionsApiResource.java | 6 +- .../platform/api/ReportsApiResource.java | 6 +- .../platform/api/RolesApiResource.java | 10 +- .../api/SavingProductsApiResource.java | 10 +- .../api/SavingsAccountApiResource.java | 10 +- .../platform/api/StaffApiResource.java | 10 +- .../platform/api/UsersApiResource.java | 10 +- .../platform/api/commands/OfficeCommand.java | 2 +- ...sonPortfolioApiJsonSerializerService.java} | 22 ++++- ...=> PortfolioApiDataConversionService.java} | 39 ++++---- ...ortfolioApiDataConversionServiceImpl.java} | 11 +-- ...=> PortfolioApiJsonSerializerService.java} | 6 +- .../api}/ApiParameterHelper.java | 2 +- .../api}/GoogleGsonSerializerHelper.java | 4 +- .../api}/JodaDateTimeAdapter.java | 2 +- .../api}/JodaLocalDateAdapter.java | 2 +- .../api}/JsonParserHelper.java | 16 +++- .../api}/ParameterListExclusionStrategy.java | 2 +- .../AccessDeniedExceptionMapper.java | 2 +- .../BadCredentialsExceptionMapper.java | 2 +- .../errorhandling/InvalidJsonException.java | 2 +- .../InvalidJsonExceptionMapper.java | 2 +- ...nvalidTenantIdentifierExceptionMapper.java | 2 +- .../JsonSyntaxExceptionMapper.java | 2 +- .../MalformedJsonExceptionMapper.java | 2 +- .../NoAuthorizationExceptionMapper.java | 2 +- ...tformApiDataValidationExceptionMapper.java | 2 +- .../PlatformDataIntegrityExceptionMapper.java | 2 +- .../PlatformDomainRuleExceptionMapper.java | 2 +- ...PlatformInternalServerExceptionMapper.java | 2 +- ...atformResourceNotFoundExceptionMapper.java | 2 +- .../UnAuthenticatedUserExceptionMapper.java | 2 +- ...UnrecognizedQueryParamExceptionMapper.java | 2 +- .../UnsupportedParameterException.java | 2 +- .../UnsupportedParameterExceptionMapper.java | 2 +- .../ReadWriteNonCoreDataServiceImpl.java | 2 +- 68 files changed, 781 insertions(+), 164 deletions(-) create mode 100644 mifosng-db/patches/patch-0010-accounting-chart-of-accounts.sql create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/ChartOfAccountsApiResource.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/commands/ChartOfAccountCommand.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/ChartOfAccountsData.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/GeneralLedgerAccountData.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiDataConversionService.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiJsonSerializerService.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/AccountingApiDataConversionServiceImpl.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/GoogleGsonAccountingApiJsonSerializerService.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccounts.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccountsRepository.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsReadPlatformService.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsWritePlatformService.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsReadPlatformServiceImpl.java create mode 100644 mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsWritePlatformServiceJpaRepositoryImpl.java rename mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/{GoogleGsonApiJsonSerializerService.java => GoogleGsonPortfolioApiJsonSerializerService.java} (97%) rename mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/{ApiDataConversionService.java => PortfolioApiDataConversionService.java} (81%) rename mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/{ApiDataConversionServiceImpl.java => PortfolioApiDataConversionServiceImpl.java} (99%) rename mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/{ApiJsonSerializerService.java => PortfolioApiJsonSerializerService.java} (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/ApiParameterHelper.java (98%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/GoogleGsonSerializerHelper.java (94%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/JodaDateTimeAdapter.java (93%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/JodaLocalDateAdapter.java (94%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/JsonParserHelper.java (96%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api/infrastructure => infrastructure/api}/ParameterListExclusionStrategy.java (92%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/AccessDeniedExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/BadCredentialsExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/InvalidJsonException.java (77%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/InvalidJsonExceptionMapper.java (94%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/InvalidTenantIdentifierExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/JsonSyntaxExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/MalformedJsonExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/NoAuthorizationExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/PlatformApiDataValidationExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/PlatformDataIntegrityExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/PlatformDomainRuleExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/PlatformInternalServerExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/PlatformResourceNotFoundExceptionMapper.java (95%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/UnAuthenticatedUserExceptionMapper.java (94%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/UnrecognizedQueryParamExceptionMapper.java (97%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/UnsupportedParameterException.java (89%) rename mifosng-provider/src/main/java/org/mifosng/platform/{api => infrastructure}/errorhandling/UnsupportedParameterExceptionMapper.java (96%) diff --git a/mifosng-db/patches/patch-0010-accounting-chart-of-accounts.sql b/mifosng-db/patches/patch-0010-accounting-chart-of-accounts.sql new file mode 100644 index 000000000..c543995e2 --- /dev/null +++ b/mifosng-db/patches/patch-0010-accounting-chart-of-accounts.sql @@ -0,0 +1,17 @@ +DROP TABLE if exists `m_acc_coa`; +CREATE TABLE `m_acc_coa` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL, + `parent_id` bigint(20) DEFAULT NULL, + `gl_code` varchar(45) NOT NULL, + `is_disabled` tinyint(1) NOT NULL DEFAULT '0', + `manual_entries_allowed` tinyint(1) NOT NULL DEFAULT '0', + `category` varchar(45) NOT NULL, + `ledger_type` varchar(45) NOT NULL, + `description` varchar(500) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `acc_gl_code` (`gl_code`), + KEY `FK_ACC_0000000001` (`parent_id`), + CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `m_acc_coa` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/ChartOfAccountsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/ChartOfAccountsApiResource.java new file mode 100644 index 000000000..476e4c8c8 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/ChartOfAccountsApiResource.java @@ -0,0 +1,69 @@ +package org.mifosng.platform.accounting.api; + +import java.util.Set; + +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.UriInfo; + +import org.mifosng.platform.accounting.api.commands.ChartOfAccountCommand; +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; +import org.mifosng.platform.accounting.api.infrastructure.AccountingApiDataConversionService; +import org.mifosng.platform.accounting.service.ChartOfAccountsReadPlatformService; +import org.mifosng.platform.accounting.service.ChartOfAccountsWritePlatformService; +import org.mifosng.platform.api.data.EntityIdentifier; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +@Path("/coa") +@Component +@Scope("singleton") +public class ChartOfAccountsApiResource { + + @Autowired + private ChartOfAccountsReadPlatformService coaReadPlatformService; + + @Autowired + private ChartOfAccountsWritePlatformService coaWritePlatformService; + + @Autowired + private AccountingApiDataConversionService apiDataConversionService; + + @Autowired + private PortfolioApiJsonSerializerService apiJsonSerializerService; + +// private final static Logger logger = LoggerFactory.getLogger(ChartOfAccountsApiResource.class); + + @GET + @Consumes({ MediaType.APPLICATION_JSON }) + @Produces({ MediaType.APPLICATION_JSON }) + public String retrieveExistingChartOfAccounts(@Context final UriInfo uriInfo) { + + final Set responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters()); + final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); + + final ChartOfAccountsData chartOfAccounts = this.coaReadPlatformService.retrieveChartOfAccounts(); + + return this.apiJsonSerializerService.serializeChartOfAccountDataToJson(prettyPrint, responseParameters, chartOfAccounts); + } + + @POST + @Consumes({ MediaType.APPLICATION_JSON }) + @Produces({ MediaType.APPLICATION_JSON }) + public String createChartOfAccounts(final String jsonRequestBody) { + + final ChartOfAccountCommand command = this.apiDataConversionService.convertJsonToChartOfAccountCommand(null, jsonRequestBody); + + final Long coaId = coaWritePlatformService.createAccount(command); + + return this.apiJsonSerializerService.serializeEntityIdentifier(new EntityIdentifier(coaId)); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/commands/ChartOfAccountCommand.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/commands/ChartOfAccountCommand.java new file mode 100644 index 000000000..80dbebbe1 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/commands/ChartOfAccountCommand.java @@ -0,0 +1,78 @@ +package org.mifosng.platform.accounting.api.commands; + +import java.util.Set; + +/** + * Immutable command for adding an account to chart of accounts. + */ +public class ChartOfAccountCommand { + + private final Long id; + private final String name; + private final Long parentId; + private final String glCode; + private final Boolean disabled; + private final Boolean manualEntriesAllowed; + private final String category; + private final String ledgerType; + private final String description; + + private final Set requestParameters; + + public ChartOfAccountCommand(final Set modifiedParameters, + final Long id, final String name, + final Long parentId, final String glCode, final Boolean disabled, + final Boolean manualEntriesAllowed, final String category, + final String ledgerType, final String description) { + this.requestParameters = modifiedParameters; + this.id = id; + this.name = name; + this.parentId = parentId; + this.glCode = glCode; + this.disabled = disabled; + this.manualEntriesAllowed = manualEntriesAllowed; + this.category = category; + this.ledgerType = ledgerType; + this.description = description; + } + + public boolean isNamePassedOnRequest() { + return this.requestParameters.contains("name"); + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public Long getParentId() { + return parentId; + } + + public String getGlCode() { + return glCode; + } + + public Boolean getDisabled() { + return disabled; + } + + public Boolean getManualEntriesAllowed() { + return manualEntriesAllowed; + } + + public String getCategory() { + return category; + } + + public String getLedgerType() { + return ledgerType; + } + + public String getDescription() { + return description; + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/ChartOfAccountsData.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/ChartOfAccountsData.java new file mode 100644 index 000000000..55afad28f --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/ChartOfAccountsData.java @@ -0,0 +1,24 @@ +package org.mifosng.platform.accounting.api.data; + +import java.util.Collection; + +/** + * Immutable object representing chart of accounts data. + * + * Note: no getter/setters required as google-gson will produce json from fields of object. + */ +public class ChartOfAccountsData { + + @SuppressWarnings("unused") + private final Long id; + @SuppressWarnings("unused") + private final String name; + @SuppressWarnings("unused") + private final Collection accounts; + + public ChartOfAccountsData(final Long id, final String name, final Collection accounts) { + this.id = id; + this.name = name; + this.accounts = accounts; + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/GeneralLedgerAccountData.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/GeneralLedgerAccountData.java new file mode 100644 index 000000000..4c955db33 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/data/GeneralLedgerAccountData.java @@ -0,0 +1,43 @@ +package org.mifosng.platform.accounting.api.data; + +/** + * Immutable object representing a general ledger accounts data as required by chart of accounts. + * + * Note: no getter/setters required as google-gson will produce json from fields of object. + */ +public class GeneralLedgerAccountData { + + @SuppressWarnings("unused") + private final Long id; + @SuppressWarnings("unused") + private final String name; + @SuppressWarnings("unused") + private final Long parentId; + @SuppressWarnings("unused") + private final String glCode; + @SuppressWarnings("unused") + private final boolean disabled; + @SuppressWarnings("unused") + private final boolean manualEntriesAllowed; + @SuppressWarnings("unused") + private final String category; + @SuppressWarnings("unused") + private final String ledgerType; + @SuppressWarnings("unused") + private final String description; + + public GeneralLedgerAccountData(final Long id, final String name, + final Long parentId, final String glCode, final boolean disabled, + final boolean manualEntriesAllowed, final String category, + final String ledgerType, final String description) { + this.id = id; + this.name = name; + this.parentId = parentId; + this.glCode = glCode; + this.disabled = disabled; + this.manualEntriesAllowed = manualEntriesAllowed; + this.category = category; + this.ledgerType = ledgerType; + this.description = description; + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiDataConversionService.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiDataConversionService.java new file mode 100644 index 000000000..23f81865a --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiDataConversionService.java @@ -0,0 +1,9 @@ +package org.mifosng.platform.accounting.api.infrastructure; + +import org.mifosng.platform.accounting.api.commands.ChartOfAccountCommand; + +public interface AccountingApiDataConversionService { + + ChartOfAccountCommand convertJsonToChartOfAccountCommand(Long resourceIdentifier, String json); + +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiJsonSerializerService.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiJsonSerializerService.java new file mode 100644 index 000000000..3b50de1ee --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/AccountingApiJsonSerializerService.java @@ -0,0 +1,11 @@ +package org.mifosng.platform.accounting.api.infrastructure; + +import java.util.Set; + +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; + +public interface AccountingApiJsonSerializerService { + + String serializeChartOfAccountDataToJson(boolean prettyPrint, Set responseParameters, ChartOfAccountsData chartOfAccounts); + +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/AccountingApiDataConversionServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/AccountingApiDataConversionServiceImpl.java new file mode 100644 index 000000000..e67203fc4 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/AccountingApiDataConversionServiceImpl.java @@ -0,0 +1,80 @@ +package org.mifosng.platform.accounting.api.infrastructure.impl; + +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.mifosng.platform.accounting.api.commands.ChartOfAccountCommand; +import org.mifosng.platform.accounting.api.infrastructure.AccountingApiDataConversionService; +import org.mifosng.platform.infrastructure.api.JsonParserHelper; +import org.mifosng.platform.infrastructure.errorhandling.InvalidJsonException; +import org.mifosng.platform.infrastructure.errorhandling.UnsupportedParameterException; +import org.springframework.stereotype.Service; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; + +/** + * Service specifically for converting JSON requests into command ojects for accounting API. + */ +@Service +public class AccountingApiDataConversionServiceImpl implements AccountingApiDataConversionService { + + private final Gson gsonConverter; + + public AccountingApiDataConversionServiceImpl() { + gsonConverter = new Gson(); + } + + private void checkForUnsupportedParameters(Map requestMap, Set supportedParams) { + List unsupportedParameterList = new ArrayList(); + for (String providedParameter : requestMap.keySet()) { + if (!supportedParams.contains(providedParameter)) { + unsupportedParameterList.add(providedParameter); + } + } + + if (!unsupportedParameterList.isEmpty()) { + throw new UnsupportedParameterException(unsupportedParameterList); + } + } + + @Override + public ChartOfAccountCommand convertJsonToChartOfAccountCommand(final Long resourceIdentifier, final String json) { + if (StringUtils.isBlank(json)) { + throw new InvalidJsonException(); + } + + final Type typeOfMap = new TypeToken>(){}.getType(); + final Map requestMap = gsonConverter.fromJson(json, typeOfMap); + + final Set supportedParams = new HashSet( + Arrays.asList("id", "name", "parentId", "glCode", "disabled", "manualEntriesAllowed", "category", "ledgerType", "description", "locale", "dateFormat") + ); + + checkForUnsupportedParameters(requestMap, supportedParams); + + final JsonParser parser = new JsonParser(); + final JsonElement element = parser.parse(json); + final JsonParserHelper helper = new JsonParserHelper(); + + final Set requestParamatersDetected = new HashSet(); + final String name = helper.extractStringNamed("name", element, requestParamatersDetected); + final Long parentId = helper.extractLongNamed("parentId", element, requestParamatersDetected); + final String glCode = helper.extractStringNamed("glCode", element, requestParamatersDetected); + final Boolean disabled = helper.extractBooleanNamed("disabled", element, requestParamatersDetected); + final Boolean manualEntriesAllowed = helper.extractBooleanNamed("manualEntriesAllowed", element, requestParamatersDetected); + final String category = helper.extractStringNamed("category", element, requestParamatersDetected); + final String ledgerType = helper.extractStringNamed("ledgerType", element, requestParamatersDetected); + final String description = helper.extractStringNamed("description", element, requestParamatersDetected); + + return new ChartOfAccountCommand(requestParamatersDetected, resourceIdentifier, name, parentId, glCode, disabled, manualEntriesAllowed, category, ledgerType, description); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/GoogleGsonAccountingApiJsonSerializerService.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/GoogleGsonAccountingApiJsonSerializerService.java new file mode 100644 index 000000000..f121b93a6 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/api/infrastructure/impl/GoogleGsonAccountingApiJsonSerializerService.java @@ -0,0 +1,43 @@ +package org.mifosng.platform.accounting.api.infrastructure.impl; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; +import org.mifosng.platform.accounting.api.infrastructure.AccountingApiJsonSerializerService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.GoogleGsonSerializerHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.google.gson.Gson; + +/** + * Implementation of {@link PortfolioApiJsonSerializerService} that uses google-gson to + * serialize Java object representation into JSON. + */ +@Service +public class GoogleGsonAccountingApiJsonSerializerService implements AccountingApiJsonSerializerService { + + private static final Set CHART_OF_ACCOUNTS_DATA_PARAMETERS = new HashSet(Arrays.asList("id", "name")); + + private final GoogleGsonSerializerHelper helper; + + @Autowired + public GoogleGsonAccountingApiJsonSerializerService( + final GoogleGsonSerializerHelper helper) { + this.helper = helper; + } + + @Override + public String serializeChartOfAccountDataToJson(final boolean prettyPrint, + final Set responseParameters, + final ChartOfAccountsData chartOfAccounts) { + final Gson gsonDeserializer = helper + .createGsonBuilderWithParameterExclusionSerializationStrategy( + CHART_OF_ACCOUNTS_DATA_PARAMETERS, prettyPrint, + responseParameters); + return helper.serializedJsonFrom(gsonDeserializer, chartOfAccounts); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccounts.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccounts.java new file mode 100644 index 000000000..4766c91b6 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccounts.java @@ -0,0 +1,92 @@ +package org.mifosng.platform.accounting.domain; + +import java.util.LinkedList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; + +import org.apache.commons.lang.StringUtils; +import org.springframework.data.jpa.domain.AbstractPersistable; + +@Entity +@Table(name = "m_acc_coa", uniqueConstraints={@UniqueConstraint(columnNames = {"gl_code"}, name="acc_gl_code")}) +public class ChartOfAccounts extends AbstractPersistable { + + @OneToMany(fetch = FetchType.EAGER) + @JoinColumn(name = "parent_id") + private final List children = new LinkedList(); + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "parent_id") + private ChartOfAccounts parent; + + @SuppressWarnings("unused") + @Column(name = "name", nullable = false, length=45) + private String name; + + @SuppressWarnings("unused") + @Column(name = "gl_code", nullable = false, length=100) + private String glCode; + + @SuppressWarnings("unused") + @Column(name = "is_disabled", nullable=false) + private boolean disabed = false; + + @SuppressWarnings("unused") + @Column(name = "manual_entries_allowed", nullable=false) + private boolean manualEntriesAllowed = true; + + @SuppressWarnings("unused") + @Column(name = "category", nullable = false, length=45) + private String category; + + @SuppressWarnings("unused") + @Column(name = "ledger_type", nullable = false, length=45) + private String ledgerType; + + @SuppressWarnings("unused") + @Column(name = "description", nullable = false, length=500) + private String description; + + public static ChartOfAccounts rootAccount(final String name) { + return new ChartOfAccounts(null, name); + } + + public static ChartOfAccounts createNew(final ChartOfAccounts parent, final String name) { + return new ChartOfAccounts(parent, name); + } + + protected ChartOfAccounts() { + // + } + + private ChartOfAccounts(final ChartOfAccounts parent, final String name) { + this.parent = parent; + if (parent != null) { + this.parent.addChild(this); + } + + if (StringUtils.isNotBlank(name)) { + this.name = name.trim(); + } else { + this.name = null; + } + this.glCode = "TEST-1"; + this.disabed = false; + this.manualEntriesAllowed = true; + this.category = "ASSETS"; + this.ledgerType = "HEADER"; + this.description = "Some description value.."; + } + + private void addChild(final ChartOfAccounts coa) { + this.children.add(coa); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccountsRepository.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccountsRepository.java new file mode 100644 index 000000000..f8fa05b90 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/domain/ChartOfAccountsRepository.java @@ -0,0 +1,10 @@ +package org.mifosng.platform.accounting.domain; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +public interface ChartOfAccountsRepository extends + JpaRepository, + JpaSpecificationExecutor { + // no added behaviour +} diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsReadPlatformService.java new file mode 100644 index 000000000..eec37f5ab --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsReadPlatformService.java @@ -0,0 +1,9 @@ +package org.mifosng.platform.accounting.service; + +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; + +public interface ChartOfAccountsReadPlatformService { + + ChartOfAccountsData retrieveChartOfAccounts(); + +} diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsWritePlatformService.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsWritePlatformService.java new file mode 100644 index 000000000..a24e1b6d0 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/ChartOfAccountsWritePlatformService.java @@ -0,0 +1,9 @@ +package org.mifosng.platform.accounting.service; + +import org.mifosng.platform.accounting.api.commands.ChartOfAccountCommand; + +public interface ChartOfAccountsWritePlatformService { + + Long createAccount(ChartOfAccountCommand command); + +} diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsReadPlatformServiceImpl.java new file mode 100644 index 000000000..3d6701cf3 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsReadPlatformServiceImpl.java @@ -0,0 +1,53 @@ +package org.mifosng.platform.accounting.service.impl; + +import java.util.Arrays; +import java.util.Collection; + +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; +import org.mifosng.platform.accounting.api.data.GeneralLedgerAccountData; +import org.mifosng.platform.accounting.service.ChartOfAccountsReadPlatformService; +import org.mifosng.platform.infrastructure.TenantAwareRoutingDataSource; +import org.mifosng.platform.security.PlatformSecurityContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +@Service +public class ChartOfAccountsReadPlatformServiceImpl implements ChartOfAccountsReadPlatformService { + + @SuppressWarnings("unused") + private final JdbcTemplate jdbcTemplate; + @SuppressWarnings("unused") + private final PlatformSecurityContext context; + + @Autowired + public ChartOfAccountsReadPlatformServiceImpl( + final PlatformSecurityContext context, + final TenantAwareRoutingDataSource dataSource) { + this.context = context; + this.jdbcTemplate = new JdbcTemplate(dataSource); + } + + @Override + public ChartOfAccountsData retrieveChartOfAccounts() { + // FIXME - KW - just stubbing impl for now. + + boolean isLedgerAccountDisabled = false; + boolean isManualEntriesAllowed = true; + + final String assetsGlCode = "1"; + final String category = "ASSETS"; + final Long parentId = null; + final String generalLedgerName = "Assets"; + final String ledgerType = "HEADER"; + final String description = "Some descriptoin of the general ledger accounts purpose."; + + GeneralLedgerAccountData assetsHeader = new GeneralLedgerAccountData(Long.valueOf(1), generalLedgerName, parentId, assetsGlCode, isLedgerAccountDisabled, isManualEntriesAllowed, category, ledgerType, description); + + GeneralLedgerAccountData liabilitiesHeader = new GeneralLedgerAccountData(Long.valueOf(1), "Liabilities", parentId, "2", isLedgerAccountDisabled, isManualEntriesAllowed, "LIABILITIES", ledgerType, description); + + Collection accounts = Arrays.asList(assetsHeader, liabilitiesHeader); + + return new ChartOfAccountsData(Long.valueOf(1), "Default Chart of Accounts", accounts); + } +} diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsWritePlatformServiceJpaRepositoryImpl.java new file mode 100644 index 000000000..35125a2c5 --- /dev/null +++ b/mifosng-provider/src/main/java/org/mifosng/platform/accounting/service/impl/ChartOfAccountsWritePlatformServiceJpaRepositoryImpl.java @@ -0,0 +1,40 @@ +package org.mifosng.platform.accounting.service.impl; + +import org.mifosng.platform.accounting.api.commands.ChartOfAccountCommand; +import org.mifosng.platform.accounting.domain.ChartOfAccounts; +import org.mifosng.platform.accounting.domain.ChartOfAccountsRepository; +import org.mifosng.platform.accounting.service.ChartOfAccountsWritePlatformService; +import org.mifosng.platform.security.PlatformSecurityContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class ChartOfAccountsWritePlatformServiceJpaRepositoryImpl implements ChartOfAccountsWritePlatformService { + +// private final static Logger logger = LoggerFactory.getLogger(ChartOfAccountsWritePlatformServiceJpaRepositoryImpl.class); + + private final PlatformSecurityContext context; + private final ChartOfAccountsRepository chartOfAccountsRepository; + + @Autowired + public ChartOfAccountsWritePlatformServiceJpaRepositoryImpl( + final PlatformSecurityContext context, + final ChartOfAccountsRepository chartOfAccountsRepository) { + this.context = context; + this.chartOfAccountsRepository = chartOfAccountsRepository; + } + + @Transactional + @Override + public Long createAccount(final ChartOfAccountCommand command) { + + context.authenticatedUser(); + + final ChartOfAccounts entity = ChartOfAccounts.createNew(null, command.getName()); + + this.chartOfAccountsRepository.save(entity); + + return entity.getId(); + } +} diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java index 29fe93489..1c72c8bec 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java @@ -27,10 +27,10 @@ import org.mifosng.platform.api.data.AdditionalFieldsSetData; import org.mifosng.platform.api.data.ApiParameterError; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.GenericResultsetData; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.exceptions.NoAuthorizationException; import org.mifosng.platform.exceptions.PlatformApiDataValidationException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.noncore.AdditionalFieldsService; import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.user.domain.AppUser; @@ -59,7 +59,7 @@ public class AdditionalFieldsApiResource { private AdditionalFieldsService readWriteAdditionalFieldsService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({ MediaType.APPLICATION_JSON }) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/AuthenticationApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/AuthenticationApiResource.java index 8afa94528..c9e8442b8 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/AuthenticationApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/AuthenticationApiResource.java @@ -11,7 +11,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.mifosng.platform.api.data.AuthenticatedUserData; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.user.domain.AppUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -34,7 +34,7 @@ public class AuthenticationApiResource { private DaoAuthenticationProvider customAuthenticationProvider; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @POST @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ChargesApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ChargesApiResource.java index aae901fd2..db25941e8 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ChargesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ChargesApiResource.java @@ -19,11 +19,11 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.ChargeCommand; import org.mifosng.platform.api.data.ChargeData; import org.mifosng.platform.api.data.EntityIdentifier; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.charge.service.ChargeReadPlatformService; import org.mifosng.platform.charge.service.ChargeWritePlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -40,10 +40,10 @@ public class ChargesApiResource { private ChargeWritePlatformService chargeWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientIdentifiersApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientIdentifiersApiResource.java index 11b94e3c1..d4758aa5a 100755 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientIdentifiersApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientIdentifiersApiResource.java @@ -22,12 +22,12 @@ import org.mifosng.platform.api.commands.ClientIdentifierCommand; import org.mifosng.platform.api.data.ClientData; import org.mifosng.platform.api.data.ClientIdentifierData; import org.mifosng.platform.api.data.EntityIdentifier; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.client.service.ClientReadPlatformService; import org.mifosng.platform.client.service.ClientWritePlatformService; import org.mifosng.platform.exceptions.DuplicateClientIdentifierException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -44,10 +44,10 @@ public class ClientIdentifiersApiResource { private ClientWritePlatformService clientWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; private static final Set typicalResponseParameters = new HashSet( Arrays.asList("id", "clientId", "documentTypeId", "description", diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientsApiResource.java index cf28c9241..ab23a3a66 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ClientsApiResource.java @@ -30,15 +30,15 @@ import org.mifosng.platform.api.data.ClientData; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.NoteData; import org.mifosng.platform.api.data.OfficeLookup; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.client.service.ClientReadPlatformService; import org.mifosng.platform.client.service.ClientWritePlatformService; import org.mifosng.platform.common.ApplicationConstants; import org.mifosng.platform.common.FileUtils; import org.mifosng.platform.exceptions.ClientNotFoundException; import org.mifosng.platform.exceptions.ImageNotFoundException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,13 +65,13 @@ public class ClientsApiResource { private ClientWritePlatformService clientWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired private OfficeReadPlatformService officeReadPlatformService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; private static final Set typicalResponseParameters = new HashSet( Arrays.asList("id", "officeId", "officeName", "externalId", "firstname", "lastname", "joinedDate", "displayName", "clientOrBusinessName", "imagePresent") diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/CodesApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/CodesApiResource.java index 64b22c278..71ea8ad1a 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/CodesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/CodesApiResource.java @@ -18,9 +18,9 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.CodeCommand; import org.mifosng.platform.api.data.CodeData; import org.mifosng.platform.api.data.EntityIdentifier; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.CodeWritePlatformService; import org.mifosng.platform.organisation.service.CodeReadPlatformService; import org.springframework.beans.factory.annotation.Autowired; @@ -39,10 +39,10 @@ public class CodesApiResource { private CodeWritePlatformService writePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ConfigurationApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ConfigurationApiResource.java index 966be10d2..c81bd51b6 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ConfigurationApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ConfigurationApiResource.java @@ -16,11 +16,11 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.OrganisationCurrencyCommand; import org.mifosng.platform.api.data.ConfigurationData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.configuration.service.ConfigurationReadPlatformService; import org.mifosng.platform.configuration.service.ConfigurationWritePlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -37,10 +37,10 @@ public class ConfigurationApiResource { private ConfigurationWritePlatformService configurationWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Path("currency") diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java index 83ceace3b..0a6274588 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java @@ -26,9 +26,9 @@ import org.codehaus.jettison.json.JSONObject; import org.mifosng.platform.api.data.DatatableData; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.GenericResultsetData; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.exceptions.NoAuthorizationException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.noncore.GenericDataService; import org.mifosng.platform.noncore.ReadWriteNonCoreDataService; import org.mifosng.platform.security.PlatformSecurityContext; @@ -61,7 +61,7 @@ public class DataTableApiResource { private ReadWriteNonCoreDataService readWriteNonCoreDataService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({ MediaType.APPLICATION_JSON }) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositAccountsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositAccountsApiResource.java index 5e83254fb..06bf2794c 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositAccountsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositAccountsApiResource.java @@ -32,10 +32,10 @@ import org.mifosng.platform.api.data.DepositPermissionData; import org.mifosng.platform.api.data.DepositProductLookup; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.EnumOptionData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.exceptions.UnrecognizedQueryParamException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.loan.domain.PeriodFrequencyType; import org.mifosng.platform.saving.service.DepositAccountReadPlatformService; import org.mifosng.platform.saving.service.DepositAccountWritePlatformService; @@ -60,10 +60,10 @@ public class DepositAccountsApiResource { private DepositAccountWritePlatformService depositAccountWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; private static final Set typicalResponseParameters = new HashSet( Arrays.asList("id", "externalId", "clientId", "clientName", diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositProductsApiResource.java index 3430a360d..74fed5c57 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/DepositProductsApiResource.java @@ -24,10 +24,10 @@ import org.mifosng.platform.api.data.CurrencyData; import org.mifosng.platform.api.data.DepositProductData; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.EnumOptionData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.currency.service.CurrencyReadPlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.loan.domain.PeriodFrequencyType; import org.mifosng.platform.savingproduct.service.DepositProductReadPlatformService; import org.mifosng.platform.savingproduct.service.DepositProductWritePlatformService; @@ -51,10 +51,10 @@ public class DepositProductsApiResource { private DepositProductWritePlatformService depositProductWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @POST @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/DocumentManagementApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/DocumentManagementApiResource.java index e58f0d045..906478e5a 100755 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/DocumentManagementApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/DocumentManagementApiResource.java @@ -25,12 +25,12 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.DocumentCommand; import org.mifosng.platform.api.data.DocumentData; import org.mifosng.platform.api.data.EntityIdentifier; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.common.ApplicationConstants; import org.mifosng.platform.common.FileUtils; import org.mifosng.platform.documentmanagement.service.DocumentReadPlatformService; import org.mifosng.platform.documentmanagement.service.DocumentWritePlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -51,7 +51,7 @@ public class DocumentManagementApiResource { private DocumentWritePlatformService documentWritePlatformService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; private static final Set typicalResponseParameters = new HashSet( Arrays.asList("id", "parentEntityType", "parentEntityId", "name", diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/FundsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/FundsApiResource.java index d67d088d0..6066aca83 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/FundsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/FundsApiResource.java @@ -18,11 +18,11 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.FundCommand; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.FundData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.fund.service.FundReadPlatformService; import org.mifosng.platform.fund.service.FundWritePlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -39,10 +39,10 @@ public class FundsApiResource { private FundWritePlatformService writePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/GroupsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/GroupsApiResource.java index d0ed7b88c..45d0202c6 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/GroupsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/GroupsApiResource.java @@ -26,12 +26,12 @@ import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.GroupAccountSummaryCollectionData; import org.mifosng.platform.api.data.GroupData; import org.mifosng.platform.api.data.OfficeLookup; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.client.service.ClientReadPlatformService; import org.mifosng.platform.group.service.GroupReadPlatformService; import org.mifosng.platform.group.service.GroupWritePlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.mifosng.platform.security.PlatformSecurityContext; import org.slf4j.Logger; @@ -57,13 +57,13 @@ public class GroupsApiResource { private ClientReadPlatformService clientReadPlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired private OfficeReadPlatformService officeReadPlatformService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private PlatformSecurityContext context; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoanProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoanProductsApiResource.java index 74ade6d7a..070485a61 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoanProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoanProductsApiResource.java @@ -23,12 +23,12 @@ import org.mifosng.platform.api.data.EnumOptionData; import org.mifosng.platform.api.data.FundData; import org.mifosng.platform.api.data.LoanProductData; import org.mifosng.platform.api.data.TransactionProcessingStrategyData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.charge.service.ChargeReadPlatformService; import org.mifosng.platform.currency.service.CurrencyReadPlatformService; import org.mifosng.platform.fund.service.FundReadPlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.loanproduct.service.LoanDropdownReadPlatformService; import org.mifosng.platform.loanproduct.service.LoanProductReadPlatformService; import org.mifosng.platform.loanproduct.service.LoanProductWritePlatformService; @@ -51,10 +51,10 @@ public class LoanProductsApiResource { private ChargeReadPlatformService chargeReadPlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private CurrencyReadPlatformService currencyReadPlatformService; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java index 91cdb9971..f43d7af2f 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java @@ -39,14 +39,14 @@ import org.mifosng.platform.api.data.LoanProductData; import org.mifosng.platform.api.data.LoanTransactionData; import org.mifosng.platform.api.data.StaffData; import org.mifosng.platform.api.data.TransactionProcessingStrategyData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.charge.service.ChargeReadPlatformService; import org.mifosng.platform.currency.domain.MonetaryCurrency; import org.mifosng.platform.currency.domain.Money; import org.mifosng.platform.exceptions.UnrecognizedQueryParamException; import org.mifosng.platform.fund.service.FundReadPlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.loan.service.CalculationPlatformService; import org.mifosng.platform.loan.service.LoanReadPlatformService; import org.mifosng.platform.loan.service.LoanWritePlatformService; @@ -85,10 +85,10 @@ public class LoansApiResource { private CalculationPlatformService calculationPlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private StaffReadPlatformService staffReadPlatformService; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeTransactionsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeTransactionsApiResource.java index 4d26cafaf..bfaa6c32d 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeTransactionsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeTransactionsApiResource.java @@ -18,9 +18,9 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.BranchMoneyTransferCommand; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.OfficeTransactionData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.mifosng.platform.organisation.service.OfficeWritePlatformService; import org.springframework.beans.factory.annotation.Autowired; @@ -39,10 +39,10 @@ public class OfficeTransactionsApiResource { private OfficeReadPlatformService readPlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({ MediaType.APPLICATION_JSON }) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java index fa1783262..c94028dac 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficesApiResource.java @@ -23,9 +23,9 @@ import org.mifosng.platform.api.commands.OfficeCommand; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.OfficeData; import org.mifosng.platform.api.data.OfficeLookup; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.mifosng.platform.organisation.service.OfficeWritePlatformService; import org.springframework.beans.factory.annotation.Autowired; @@ -44,10 +44,10 @@ public class OfficesApiResource { private OfficeWritePlatformService writePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/PermissionsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/PermissionsApiResource.java index 8531bd5dc..51b32338f 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/PermissionsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/PermissionsApiResource.java @@ -12,8 +12,8 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.data.PermissionData; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.user.service.PermissionReadPlatformService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; @@ -28,7 +28,7 @@ public class PermissionsApiResource { private PermissionReadPlatformService permissionReadPlatformService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportsApiResource.java index 04ba065aa..cc4d12974 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/ReportsApiResource.java @@ -17,9 +17,9 @@ import javax.ws.rs.core.StreamingOutput; import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.data.GenericResultsetData; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.exceptions.NoAuthorizationException; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.noncore.ReadReportingService; import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.user.domain.AppUser; @@ -43,7 +43,7 @@ public class ReportsApiResource { private ReadReportingService readExtraDataAndReportingService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({ MediaType.APPLICATION_JSON }) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/RolesApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/RolesApiResource.java index e8c3edb64..748197e4e 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/RolesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/RolesApiResource.java @@ -22,9 +22,9 @@ import org.mifosng.platform.api.commands.RoleCommand; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.PermissionData; import org.mifosng.platform.api.data.RoleData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.user.service.PermissionReadPlatformService; import org.mifosng.platform.user.service.RoleReadPlatformService; import org.mifosng.platform.user.service.RoleWritePlatformService; @@ -47,10 +47,10 @@ public class RolesApiResource { private RoleWritePlatformService roleWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @GET @Consumes({MediaType.APPLICATION_JSON}) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingProductsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingProductsApiResource.java index 3c1c57232..d04d52965 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingProductsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingProductsApiResource.java @@ -24,10 +24,10 @@ import org.mifosng.platform.api.data.CurrencyData; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.EnumOptionData; import org.mifosng.platform.api.data.SavingProductData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; import org.mifosng.platform.currency.service.CurrencyReadPlatformService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.savingproduct.domain.SavingFrequencyType; import org.mifosng.platform.savingproduct.domain.SavingInterestCalculationMethod; import org.mifosng.platform.savingproduct.domain.SavingProductType; @@ -53,10 +53,10 @@ public class SavingProductsApiResource { private SavingProductWritePlatformService savingProductWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private CurrencyReadPlatformService currencyReadPlatformService; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingsAccountApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingsAccountApiResource.java index c4f813196..fe2ed4111 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingsAccountApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/SavingsAccountApiResource.java @@ -21,9 +21,9 @@ import javax.ws.rs.core.UriInfo; import org.mifosng.platform.api.commands.SavingAccountCommand; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.SavingAccountData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.saving.service.SavingAccountReadPlatformService; import org.mifosng.platform.saving.service.SavingAccountWritePlatformService; import org.springframework.beans.factory.annotation.Autowired; @@ -42,10 +42,10 @@ public class SavingsAccountApiResource { private SavingAccountReadPlatformService savingAccountReadPlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; private static final Set typicalResponseParameters = new HashSet( Arrays.asList("id", "status", "externalId", "clientId", "clientName", "productId", "productName", "productType", "currencyData", "savingsDepostiAmountPerPeriod", "savingsFrequencyType", diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/StaffApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/StaffApiResource.java index c78914498..236582ce0 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/StaffApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/StaffApiResource.java @@ -25,9 +25,9 @@ import org.mifosng.platform.api.data.LoanReassignmentData; import org.mifosng.platform.api.data.OfficeLookup; import org.mifosng.platform.api.data.StaffAccountSummaryCollectionData; import org.mifosng.platform.api.data.StaffData; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.loan.service.LoanWritePlatformService; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.mifosng.platform.staff.service.StaffReadPlatformService; @@ -50,10 +50,10 @@ public class StaffApiResource { private StaffWritePlatformService writePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private OfficeReadPlatformService officeReadPlatformService; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/UsersApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/UsersApiResource.java index f2c106124..6638facb9 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/UsersApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/UsersApiResource.java @@ -24,9 +24,9 @@ import org.mifosng.platform.api.commands.UserCommand; import org.mifosng.platform.api.data.AppUserData; import org.mifosng.platform.api.data.EntityIdentifier; import org.mifosng.platform.api.data.OfficeLookup; -import org.mifosng.platform.api.infrastructure.ApiDataConversionService; -import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService; -import org.mifosng.platform.api.infrastructure.ApiParameterHelper; +import org.mifosng.platform.api.infrastructure.PortfolioApiDataConversionService; +import org.mifosng.platform.api.infrastructure.PortfolioApiJsonSerializerService; +import org.mifosng.platform.infrastructure.api.ApiParameterHelper; import org.mifosng.platform.organisation.service.OfficeReadPlatformService; import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.user.domain.AppUser; @@ -51,10 +51,10 @@ public class UsersApiResource { private AppUserWritePlatformService appUserWritePlatformService; @Autowired - private ApiDataConversionService apiDataConversionService; + private PortfolioApiDataConversionService apiDataConversionService; @Autowired - private ApiJsonSerializerService apiJsonSerializerService; + private PortfolioApiJsonSerializerService apiJsonSerializerService; @Autowired private PlatformSecurityContext context; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/commands/OfficeCommand.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/commands/OfficeCommand.java index 307989c95..bde109118 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/commands/OfficeCommand.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/commands/OfficeCommand.java @@ -17,7 +17,7 @@ public class OfficeCommand { private final Set modifiedParameters; - public OfficeCommand(Set modifiedParameters, final Long id, final String officeName, + public OfficeCommand(final Set modifiedParameters, final Long id, final String officeName, final String externalId, final Long parentId, final LocalDate openingDate) { this.modifiedParameters = modifiedParameters; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonApiJsonSerializerService.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonPortfolioApiJsonSerializerService.java similarity index 97% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonApiJsonSerializerService.java rename to mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonPortfolioApiJsonSerializerService.java index d51fdd917..c66d53c80 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonApiJsonSerializerService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonPortfolioApiJsonSerializerService.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; import org.mifosng.platform.api.LoanScheduleData; import org.mifosng.platform.api.data.AdditionalFieldsSetData; import org.mifosng.platform.api.data.AppUserData; @@ -37,17 +38,18 @@ import org.mifosng.platform.api.data.RoleData; import org.mifosng.platform.api.data.SavingAccountData; import org.mifosng.platform.api.data.SavingProductData; import org.mifosng.platform.api.data.StaffData; +import org.mifosng.platform.infrastructure.api.GoogleGsonSerializerHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.google.gson.Gson; /** - * Implementation of {@link ApiJsonSerializerService} that uses google-gson to + * Implementation of {@link PortfolioApiJsonSerializerService} that uses google-gson to * serialize Java object representation into JSON. */ @Service -public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerService { +public class GoogleGsonPortfolioApiJsonSerializerService implements PortfolioApiJsonSerializerService { private static final Set PERMISSION_DATA_PARAMETERS = new HashSet( Arrays.asList("id", "name", "description", "code")); @@ -213,10 +215,13 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ "actualCommencementDate", "maturesOnDate", "projectedInterestAccuredOnMaturity", "actualInterestAccured", "projectedMaturityAmount", "actualMaturityAmount", "preClosureAllowed", "preClosureInterestRate", "withdrawnonDate", "rejectedonDate", "closedonDate", "isLockinPeriodAllowed", "lockinPeriod", "lockinPeriodType")); + // accounting + private static final Set CHART_OF_ACCOUNTS_DATA_PARAMETERS = new HashSet(Arrays.asList("id", "name")); + private final GoogleGsonSerializerHelper helper; @Autowired - public GoogleGsonApiJsonSerializerService( + public GoogleGsonPortfolioApiJsonSerializerService( final GoogleGsonSerializerHelper helper) { this.helper = helper; } @@ -729,7 +734,16 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ SAVINGS_ACCOUNTS_DATA_PARAMETERS, prettyPrint, responseParameters); return helper.serializedJsonFrom(gsonDeserializer, accounts.toArray(new SavingAccountData[accounts.size()])); - } + @Override + public String serializeChartOfAccountDataToJson( + final boolean prettyPrint, + final Set responseParameters, + final ChartOfAccountsData chartOfAccounts) { + final Gson gsonDeserializer = helper + .createGsonBuilderWithParameterExclusionSerializationStrategy( + CHART_OF_ACCOUNTS_DATA_PARAMETERS, prettyPrint, responseParameters); + return helper.serializedJsonFrom(gsonDeserializer, chartOfAccounts); + } } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionService.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionService.java similarity index 81% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionService.java rename to mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionService.java index 41fa3729a..015ff1b65 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionService.java @@ -29,7 +29,7 @@ import org.mifosng.platform.api.commands.SavingProductCommand; import org.mifosng.platform.api.commands.StaffCommand; import org.mifosng.platform.api.commands.UserCommand; -public interface ApiDataConversionService { +public interface PortfolioApiDataConversionService { ChargeCommand convertJsonToChargeCommand(Long resourceIdentifier, String json); @@ -41,7 +41,7 @@ public interface ApiDataConversionService { UserCommand convertJsonToUserCommand(Long resourceIdentifier, String json); - BranchMoneyTransferCommand convertJsonToBranchMoneyTransferCommand(String jsonRequestBody); + BranchMoneyTransferCommand convertJsonToBranchMoneyTransferCommand(String json); LoanProductCommand convertJsonToLoanProductCommand(Long resourceIdentifier, String json); @@ -49,43 +49,42 @@ public interface ApiDataConversionService { DepositProductCommand convertJsonToDepositProductCommand(Long resourceIdentifier, String json); - ClientCommand convertJsonToClientCommand(Long resourceIdentifier, String jsonRequestBody); + ClientCommand convertJsonToClientCommand(Long resourceIdentifier, String json); - GroupCommand convertJsonToGroupCommand(Long resourceIdentifier, String jsonRequestBody); + GroupCommand convertJsonToGroupCommand(Long resourceIdentifier, String json); - LoanApplicationCommand convertJsonToLoanApplicationCommand(Long resourceIdentifier, String jsonRequestBody); + LoanApplicationCommand convertJsonToLoanApplicationCommand(Long resourceIdentifier, String json); - LoanChargeCommand convertJsonToLoanChargeCommand(Long loanChargeId, Long loanId, String jsonRequestBody); + LoanChargeCommand convertJsonToLoanChargeCommand(Long loanChargeId, Long loanId, String json); - LoanStateTransitionCommand convertJsonToLoanStateTransitionCommand(Long resourceIdentifier, String jsonRequestBody); + LoanStateTransitionCommand convertJsonToLoanStateTransitionCommand(Long resourceIdentifier, String json); - LoanTransactionCommand convertJsonToLoanTransactionCommand(Long resourceIdentifier, String jsonRequestBody); + LoanTransactionCommand convertJsonToLoanTransactionCommand(Long resourceIdentifier, String json); AdjustLoanTransactionCommand convertJsonToAdjustLoanTransactionCommand( - Long loanId, Long transactionId, String jsonRequestBody); + Long loanId, Long transactionId, String json); - OrganisationCurrencyCommand convertJsonToOrganisationCurrencyCommand(String jsonRequestBody); + OrganisationCurrencyCommand convertJsonToOrganisationCurrencyCommand(String json); - NoteCommand convertJsonToNoteCommand(Long resourceIdentifier, Long clientId, String jsonRequestBody); + NoteCommand convertJsonToNoteCommand(Long resourceIdentifier, Long clientId, String json); - DepositAccountCommand convertJsonToDepositAccountCommand(Long resourceIdentifier, String jsonRequestBody); + DepositAccountCommand convertJsonToDepositAccountCommand(Long resourceIdentifier, String json); - DepositStateTransitionCommand convertJsonToDepositStateTransitionCommand(Long resourceIdentifier, String jsonRequestBody); + DepositStateTransitionCommand convertJsonToDepositStateTransitionCommand(Long resourceIdentifier, String json); - DepositStateTransitionApprovalCommand convertJsonToDepositStateTransitionApprovalCommand(Long resourceIdentifier, String jsonRequestBody); + DepositStateTransitionApprovalCommand convertJsonToDepositStateTransitionApprovalCommand(Long resourceIdentifier, String json); StaffCommand convertJsonToStaffCommand(Long resourceIdentifier, String json); - BulkLoanReassignmentCommand convertJsonToBulkLoanReassignmentCommand(String jsonRequestBody); + BulkLoanReassignmentCommand convertJsonToBulkLoanReassignmentCommand(String json); - DepositAccountWithdrawalCommand convertJsonToDepositWithdrawalCommand(Long resourceIdentifier, String jsonRequestBody); + DepositAccountWithdrawalCommand convertJsonToDepositWithdrawalCommand(Long resourceIdentifier, String json); - DepositAccountWithdrawInterestCommand convertJsonToDepositAccountWithdrawInterestCommand(Long resourceIdentifier, String jsonRequestBody); + DepositAccountWithdrawInterestCommand convertJsonToDepositAccountWithdrawInterestCommand(Long resourceIdentifier, String json); - ClientIdentifierCommand convertJsonToClientIdentifierCommand(Long resourceIdentifier, Long clientId, String jsonRequestBody); + ClientIdentifierCommand convertJsonToClientIdentifierCommand(Long resourceIdentifier, Long clientId, String json); CodeCommand convertJsonToCodeCommand(Long resourceIdentifier, String json); - SavingAccountCommand convertJsonToSavingAccountCommand(Long resourceIdentifier,String jsonRequestBody); - + SavingAccountCommand convertJsonToSavingAccountCommand(Long resourceIdentifier,String json); } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionServiceImpl.java similarity index 99% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionServiceImpl.java rename to mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionServiceImpl.java index 07bfaf908..58b5383cb 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiDataConversionServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiDataConversionServiceImpl.java @@ -46,9 +46,10 @@ import org.mifosng.platform.api.commands.SavingProductCommand; import org.mifosng.platform.api.commands.StaffCommand; import org.mifosng.platform.api.commands.UserCommand; import org.mifosng.platform.api.data.ApiParameterError; -import org.mifosng.platform.api.errorhandling.InvalidJsonException; -import org.mifosng.platform.api.errorhandling.UnsupportedParameterException; import org.mifosng.platform.exceptions.PlatformApiDataValidationException; +import org.mifosng.platform.infrastructure.api.JsonParserHelper; +import org.mifosng.platform.infrastructure.errorhandling.InvalidJsonException; +import org.mifosng.platform.infrastructure.errorhandling.UnsupportedParameterException; import org.springframework.format.number.NumberFormatter; import org.springframework.stereotype.Service; @@ -60,11 +61,11 @@ import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; @Service -public class ApiDataConversionServiceImpl implements ApiDataConversionService { +public class PortfolioApiDataConversionServiceImpl implements PortfolioApiDataConversionService { private final Gson gsonConverter; - public ApiDataConversionServiceImpl() { + public PortfolioApiDataConversionServiceImpl() { gsonConverter = new Gson(); } @@ -1618,7 +1619,5 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService { return new SavingAccountCommand(modifiedParameters, resourceIdentifier, clientId, productId, externalId, currencyCode, digitsAfterDecimalValue, savingsDepositAmount, recurringInterestRate,savingInterestRate, tenure, commencementDate, savingProductType, tenureType, frequency, interestType, minimumBalanceForWithdrawal, interestCalculationMethod, isLockinPeriodAllowed, isPartialDepositAllowed, lockinPeriod, lockinPeriodType); - } - } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJsonSerializerService.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiJsonSerializerService.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJsonSerializerService.java rename to mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiJsonSerializerService.java index a51cf73df..25ef1b581 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJsonSerializerService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/PortfolioApiJsonSerializerService.java @@ -3,6 +3,7 @@ package org.mifosng.platform.api.infrastructure; import java.util.Collection; import java.util.Set; +import org.mifosng.platform.accounting.api.data.ChartOfAccountsData; import org.mifosng.platform.api.LoanScheduleData; import org.mifosng.platform.api.data.AdditionalFieldsSetData; import org.mifosng.platform.api.data.AppUserData; @@ -36,7 +37,7 @@ import org.mifosng.platform.api.data.SavingAccountData; import org.mifosng.platform.api.data.SavingProductData; import org.mifosng.platform.api.data.StaffData; -public interface ApiJsonSerializerService { +public interface PortfolioApiJsonSerializerService { String serializeAuthenticatedUserDataToJson(boolean prettyPrint, AuthenticatedUserData authenticatedUserData); @@ -138,4 +139,7 @@ public interface ApiJsonSerializerService { String serializeSavingAccountsDataToJson(boolean prettyPrint, Set responseParameters, Collection accounts); + // TODO - KW - might devide serialize up into portfolio and account to reduce interface + String serializeChartOfAccountDataToJson(boolean prettyPrint, Set responseParameters, ChartOfAccountsData chartOfAccounts); + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiParameterHelper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ApiParameterHelper.java similarity index 98% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiParameterHelper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ApiParameterHelper.java index 141791383..ed086fe10 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiParameterHelper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ApiParameterHelper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.util.Arrays; import java.util.HashSet; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonSerializerHelper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/GoogleGsonSerializerHelper.java similarity index 94% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonSerializerHelper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/GoogleGsonSerializerHelper.java index 99548e4db..30c05ceb7 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/GoogleGsonSerializerHelper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/GoogleGsonSerializerHelper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.util.ArrayList; import java.util.HashSet; @@ -6,7 +6,7 @@ import java.util.Set; import org.joda.time.DateTime; import org.joda.time.LocalDate; -import org.mifosng.platform.api.errorhandling.UnsupportedParameterException; +import org.mifosng.platform.infrastructure.errorhandling.UnsupportedParameterException; import org.springframework.stereotype.Service; import com.google.gson.ExclusionStrategy; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaDateTimeAdapter.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaDateTimeAdapter.java similarity index 93% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaDateTimeAdapter.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaDateTimeAdapter.java index f9291a558..9ece15bfc 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaDateTimeAdapter.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaDateTimeAdapter.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.lang.reflect.Type; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaLocalDateAdapter.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaLocalDateAdapter.java similarity index 94% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaLocalDateAdapter.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaLocalDateAdapter.java index f53fc5937..66b624205 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JodaLocalDateAdapter.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JodaLocalDateAdapter.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.lang.reflect.Type; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JsonParserHelper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JsonParserHelper.java similarity index 96% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JsonParserHelper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JsonParserHelper.java index 07fc30449..cde4ffbfe 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/JsonParserHelper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/JsonParserHelper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.math.BigDecimal; import java.text.DecimalFormat; @@ -26,6 +26,20 @@ import com.google.gson.JsonPrimitive; * Helper class to extract values of json named attributes. */ public class JsonParserHelper { + + public Boolean extractBooleanNamed(final String parameterName, final JsonElement element, final Set requestParamatersDetected) { + Boolean value = null; + if (element.isJsonObject()) { + JsonObject object = element.getAsJsonObject(); + if (object.has(parameterName) && object.get(parameterName).isJsonPrimitive()) { + requestParamatersDetected.add(parameterName); + + JsonPrimitive primitive = object.get(parameterName).getAsJsonPrimitive(); + value = primitive.getAsBoolean(); + } + } + return value; + } public Long extractLongNamed(final String parameterName, final JsonElement element, final Set modifiedParameters) { diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ParameterListExclusionStrategy.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ParameterListExclusionStrategy.java similarity index 92% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ParameterListExclusionStrategy.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ParameterListExclusionStrategy.java index 67647209f..6c5e3027a 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ParameterListExclusionStrategy.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/api/ParameterListExclusionStrategy.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.infrastructure; +package org.mifosng.platform.infrastructure.api; import java.util.Set; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/AccessDeniedExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/AccessDeniedExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/AccessDeniedExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/AccessDeniedExceptionMapper.java index dac31b4fb..27e1a3c3e 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/AccessDeniedExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/AccessDeniedExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/BadCredentialsExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/BadCredentialsExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/BadCredentialsExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/BadCredentialsExceptionMapper.java index a8f1a1a4c..4604df0b5 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/BadCredentialsExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/BadCredentialsExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonException.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonException.java similarity index 77% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonException.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonException.java index 765202d5b..597ee9292 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonException.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonException.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; /** diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonExceptionMapper.java similarity index 94% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonExceptionMapper.java index 8714d31da..00862ea8d 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidJsonExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidJsonExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidTenantIdentifierExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidTenantIdentifierExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidTenantIdentifierExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidTenantIdentifierExceptionMapper.java index 6571957e1..59da7ecb4 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/InvalidTenantIdentifierExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/InvalidTenantIdentifierExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/JsonSyntaxExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/JsonSyntaxExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/JsonSyntaxExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/JsonSyntaxExceptionMapper.java index 0d372ac3f..290ed0acf 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/JsonSyntaxExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/JsonSyntaxExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/MalformedJsonExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/MalformedJsonExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/MalformedJsonExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/MalformedJsonExceptionMapper.java index 2a417bc97..7c4d74ae4 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/MalformedJsonExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/MalformedJsonExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/NoAuthorizationExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/NoAuthorizationExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/NoAuthorizationExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/NoAuthorizationExceptionMapper.java index 8beffd6ed..51fb0de8d 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/NoAuthorizationExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/NoAuthorizationExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformApiDataValidationExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformApiDataValidationExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformApiDataValidationExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformApiDataValidationExceptionMapper.java index dbe072ce2..7a1d6fab8 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformApiDataValidationExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformApiDataValidationExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDataIntegrityExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDataIntegrityExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDataIntegrityExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDataIntegrityExceptionMapper.java index f4e6ba554..6371d77e4 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDataIntegrityExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDataIntegrityExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDomainRuleExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDomainRuleExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDomainRuleExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDomainRuleExceptionMapper.java index 4e9c2e892..24dd3c45d 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformDomainRuleExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformDomainRuleExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformInternalServerExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformInternalServerExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformInternalServerExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformInternalServerExceptionMapper.java index d0228a4d8..ddfe841e9 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformInternalServerExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformInternalServerExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformResourceNotFoundExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformResourceNotFoundExceptionMapper.java similarity index 95% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformResourceNotFoundExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformResourceNotFoundExceptionMapper.java index f87fd3531..d2633350e 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/PlatformResourceNotFoundExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/PlatformResourceNotFoundExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnAuthenticatedUserExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnAuthenticatedUserExceptionMapper.java similarity index 94% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnAuthenticatedUserExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnAuthenticatedUserExceptionMapper.java index 16188ac61..821a9220b 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnAuthenticatedUserExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnAuthenticatedUserExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnrecognizedQueryParamExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnrecognizedQueryParamExceptionMapper.java similarity index 97% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnrecognizedQueryParamExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnrecognizedQueryParamExceptionMapper.java index 9bff08258..4e0bc5e96 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnrecognizedQueryParamExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnrecognizedQueryParamExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import java.util.ArrayList; import java.util.List; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterException.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterException.java similarity index 89% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterException.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterException.java index a42af0a93..742c85696 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterException.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterException.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import java.util.List; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterExceptionMapper.java b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterExceptionMapper.java similarity index 96% rename from mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterExceptionMapper.java rename to mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterExceptionMapper.java index b2ba083ff..8aa675e10 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/errorhandling/UnsupportedParameterExceptionMapper.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/infrastructure/errorhandling/UnsupportedParameterExceptionMapper.java @@ -1,4 +1,4 @@ -package org.mifosng.platform.api.errorhandling; +package org.mifosng.platform.infrastructure.errorhandling; import java.util.ArrayList; import java.util.List; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java index 011dae82a..632eb6beb 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/noncore/ReadWriteNonCoreDataServiceImpl.java @@ -18,10 +18,10 @@ import org.mifosng.platform.api.data.GenericResultsetData; import org.mifosng.platform.api.data.ResultsetColumnHeader; import org.mifosng.platform.api.data.ResultsetColumnValue; import org.mifosng.platform.api.data.ResultsetDataRow; -import org.mifosng.platform.api.infrastructure.JsonParserHelper; import org.mifosng.platform.exceptions.DataTableNotFoundException; import org.mifosng.platform.exceptions.PlatformApiDataValidationException; import org.mifosng.platform.exceptions.PlatformDataIntegrityException; +import org.mifosng.platform.infrastructure.api.JsonParserHelper; import org.mifosng.platform.security.PlatformSecurityContext; import org.mifosng.platform.user.domain.AppUser; import org.slf4j.Logger;