From 6abcd7d219ab582363946374a00e1422d9db1707 Mon Sep 17 00:00:00 2001 From: "Rostislav Vatolin [SLB]" <rvatolin@slb.com> Date: Fri, 5 Nov 2021 17:34:04 +0000 Subject: [PATCH] Legal service overloading BlobStore of storage container --- .../countries/LegalTagCountriesService.java | 60 +++++++++---------- .../LegalTagCountriesServiceTests.java | 4 +- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/legal-core/src/main/java/org/opengroup/osdu/legal/countries/LegalTagCountriesService.java b/legal-core/src/main/java/org/opengroup/osdu/legal/countries/LegalTagCountriesService.java index 56af5bc23..f25ad3573 100644 --- a/legal-core/src/main/java/org/opengroup/osdu/legal/countries/LegalTagCountriesService.java +++ b/legal-core/src/main/java/org/opengroup/osdu/legal/countries/LegalTagCountriesService.java @@ -4,15 +4,22 @@ import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.springframework.stereotype.Service; import org.opengroup.osdu.core.common.model.http.RequestInfo; import org.opengroup.osdu.core.common.model.legal.ServiceConfig; +import org.springframework.web.context.annotation.RequestScope; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.PostConstruct; import javax.inject.Inject; @Service +@RequestScope public class LegalTagCountriesService { + private List<Country> cloudStorageCountries; + private Map<String, String> validORDCs; + @Inject private LegalTagCountriesTenantRepositories repositories; @@ -25,39 +32,35 @@ public class LegalTagCountriesService { @Inject private DefaultCountriesRepository defaultCountriesRepository; - public Map<String, String> getValidCOOs() { - Map<String,String> coos = new HashMap<>(); - + @PostConstruct + private void setup() { TenantInfo tenant = requestInfo.getTenantInfo(); LegalTagCountriesRepository legalTagCountriesRepository = repositories.get(tenant, serviceConfig.getRegion()); + List<Country> sourceCountries = defaultCountriesRepository.read(); + List<Country> tenantCountries = legalTagCountriesRepository.read(); + List<Country> cloudStorageCountries = this.mergeCountriesRepositories(sourceCountries, tenantCountries); + this.cloudStorageCountries = Collections.unmodifiableList(cloudStorageCountries); - generateCOOsFromRepository(coos, new DefaultCountriesRepository(), legalTagCountriesRepository, "none"); - return coos; + Map<String,String> ordcs = new HashMap<>(); + generateORDCsFromRepository(ordcs, sourceCountries); + generateORDCsFromRepository(ordcs, tenantCountries); + validORDCs = Collections.unmodifiableMap(ordcs); } - public Map<String, String> getValidCOOs(String dataType) { - Map<String,String> coos = new HashMap<>(); - - TenantInfo tenant = requestInfo.getTenantInfo(); - LegalTagCountriesRepository legalTagCountriesRepository = repositories.get(tenant, serviceConfig.getRegion()); + public Map<String, String> getValidCOOs() { + return generateCOOsFromRepository("none"); + } - generateCOOsFromRepository(coos, defaultCountriesRepository, legalTagCountriesRepository, dataType); - return coos; + public Map<String, String> getValidCOOs(String dataType) { + return generateCOOsFromRepository(dataType); } public Map<String, String> getValidORDCs() { - Map<String,String> ordcs = new HashMap<>(); - - TenantInfo tenant = requestInfo.getTenantInfo(); - LegalTagCountriesRepository legalTagCountriesRepository = repositories.get(tenant, serviceConfig.getRegion()); - - generateORDCsFromRepository(ordcs, defaultCountriesRepository); - generateORDCsFromRepository(ordcs, legalTagCountriesRepository); - return ordcs; + return validORDCs; } - private void generateCOOsFromRepository(Map<String, String> coos, LegalTagCountriesRepository defaultCountriesRepository, LegalTagCountriesRepository cloudCountriesRepository, String dataType) { - List<Country> cloudStorageCountries = this.mergeCountriesRepositories(defaultCountriesRepository, cloudCountriesRepository); + private Map<String,String> generateCOOsFromRepository(String dataType) { + Map<String,String> coos = new HashMap<>(); for (Country country : cloudStorageCountries) { if (country.getResidencyRisk() != null && (country.getResidencyRisk().equals(Country.RESIDENCY_RISK.NO_RESTRICTION) || @@ -68,11 +71,10 @@ public class LegalTagCountriesService { coos.put(country.getAlpha2(), country.getName()); } } + return Collections.unmodifiableMap(coos); } - private List<Country> mergeCountriesRepositories(LegalTagCountriesRepository defaultRepository, LegalTagCountriesRepository cloudRepository) { - List<Country> sourceCountries = defaultRepository.read(); - List<Country> tenantCountries = cloudRepository.read(); + private List<Country> mergeCountriesRepositories(List<Country> sourceCountries, List<Country> tenantCountries) { for (Country tenantCountry : tenantCountries) { for (int i = 0; i < sourceCountries.size(); i++) { if (sourceCountries.get(i).isMatchByAlpha2(tenantCountry)) { @@ -83,10 +85,8 @@ public class LegalTagCountriesService { return sourceCountries; } - - private void generateORDCsFromRepository(Map<String, String> coos, LegalTagCountriesRepository legalTagCountriesRepository) { - List<Country> cloudStorageCountries = legalTagCountriesRepository.read(); - for (Country country : cloudStorageCountries) { + private void generateORDCsFromRepository(Map<String, String> coos, List<Country> countries) { + for (Country country : countries) { if (country.getResidencyRisk() != null && !country.getResidencyRisk().equals(Country.RESIDENCY_RISK.EMBARGOED)) { coos.put(country.getAlpha2(), country.getName()); } else { @@ -94,4 +94,4 @@ public class LegalTagCountriesService { } } } -} \ No newline at end of file +} diff --git a/legal-core/src/test/java/org/opengroup/osdu/legal/countries/LegalTagCountriesServiceTests.java b/legal-core/src/test/java/org/opengroup/osdu/legal/countries/LegalTagCountriesServiceTests.java index 4e9812294..3b3fd803b 100644 --- a/legal-core/src/test/java/org/opengroup/osdu/legal/countries/LegalTagCountriesServiceTests.java +++ b/legal-core/src/test/java/org/opengroup/osdu/legal/countries/LegalTagCountriesServiceTests.java @@ -10,6 +10,7 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; import java.util.ArrayList; import java.util.List; @@ -45,13 +46,14 @@ public class LegalTagCountriesServiceTests { private DefaultCountriesRepository defaultCountriesRepository; @Before - public void setup() { + public void setup() throws Exception { DefaultCountriesRepository defaultCountriesRepository = new DefaultCountriesRepository(); this.listOfCountries = defaultCountriesRepository.read(); when(this.repositories.get(any(), any())).thenReturn(this.legalTagCountriesRepository); when(this.legalTagCountriesRepository.read()).thenReturn(this.listOfCountries); when(this.requestInfo.getTenantInfo()).thenReturn(this.tenantInfo); when(this.defaultCountriesRepository.read()).thenReturn(this.listOfCountries); + Whitebox.invokeMethod(sut, "setup"); } @Test -- GitLab