@Transactional public void removePendingFund(final String transactionHash) { pendingFundRepository.findByTransactionHash(transactionHash).ifPresent(pendingFundRepository::delete); }
@Transactional(readOnly = true) public List<PendingFund> findAll() { return pendingFundRepository.findAll(); }
@Transactional(readOnly = true) public List<PendingFundDto> findByUser(final Principal principal) { return mappers.mapList(PendingFund.class, PendingFundDto.class, pendingFundRepository.findByUserId(principal.getName())); } }
@Transactional public void save(final Principal principal, final PendingFundCommand command) { final IssueInformation issueInformation = githubLinkParser.parseIssue(command.getPlatformId()); final PendingFund pf = PendingFund.builder() .amount(toWei(command)) .description(command.getDescription()) .fromAddress(command.getFromAddress()) .tokenAddress(command.getTokenAddress()) .transactionhash(command.getTransactionId()) .issueInformation(issueInformation) .userId(principal == null ? null : principal.getName()) .build(); pendingFundRepository.save(pf); }
@Transactional public void removePendingFund(final PendingFund pendingFund) { pendingFundRepository.findOne(pendingFund.getId()).ifPresent(pendingFundRepository::delete); }
verify(pendingFundRepository).save(pendingFundArgumentCaptor.capture()); PendingFund pendingFund = pendingFundArgumentCaptor.getValue(); assertThat(pendingFund.getAmount()).isEqualTo(new BigInteger("1200000000000000000"));
@Test public void saveFunds() { final Request request = RequestMother.freeCodeCampNoUserStories().build(); final FundsAddedCommand command = FundsAddedCommand.builder() .requestId(request.getId()) .amountInWei(BigDecimal.TEN) .blockchainEventId(465L) .transactionHash("trans_hash") .funderAddress("address") .timestamp(LocalDateTime.now()) .token("token") .build(); final FundDto fundDto = FundDtoMother.aFundDto().build(); final RequestDto requestDto = new RequestDto(); final Cache cache = mock(Cache.class); when(requestRepository.findOne(request.getId())).thenReturn(Optional.of(request)); when(mappers.map(eq(Fund.class), eq(FundDto.class), any(Fund.class))).thenReturn(fundDto); when(mappers.map(eq(Request.class), eq(RequestDto.class), any(Request.class))).thenReturn(requestDto); when(cacheManager.getCache("funds")).thenReturn(cache); when(pendingFundRepository.findByTransactionHash(command.getTransactionHash())).thenReturn(Optional.of(PendingFund.builder().userId(funder.getName()).build())); fundService.addFunds(command); verifyFundsSaved(command, funder); verifyEventCreated(request.getId(), fundDto); verify(cache).evict(request.getId()); }
@Override @Transactional public void addFunds(final FundsAddedCommand command) { final Fund.FundBuilder fundBuilder = Fund.builder() .tokenValue(TokenValue.builder() .amountInWei(command.getAmountInWei()) .tokenAddress(command.getToken()) .build()) .requestId(command.getRequestId()) .timestamp(command.getTimestamp()) .funderAddress(command.getFunderAddress()) .blockchainEventId(command.getBlockchainEventId()); final Optional<PendingFund> pendingFund = pendingFundRepository.findByTransactionHash(command.getTransactionHash()); if (pendingFund.isPresent()) { fundBuilder.funderUserId(pendingFund.get().getUserId()); } final Fund fund = fundRepository.saveAndFlush(fundBuilder.build()); cacheManager.getCache("funds").evict(fund.getRequestId()); eventPublisher.publishEvent(RequestFundedEvent.builder() .fundDto(mappers.map(Fund.class, FundDto.class, fund)) .requestId(command.getRequestId()) .timestamp(command.getTimestamp()) .build()); }