updated AccountInfoUpdateService: changed addTransaction saving-to-mongo logic

This commit is contained in:
dartpopikyardo
2016-09-05 22:28:19 +03:00
parent 19c9f88a7f
commit 68dca23a6b
4 changed files with 11 additions and 7 deletions

View File

@@ -13,6 +13,7 @@ import org.springframework.data.mongodb.core.query.Update;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import static net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.MoneyUtil.toIntegerRepr;
import static org.springframework.data.mongodb.core.query.Criteria.where;
@@ -37,6 +38,7 @@ public class AccountInfoUpdateService {
.set("title", title)
.set("description", description)
.set("balance", toIntegerRepr(initialBalance))
.set("date", new Date())
.set("version", version),
AccountInfo.class);
logger.info("Saved in mongo");
@@ -50,10 +52,10 @@ public class AccountInfoUpdateService {
}
public void addTransaction(String eventId, String accountId, AccountTransactionInfo ti) {
public void addTransaction(String accountId, AccountTransactionInfo ti) {
mongoTemplate.upsert(new Query(where("id").is(accountId)),
new Update().
set("transactions." + eventId, ti),
set("transactions." + ti.getTransactionId(), ti),
AccountInfo.class);
}
@@ -68,6 +70,8 @@ public class AccountInfoUpdateService {
}
public void updateTransactionStatus(String accountId, String transactionId, TransferState status) {
mongoTemplate.upsert(new Query(where("id").is(accountId)),
new Update().
set("transactions." + transactionId +".status", status),

View File

@@ -59,8 +59,8 @@ public class AccountQueryWorkflow {
de.getEvent().getDetails().getDate(),
de.getEvent().getDetails().getDescription());
accountInfoUpdateService.addTransaction(eventId, fromAccountId, ti);
accountInfoUpdateService.addTransaction(eventId, toAccountId, ti);
accountInfoUpdateService.addTransaction(fromAccountId, ti);
accountInfoUpdateService.addTransaction(toAccountId, ti);
}
@EventHandlerMethod

View File

@@ -86,7 +86,7 @@ public class AccountInfoUpdateServiceTest {
AccountTransactionInfo ti = new AccountTransactionInfo(transactionId, accountId, accountId, 5, new Date(), "A transfer");
accountInfoUpdateService.addTransaction(eventId, accountId, ti);
accountInfoUpdateService.addTransaction(accountId, ti);
accountInfo = accountQueryService.findByAccountId(accountId);
assertFalse(accountInfo.getTransactions().isEmpty());
@@ -125,9 +125,10 @@ public class AccountInfoUpdateServiceTest {
String transactionId = x.genId().asString();
AccountTransactionInfo transactionInfo = new AccountTransactionInfo();
transactionInfo.setTransactionId(transactionId);
transactionInfo.setStatus(TransferState.INITIAL);
accountInfoUpdateService.addTransaction(transactionId, accountId, transactionInfo);
accountInfoUpdateService.addTransaction(accountId, transactionInfo);
AccountInfo accountInfo = accountQueryService.findByAccountId(accountId);
assertEquals(accountId, accountInfo.getId());

View File

@@ -1,6 +1,5 @@
package net.chrisrichardson.eventstore.javaexamples.banking.web.queryside.accounts;
import com.fasterxml.jackson.databind.ObjectMapper;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.AccountInfo;
import net.chrisrichardson.eventstore.javaexamples.banking.backend.queryside.accounts.AccountNotFoundException;