Add custom Configuration class for organisation/provisioning module (FINERACT-1932)
This commit is contained in:
committed by
Aleksandar Vidakovic
parent
62811ad60b
commit
01e7dcf4ce
+3
-10
@@ -21,24 +21,17 @@ package org.apache.fineract.organisation.provisioning.service;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProvisioningCategoryReadPlatformServiceImpl implements ProvisioningCategoryReadPlatformService {
|
||||
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
private final ProvisioningCategoryRowMapper provisionCategoryRowMapper;
|
||||
|
||||
@Autowired
|
||||
public ProvisioningCategoryReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) {
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
this.provisionCategoryRowMapper = new ProvisioningCategoryRowMapper();
|
||||
}
|
||||
private final ProvisioningCategoryRowMapper provisionCategoryRowMapper = new ProvisioningCategoryRowMapper();
|
||||
|
||||
@Override
|
||||
public Collection<ProvisioningCategoryData> retrieveAllProvisionCategories() {
|
||||
|
||||
+6
-17
@@ -20,6 +20,8 @@ package org.apache.fineract.organisation.provisioning.service;
|
||||
|
||||
import jakarta.persistence.PersistenceException;
|
||||
import java.util.Map;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
@@ -30,33 +32,20 @@ import org.apache.fineract.organisation.provisioning.domain.ProvisioningCategory
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCategoryCannotBeDeletedException;
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCategoryNotFoundException;
|
||||
import org.apache.fineract.organisation.provisioning.serialization.ProvisioningCategoryDefinitionJsonDeserializer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
import org.springframework.dao.NonTransientDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl implements ProvisioningCategoryWritePlatformService {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl.class);
|
||||
|
||||
private final ProvisioningCategoryRepository provisioningCategoryRepository;
|
||||
|
||||
private final ProvisioningCategoryDefinitionJsonDeserializer fromApiJsonDeserializer;
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
|
||||
@Autowired
|
||||
public ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl(final ProvisioningCategoryRepository provisioningCategoryRepository,
|
||||
final ProvisioningCategoryDefinitionJsonDeserializer fromApiJsonDeserializer, final JdbcTemplate jdbcTemplate) {
|
||||
this.provisioningCategoryRepository = provisioningCategoryRepository;
|
||||
this.fromApiJsonDeserializer = fromApiJsonDeserializer;
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandProcessingResult createProvisioningCateogry(JsonCommand command) {
|
||||
try {
|
||||
@@ -127,7 +116,7 @@ public class ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl implement
|
||||
throw new PlatformDataIntegrityException("error.msg.provisioning.duplicate.categoryname",
|
||||
"Provisioning Cateory with name `" + name + "` already exists", "category name", name);
|
||||
}
|
||||
LOG.error("Error occured.", dve);
|
||||
log.error("Error occured.", dve);
|
||||
throw new PlatformDataIntegrityException("error.msg.charge.unknown.data.integrity.issue",
|
||||
"Unknown data integrity issue with resource: " + realCause.getMessage());
|
||||
}
|
||||
@@ -139,7 +128,7 @@ public class ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl implement
|
||||
throw new PlatformDataIntegrityException("error.msg.provisioning.duplicate.categoryname",
|
||||
"Provisioning Cateory with name `" + name + "` already exists", "category name", name);
|
||||
}
|
||||
LOG.error("Error occured.", dve);
|
||||
log.error("Error occured.", dve);
|
||||
throw new PlatformDataIntegrityException("error.msg.charge.unknown.data.integrity.issue",
|
||||
"Unknown data integrity issue with resource: " + realCause.getMessage());
|
||||
}
|
||||
|
||||
+2
-14
@@ -27,6 +27,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.accounting.glaccount.domain.GLAccount;
|
||||
import org.apache.fineract.accounting.glaccount.domain.GLAccountRepository;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
@@ -41,10 +42,8 @@ import org.apache.fineract.organisation.provisioning.domain.ProvisioningCriteria
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCriteriaOverlappingDefinitionException;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProvisioningCriteriaAssembler {
|
||||
|
||||
private final FromJsonHelper fromApiJsonHelper;
|
||||
@@ -53,17 +52,6 @@ public class ProvisioningCriteriaAssembler {
|
||||
private final GLAccountRepository glAccountRepository;
|
||||
private final PlatformSecurityContext platformSecurityContext;
|
||||
|
||||
@Autowired
|
||||
public ProvisioningCriteriaAssembler(final FromJsonHelper fromApiJsonHelper,
|
||||
final ProvisioningCategoryRepository provisioningCategoryRepository, final LoanProductRepository loanProductRepository,
|
||||
final GLAccountRepository glAccountRepository, final PlatformSecurityContext platformSecurityContext) {
|
||||
this.fromApiJsonHelper = fromApiJsonHelper;
|
||||
this.provisioningCategoryRepository = provisioningCategoryRepository;
|
||||
this.loanProductRepository = loanProductRepository;
|
||||
this.glAccountRepository = glAccountRepository;
|
||||
this.platformSecurityContext = platformSecurityContext;
|
||||
}
|
||||
|
||||
public List<LoanProduct> parseLoanProducts(final JsonElement jsonElement) {
|
||||
List<LoanProduct> loanProducts = new ArrayList<>();
|
||||
if (fromApiJsonHelper.parameterExists(ProvisioningCriteriaConstants.JSON_LOANPRODUCTS_PARAM, jsonElement)) {
|
||||
|
||||
+2
-16
@@ -24,6 +24,7 @@ import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.accounting.glaccount.data.GLAccountData;
|
||||
import org.apache.fineract.accounting.glaccount.service.GLAccountReadPlatformService;
|
||||
import org.apache.fineract.organisation.provisioning.data.ProvisioningCategoryData;
|
||||
@@ -32,13 +33,11 @@ import org.apache.fineract.organisation.provisioning.data.ProvisioningCriteriaDe
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCriteriaNotFoundException;
|
||||
import org.apache.fineract.portfolio.loanproduct.data.LoanProductData;
|
||||
import org.apache.fineract.portfolio.loanproduct.service.LoanProductReadPlatformService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProvisioningCriteriaReadPlatformServiceImpl implements ProvisioningCriteriaReadPlatformService {
|
||||
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
@@ -47,19 +46,6 @@ public class ProvisioningCriteriaReadPlatformServiceImpl implements Provisioning
|
||||
private final GLAccountReadPlatformService glAccountReadPlatformService;
|
||||
private final LoanProductReadPlatformService loanProductReaPlatformService;
|
||||
|
||||
@Autowired
|
||||
public ProvisioningCriteriaReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate,
|
||||
final ProvisioningCategoryReadPlatformService provisioningCategoryReadPlatformService,
|
||||
final LoanProductReadPlatformService loanProductReadPlatformService,
|
||||
final GLAccountReadPlatformService glAccountReadPlatformService,
|
||||
final LoanProductReadPlatformService loanProductReaPlatformService) {
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
this.provisioningCategoryReadPlatformService = provisioningCategoryReadPlatformService;
|
||||
this.loanProductReadPlatformService = loanProductReadPlatformService;
|
||||
this.glAccountReadPlatformService = glAccountReadPlatformService;
|
||||
this.loanProductReaPlatformService = loanProductReaPlatformService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProvisioningCriteriaData retrievePrivisiongCriteriaTemplate() {
|
||||
boolean onlyActive = true;
|
||||
|
||||
+5
-23
@@ -26,6 +26,8 @@ import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.apache.fineract.accounting.glaccount.domain.GLAccount;
|
||||
import org.apache.fineract.accounting.glaccount.domain.GLAccountRepository;
|
||||
@@ -44,18 +46,13 @@ import org.apache.fineract.organisation.provisioning.exception.ProvisioningCrite
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCriteriaNotFoundException;
|
||||
import org.apache.fineract.organisation.provisioning.serialization.ProvisioningCriteriaDefinitionJsonDeserializer;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl implements ProvisioningCriteriaWritePlatformService {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl.class);
|
||||
|
||||
private final ProvisioningCriteriaDefinitionJsonDeserializer fromApiJsonDeserializer;
|
||||
private final ProvisioningCriteriaAssembler provisioningCriteriaAssembler;
|
||||
private final ProvisioningCriteriaRepository provisioningCriteriaRepository;
|
||||
@@ -63,21 +60,6 @@ public class ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl implement
|
||||
private final GLAccountRepository glAccountRepository;
|
||||
private final ProvisioningEntriesReadPlatformService provisioningEntriesReadPlatformService;
|
||||
|
||||
@Autowired
|
||||
public ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl(
|
||||
final ProvisioningCriteriaDefinitionJsonDeserializer fromApiJsonDeserializer,
|
||||
final ProvisioningCriteriaAssembler provisioningCriteriaAssembler,
|
||||
final ProvisioningCriteriaRepository provisioningCriteriaRepository, final FromJsonHelper fromApiJsonHelper,
|
||||
final GLAccountRepository glAccountRepository,
|
||||
final ProvisioningEntriesReadPlatformService provisioningEntriesReadPlatformService) {
|
||||
this.fromApiJsonDeserializer = fromApiJsonDeserializer;
|
||||
this.provisioningCriteriaAssembler = provisioningCriteriaAssembler;
|
||||
this.provisioningCriteriaRepository = provisioningCriteriaRepository;
|
||||
this.fromApiJsonHelper = fromApiJsonHelper;
|
||||
this.glAccountRepository = glAccountRepository;
|
||||
this.provisioningEntriesReadPlatformService = provisioningEntriesReadPlatformService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandProcessingResult createProvisioningCriteria(JsonCommand command) {
|
||||
try {
|
||||
@@ -175,7 +157,7 @@ public class ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl implement
|
||||
throw new PlatformDataIntegrityException("error.msg.provisioning.product.id(s).already.associated.existing.criteria",
|
||||
"The selected products already associated with another Provisioning Criteria");
|
||||
}
|
||||
LOG.error("Error occured.", dve);
|
||||
log.error("Error occured.", dve);
|
||||
throw new PlatformDataIntegrityException("error.msg.provisioning.unknown.data.integrity.issue",
|
||||
"Unknown data integrity issue with resource: " + realCause.getMessage());
|
||||
}
|
||||
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.fineract.organisation.provisioning.starter;
|
||||
|
||||
import org.apache.fineract.accounting.glaccount.domain.GLAccountRepository;
|
||||
import org.apache.fineract.accounting.glaccount.service.GLAccountReadPlatformService;
|
||||
import org.apache.fineract.accounting.provisioning.service.ProvisioningEntriesReadPlatformService;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.organisation.provisioning.domain.ProvisioningCategoryRepository;
|
||||
import org.apache.fineract.organisation.provisioning.domain.ProvisioningCriteriaRepository;
|
||||
import org.apache.fineract.organisation.provisioning.serialization.ProvisioningCategoryDefinitionJsonDeserializer;
|
||||
import org.apache.fineract.organisation.provisioning.serialization.ProvisioningCriteriaDefinitionJsonDeserializer;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryReadPlatformService;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryReadPlatformServiceImpl;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryWritePlatformService;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaAssembler;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaReadPlatformService;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaReadPlatformServiceImpl;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaWritePlatformService;
|
||||
import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
|
||||
import org.apache.fineract.portfolio.loanproduct.service.LoanProductReadPlatformService;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
@Configuration
|
||||
public class OrganisationProvisioningConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ProvisioningCategoryReadPlatformService.class)
|
||||
public ProvisioningCategoryReadPlatformService provisioningCategoryReadPlatformService(JdbcTemplate jdbcTemplate) {
|
||||
return new ProvisioningCategoryReadPlatformServiceImpl(jdbcTemplate);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ProvisioningCategoryWritePlatformService.class)
|
||||
public ProvisioningCategoryWritePlatformService provisioningCategoryWritePlatformService(
|
||||
ProvisioningCategoryRepository provisioningCategoryRepository,
|
||||
ProvisioningCategoryDefinitionJsonDeserializer fromApiJsonDeserializer, JdbcTemplate jdbcTemplate) {
|
||||
return new ProvisioningCategoryWritePlatformServiceJpaRepositoryImpl(provisioningCategoryRepository, fromApiJsonDeserializer,
|
||||
jdbcTemplate);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ProvisioningCriteriaAssembler.class)
|
||||
public ProvisioningCriteriaAssembler provisioningCriteriaAssembler(FromJsonHelper fromApiJsonHelper,
|
||||
ProvisioningCategoryRepository provisioningCategoryRepository, LoanProductRepository loanProductRepository,
|
||||
GLAccountRepository glAccountRepository, PlatformSecurityContext platformSecurityContext) {
|
||||
return new ProvisioningCriteriaAssembler(fromApiJsonHelper, provisioningCategoryRepository, loanProductRepository,
|
||||
glAccountRepository, platformSecurityContext);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ProvisioningCriteriaReadPlatformService.class)
|
||||
public ProvisioningCriteriaReadPlatformService provisioningCriteriaReadPlatformService(JdbcTemplate jdbcTemplate,
|
||||
ProvisioningCategoryReadPlatformService provisioningCategoryReadPlatformService,
|
||||
LoanProductReadPlatformService loanProductReadPlatformService, GLAccountReadPlatformService glAccountReadPlatformService,
|
||||
LoanProductReadPlatformService loanProductReaPlatformService) {
|
||||
return new ProvisioningCriteriaReadPlatformServiceImpl(jdbcTemplate, provisioningCategoryReadPlatformService,
|
||||
loanProductReadPlatformService, glAccountReadPlatformService, loanProductReaPlatformService);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ProvisioningCriteriaWritePlatformService.class)
|
||||
public ProvisioningCriteriaWritePlatformService provisioningCriteriaWritePlatformService(
|
||||
ProvisioningCriteriaDefinitionJsonDeserializer fromApiJsonDeserializer,
|
||||
ProvisioningCriteriaAssembler provisioningCriteriaAssembler, ProvisioningCriteriaRepository provisioningCriteriaRepository,
|
||||
FromJsonHelper fromApiJsonHelper, GLAccountRepository glAccountRepository,
|
||||
ProvisioningEntriesReadPlatformService provisioningEntriesReadPlatformService) {
|
||||
return new ProvisioningCriteriaWritePlatformServiceJpaRepositoryImpl(fromApiJsonDeserializer, provisioningCriteriaAssembler,
|
||||
provisioningCriteriaRepository, fromApiJsonHelper, glAccountRepository, provisioningEntriesReadPlatformService);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user