You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2023/09/11 12:43:45 UTC

[fineract] branch develop updated: FINERACT-1932: Add custom Configuration class for self-registration module

This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new ed4c85a5c FINERACT-1932: Add custom Configuration class for self-registration module
ed4c85a5c is described below

commit ed4c85a5c8a93e2efdc3c03c5c8681355869593e
Author: Mohamed Magdi-Abdelmonem <mo...@gmail.com>
AuthorDate: Sat Sep 9 18:13:17 2023 +0300

    FINERACT-1932: Add custom Configuration class for self-registration module
---
 ...ServiceRegistrationReadPlatformServiceImpl.java | 10 +---
 ...erviceRegistrationWritePlatformServiceImpl.java | 30 +---------
 .../starter/SelfRegistrationConfiguration.java     | 66 ++++++++++++++++++++++
 3 files changed, 71 insertions(+), 35 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
index d26f8f6c2..8fd55f5b8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
@@ -18,20 +18,14 @@
  */
 package org.apache.fineract.portfolio.self.registration.service;
 
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.stereotype.Service;
 
-@Service
+@RequiredArgsConstructor
 public class SelfServiceRegistrationReadPlatformServiceImpl implements SelfServiceRegistrationReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
 
-    @Autowired
-    public SelfServiceRegistrationReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) {
-        this.jdbcTemplate = jdbcTemplate;
-    }
-
     @Override
     public boolean isClientExist(String accountNumber, String firstName, String lastName, String mobileNumber,
             boolean isEmailAuthenticationMode) {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationWritePlatformServiceImpl.java
index 4432fc44e..3f76b1936 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationWritePlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationWritePlatformServiceImpl.java
@@ -31,6 +31,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.fineract.infrastructure.campaigns.sms.data.SmsProviderData;
 import org.apache.fineract.infrastructure.campaigns.sms.domain.SmsCampaign;
@@ -64,15 +65,13 @@ import org.apache.fineract.useradministration.domain.RoleRepository;
 import org.apache.fineract.useradministration.domain.UserDomainService;
 import org.apache.fineract.useradministration.exception.RoleNotFoundException;
 import org.apache.fineract.useradministration.service.AppUserReadPlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.orm.jpa.JpaSystemException;
 import org.springframework.security.authentication.AuthenticationServiceException;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.User;
-import org.springframework.stereotype.Service;
 
-@Service
+@RequiredArgsConstructor
 public class SelfServiceRegistrationWritePlatformServiceImpl implements SelfServiceRegistrationWritePlatformService {
 
     private final SelfServiceRegistrationRepository selfServiceRegistrationRepository;
@@ -83,35 +82,12 @@ public class SelfServiceRegistrationWritePlatformServiceImpl implements SelfServ
     private final UserDomainService userDomainService;
     private final GmailBackedPlatformEmailService gmailBackedPlatformEmailService;
     private final SmsMessageRepository smsMessageRepository;
-    private SmsMessageScheduledJobService smsMessageScheduledJobService;
+    private final SmsMessageScheduledJobService smsMessageScheduledJobService;
     private final SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService;
     private final AppUserReadPlatformService appUserReadPlatformService;
     private final RoleRepository roleRepository;
     private static final SecureRandom secureRandom = new SecureRandom();
 
-    @Autowired
-    public SelfServiceRegistrationWritePlatformServiceImpl(final SelfServiceRegistrationRepository selfServiceRegistrationRepository,
-            final FromJsonHelper fromApiJsonHelper,
-            final SelfServiceRegistrationReadPlatformService selfServiceRegistrationReadPlatformService,
-            final ClientRepositoryWrapper clientRepository, final PasswordValidationPolicyRepository passwordValidationPolicy,
-            final UserDomainService userDomainService, final GmailBackedPlatformEmailService gmailBackedPlatformEmailService,
-            final SmsMessageRepository smsMessageRepository, SmsMessageScheduledJobService smsMessageScheduledJobService,
-            final SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService,
-            final AppUserReadPlatformService appUserReadPlatformService, final RoleRepository roleRepository) {
-        this.selfServiceRegistrationRepository = selfServiceRegistrationRepository;
-        this.fromApiJsonHelper = fromApiJsonHelper;
-        this.selfServiceRegistrationReadPlatformService = selfServiceRegistrationReadPlatformService;
-        this.clientRepository = clientRepository;
-        this.passwordValidationPolicy = passwordValidationPolicy;
-        this.userDomainService = userDomainService;
-        this.gmailBackedPlatformEmailService = gmailBackedPlatformEmailService;
-        this.smsMessageRepository = smsMessageRepository;
-        this.smsMessageScheduledJobService = smsMessageScheduledJobService;
-        this.smsCampaignDropdownReadPlatformService = smsCampaignDropdownReadPlatformService;
-        this.appUserReadPlatformService = appUserReadPlatformService;
-        this.roleRepository = roleRepository;
-    }
-
     @Override
     public SelfServiceRegistration createRegistrationRequest(String apiRequestBodyAsJson) {
         Gson gson = new Gson();
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/starter/SelfRegistrationConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/starter/SelfRegistrationConfiguration.java
new file mode 100644
index 000000000..17e2b7fe1
--- /dev/null
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/starter/SelfRegistrationConfiguration.java
@@ -0,0 +1,66 @@
+/**
+ * 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.portfolio.self.registration.starter;
+
+import org.apache.fineract.infrastructure.campaigns.sms.service.SmsCampaignDropdownReadPlatformService;
+import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
+import org.apache.fineract.infrastructure.core.service.GmailBackedPlatformEmailService;
+import org.apache.fineract.infrastructure.sms.domain.SmsMessageRepository;
+import org.apache.fineract.infrastructure.sms.scheduler.SmsMessageScheduledJobService;
+import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
+import org.apache.fineract.portfolio.self.registration.domain.SelfServiceRegistrationRepository;
+import org.apache.fineract.portfolio.self.registration.service.SelfServiceRegistrationReadPlatformService;
+import org.apache.fineract.portfolio.self.registration.service.SelfServiceRegistrationReadPlatformServiceImpl;
+import org.apache.fineract.portfolio.self.registration.service.SelfServiceRegistrationWritePlatformService;
+import org.apache.fineract.portfolio.self.registration.service.SelfServiceRegistrationWritePlatformServiceImpl;
+import org.apache.fineract.useradministration.domain.PasswordValidationPolicyRepository;
+import org.apache.fineract.useradministration.domain.RoleRepository;
+import org.apache.fineract.useradministration.domain.UserDomainService;
+import org.apache.fineract.useradministration.service.AppUserReadPlatformService;
+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 SelfRegistrationConfiguration {
+
+    @Bean
+    @ConditionalOnMissingBean(SelfServiceRegistrationReadPlatformService.class)
+    public SelfServiceRegistrationReadPlatformService selfServiceRegistrationReadPlatformService(JdbcTemplate jdbcTemplate) {
+        return new SelfServiceRegistrationReadPlatformServiceImpl(jdbcTemplate);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(SelfServiceRegistrationWritePlatformService.class)
+    public SelfServiceRegistrationWritePlatformService selfServiceRegistrationWritePlatformService(
+
+            SelfServiceRegistrationRepository selfServiceRegistrationRepository, FromJsonHelper fromApiJsonHelper,
+            SelfServiceRegistrationReadPlatformService selfServiceRegistrationReadPlatformService, ClientRepositoryWrapper clientRepository,
+            PasswordValidationPolicyRepository passwordValidationPolicy, UserDomainService userDomainService,
+            GmailBackedPlatformEmailService gmailBackedPlatformEmailService, SmsMessageRepository smsMessageRepository,
+            SmsMessageScheduledJobService smsMessageScheduledJobService,
+            SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService,
+            AppUserReadPlatformService appUserReadPlatformService, RoleRepository roleRepository) {
+        return new SelfServiceRegistrationWritePlatformServiceImpl(selfServiceRegistrationRepository, fromApiJsonHelper,
+                selfServiceRegistrationReadPlatformService, clientRepository, passwordValidationPolicy, userDomainService,
+                gmailBackedPlatformEmailService, smsMessageRepository, smsMessageScheduledJobService,
+                smsCampaignDropdownReadPlatformService, appUserReadPlatformService, roleRepository);
+    }
+}