Skip to content
Snippets Groups Projects
Commit dab22911 authored by Rostislav Vatolin [SLB]'s avatar Rostislav Vatolin [SLB]
Browse files

Merge branch 'make_svc_req_sc' into 'master'

Legal service overloading BlobStore of storage container

Closes #17

See merge request !159
parents 6555ff73 6abcd7d2
No related branches found
No related tags found
1 merge request!159Legal service overloading BlobStore of storage container
Pipeline #75779 failed
......@@ -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
}
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment