public void withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }
@Transactional public void withdraw(UUID cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); CardWithdrawn event = creditCard.withdraw(amount); applicationEventPublisher.publishEvent(event); } }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
@GetMapping ResponseEntity<List<Withdrawal>> withdrawals(@PathParam("cardId") String cardId) { return ResponseEntity.ok().body(creditCardRepository.getOne(UUID.fromString(cardId)).getWithdrawals()); } }
@Transactional void apply(UUID cardId, Function<CreditCard, DomainEvent> function) { CreditCardRecord record = dao.load(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); DomainEvent event = function.apply(new CreditCard(record)); record.apply(event); publisher.publishEvent(event); dao.save(record); }
@Transactional public void withdraw(UUID cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); creditCard.withdraw(amount); } }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
public void withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }
@Transactional public void withdraw(UUID cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); creditCard.withdraw(amount); jdbcTemplate.update("INSERT INTO WITHDRAWAL(ID, CARD_ID, AMOUNT) VALUES (?,?,?)", UUID.randomUUID(), cardId, amount); } }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
public void withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }
@Transactional public void withdraw(String cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); creditCard.withdraw(amount); }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
public void withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }
@Transactional public void withdraw(UUID cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); creditCard.withdraw(amount); }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
public void withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }
@Transactional public void withdraw(UUID cardId, BigDecimal amount) { CreditCard creditCard = creditCardRepository.findById(cardId) .orElseThrow(() -> new IllegalStateException("Cannot find card with id " + cardId)); creditCard.withdraw(amount); withdrawalRepository.save(new Withdrawal(amount, cardId)); }
private boolean thereIsMoneyToWithdraw(BigDecimal amount) { return availableBalance().compareTo(amount) >= 0; }
public CardWithdrawn withdraw(BigDecimal amount) { if (thereIsMoneyToWithdraw(amount)) { usedLimit = usedLimit.add(amount); return new CardWithdrawn(id, amount); } else { throw new NotEnoughMoneyException(id, amount, availableBalance()); } }