improved polling logi
This commit is contained in:
@@ -144,19 +144,17 @@ public class ProviderService {
|
||||
return meta.get("hotProductId");
|
||||
}
|
||||
|
||||
public String getExternalId(String providerId, String productUuid) {
|
||||
public String getExternalId(String providerId, String productName) {
|
||||
try {
|
||||
UUID productUid = UUID.fromString(productUuid);
|
||||
|
||||
List<SBZProductDto> products = getProviderProducts(providerId);
|
||||
|
||||
return products.stream()
|
||||
.filter(product -> product.getUid().equals(productUid))
|
||||
.filter(product -> product.getName().equals(productName))
|
||||
.map(SBZProductDto::getExternalId)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
} catch (IllegalArgumentException e) {
|
||||
log.error("Invalid UUID format: " + productUuid, e);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to fetch external Id: " + productName, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import zw.qantra.tm.domain.enums.CurrencyType;
|
||||
import zw.qantra.tm.domain.enums.RequestType;
|
||||
import zw.qantra.tm.domain.enums.Status;
|
||||
import zw.qantra.tm.domain.models.AdditionalData;
|
||||
import zw.qantra.tm.domain.models.Provider;
|
||||
import zw.qantra.tm.domain.models.Transaction;
|
||||
import zw.qantra.tm.domain.services.*;
|
||||
import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface;
|
||||
@@ -170,13 +171,16 @@ public class HotRechargeIntegrationProcessor implements TransactionProcessorInte
|
||||
|
||||
// do this for Econet bundles
|
||||
if(providerId.equals("111")) {
|
||||
String productCode = providerService.getExternalId(providerId, transaction.getProductUid());
|
||||
Provider provider = providerService.getProviderRepository()
|
||||
.findByClientId(transaction.getBillClientId());
|
||||
String productCode = providerService.getExternalId(provider.getId().toString(), transaction.getBillProductName());
|
||||
List<Map<String, String>> rechargeOptions = new ArrayList<>();
|
||||
Map<String, String> option = new LinkedHashMap<>();
|
||||
option.put("Name", "ProductCode");
|
||||
option.put("ParameterType", "String");
|
||||
option.put("Value", productCode);
|
||||
rechargeOptions.add(option);
|
||||
request.put("RechargeOptions", rechargeOptions);
|
||||
}
|
||||
|
||||
logger.info("Sending recharge request: {}", request);
|
||||
|
||||
Reference in New Issue
Block a user