improving workflow fault tolerance
This commit is contained in:
@@ -50,7 +50,7 @@ public class TransactionService {
|
||||
return transactionRepository.findAll(spec, pageable);
|
||||
}
|
||||
|
||||
public Transaction save(Transaction transaction){
|
||||
public Transaction save(Transaction transaction) {
|
||||
return transactionRepository.save(transaction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import zw.qantra.tm.rest.RestService;
|
||||
import zw.qantra.tm.utils.Utils;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
@Service("CONFIRM_ECONET")
|
||||
@RequiredArgsConstructor
|
||||
@@ -80,7 +81,7 @@ public class EconetConfirmationProcessor implements TransactionProcessorInterfac
|
||||
transaction.setErrorMessage((String) body.get("errorMessage"));
|
||||
}
|
||||
|
||||
return transactionService.save(transaction);
|
||||
return transaction;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
package zw.qantra.tm.domain.services.processors.handlers;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import zw.qantra.tm.domain.models.Transaction;
|
||||
import zw.qantra.tm.domain.enums.Status;
|
||||
import zw.qantra.tm.domain.models.Recipient;
|
||||
import zw.qantra.tm.domain.services.RecipientService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RecipientsUpdateHandler implements LogicHandler<Transaction, Transaction> {
|
||||
|
||||
private final RecipientService recipientService;
|
||||
|
||||
@Override
|
||||
public Transaction process(Transaction transaction) {
|
||||
System.out.println("processing recipients");
|
||||
|
||||
if(transaction.getStatus() == Status.SUCCESS){
|
||||
List<Recipient> recipients = recipientService.getRecipient(transaction.getCreditAccount(), transaction.getUserId());
|
||||
|
||||
Recipient recipient = null;
|
||||
if(recipients.size() > 0){
|
||||
recipient = recipients.get(0);
|
||||
}else{
|
||||
recipient = new Recipient();
|
||||
recipient.setAccount(transaction.getCreditAccount());
|
||||
recipient.setUserId(transaction.getUserId());
|
||||
}
|
||||
|
||||
recipient.setLatestProviderLabel(transaction.getProviderLabel());
|
||||
if(transaction.getCreditName() != null && !transaction.getCreditName().isEmpty()){
|
||||
recipient.setName(transaction.getCreditName());
|
||||
}
|
||||
if(transaction.getCreditEmail() != null && !transaction.getCreditEmail().isEmpty()){
|
||||
recipient.setEmail(transaction.getCreditEmail());
|
||||
}
|
||||
if(transaction.getCreditPhone() != null && !transaction.getCreditPhone().isEmpty()){
|
||||
recipient.setPhoneNumber(transaction.getCreditPhone());
|
||||
}
|
||||
|
||||
String stringToInitial = transaction.getCreditName() != null && !transaction.getCreditName().isEmpty()
|
||||
? transaction.getCreditName() : transaction.getBillName();
|
||||
|
||||
recipient.setInitials(stringToInitial.substring(0, 2).toUpperCase());
|
||||
recipientService.save(recipient);
|
||||
|
||||
}
|
||||
|
||||
return transaction;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package zw.qantra.tm.domain.services.processors.handlers;
|
||||
|
||||
import zw.qantra.tm.domain.models.Transaction;
|
||||
|
||||
public class ValidationHandler implements LogicHandler<Transaction, Transaction> {
|
||||
@Override
|
||||
public Transaction process(Transaction transaction) {
|
||||
System.out.println("processing validation");
|
||||
return transaction;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user