diff --git a/descriptors/ModuleDescriptor-template.json b/descriptors/ModuleDescriptor-template.json
index e07efb192..a9fba9638 100644
--- a/descriptors/ModuleDescriptor-template.json
+++ b/descriptors/ModuleDescriptor-template.json
@@ -151,8 +151,12 @@
"version": "1.2"
},
{
- "id": "settings",
- "version": "1.2"
+ "id": "locale",
+ "version": "1.0"
+ },
+ {
+ "id": "tenant-addresses",
+ "version": "1.0"
}
],
"optional": [
diff --git a/pom.xml b/pom.xml
index 7de867cad..dd574224e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,7 +65,8 @@
2.27.2
1.20.5
2.9.1
- 1.17.6
+ 2.0.3
+ 1.21.4
2.40.2
3.0.0-SNAPSHOT
1.3
@@ -262,14 +263,14 @@
org.testcontainers
junit-jupiter
- ${testcontainers.version}
+ ${testcontainers.extensions.version}
test
org.testcontainers
postgresql
- ${testcontainers.version}
+ ${testcontainers.extensions.version}
test
diff --git a/src/main/java/org/folio/dew/batch/acquisitions/services/ConfigurationService.java b/src/main/java/org/folio/dew/batch/acquisitions/services/ConfigurationService.java
index 4045a212b..9552b6748 100644
--- a/src/main/java/org/folio/dew/batch/acquisitions/services/ConfigurationService.java
+++ b/src/main/java/org/folio/dew/batch/acquisitions/services/ConfigurationService.java
@@ -3,12 +3,12 @@
import java.util.UUID;
import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.folio.dew.client.SettingsClient;
+import org.folio.dew.client.TenantAddressesClient;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@@ -17,9 +17,11 @@
public class ConfigurationService {
private static final Logger logger = LogManager.getLogger();
+ private static final String ADDRESSES = "addresses";
+ private static final String ID = "id";
+ private static final String ADDRESS = "address";
- private final SettingsClient settingsClient;
- private final ObjectMapper objectMapper;
+ private final TenantAddressesClient tenantAddressesClient;
@Cacheable(cacheNames = "addressConfiguration")
public String getAddressConfig(UUID shipToConfigId) {
@@ -28,18 +30,30 @@ public String getAddressConfig(UUID shipToConfigId) {
return "";
}
try {
- var settingEntry = settingsClient.getSettingById(shipToConfigId.toString());
+ JsonNode addressesResponse = tenantAddressesClient.getTenantAddresses();
- if (settingEntry == null || !settingEntry.containsKey("value")) {
- logger.warn("getAddressConfig:: Address on the config with id '{}' is not found", shipToConfigId);
+ if (addressesResponse == null || !addressesResponse.has(ADDRESSES)) {
+ logger.warn("getAddressConfig:: No addresses found in tenant-addresses response");
return "";
}
- var value = settingEntry.get("value");
- JsonNode valueJsonObject = objectMapper.valueToTree(value);
- return valueJsonObject.has("address") ? valueJsonObject.get("address").asText() : "";
+ JsonNode addressesList = addressesResponse.get(ADDRESSES);
+ if (!addressesList.isArray() || addressesList.isEmpty()) {
+ logger.warn("getAddressConfig:: Addresses list is empty");
+ return "";
+ }
+
+ for (JsonNode addressEntry : addressesList) {
+ String addressId = addressEntry.path(ID).asText(null);
+ if (StringUtils.equals(shipToConfigId.toString(), addressId)) {
+ logger.info("getAddressConfig:: Found address with id '{}'", shipToConfigId);
+ return addressEntry.path(ADDRESS).asText("");
+ }
+ }
+
+ return "";
} catch (Exception e) {
- logger.warn("getAddressConfig:: Cannot find config by id: '{}'", shipToConfigId, e);
+ logger.warn("getAddressConfig:: Cannot find address by id: '{}'", shipToConfigId, e);
return "";
}
}
diff --git a/src/main/java/org/folio/dew/batch/circulationlog/CirculationLogItemProcessor.java b/src/main/java/org/folio/dew/batch/circulationlog/CirculationLogItemProcessor.java
index e69e3d530..21650ae05 100644
--- a/src/main/java/org/folio/dew/batch/circulationlog/CirculationLogItemProcessor.java
+++ b/src/main/java/org/folio/dew/batch/circulationlog/CirculationLogItemProcessor.java
@@ -1,12 +1,11 @@
package org.folio.dew.batch.circulationlog;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.JsonNode;
import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.StringUtils;
+import org.folio.dew.client.LocaleClient;
import org.folio.dew.client.ServicePointClient;
-import org.folio.dew.client.SettingsClient;
import org.folio.dew.domain.dto.CirculationLogExportFormat;
import org.folio.dew.domain.dto.LogRecord;
import org.folio.dew.domain.dto.LogRecordItemsInner;
@@ -19,7 +18,6 @@
import java.text.SimpleDateFormat;
import java.util.Collections;
-import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.stream.Collectors;
@@ -31,8 +29,7 @@
public class CirculationLogItemProcessor implements ItemProcessor {
private final ServicePointClient servicePointClient;
- private final SettingsClient settingsClient;
- private final ObjectMapper objectMapper;
+ private final LocaleClient localeClient;
private Map servicePointMap;
private SimpleDateFormat format;
@@ -75,32 +72,16 @@ private void initTenantSpecificDateFormat() {
format = dateFormat;
}
- @SneakyThrows
- @SuppressWarnings("unchecked")
private String fetchTimezone() {
try {
- final Map tenantLocaleSettings =
- settingsClient.getSettings("scope==stripes-core.prefs.manage and key==tenantLocaleSettings");
-
- var resultInfo = (Map) tenantLocaleSettings.get("resultInfo");
- var totalRecords = (Integer) resultInfo.get("totalRecords");
-
- if (totalRecords > 0) {
- var items = (List