package com.github.bjuvensjo.rsimulator.example.unittest.transfer;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.account.Account;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.account.AccountPort;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.account.GetAccountsRequest;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.account.GetAccountsResponse;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.transfer.Transfer;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.transfer.TransferPort;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.transfer.TransferRequest;
import com.github.bjuvensjo.rsimulator.example.unittest.transfer.transfer.TransferResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* TransferBeanImpl.
*
* @author Magnus Bjuvensjö
*/
@Service
public class TransferBeanImpl implements TransferBean {
@Autowired
private AccountPort accountService;
@Autowired
private TransferPort transferService;
/**
* {@inheritDoc}
*/
public List<Account> getAccounts(String userId) {
GetAccountsRequest getAccountsRequest = new GetAccountsRequest();
getAccountsRequest.setUserId(userId);
GetAccountsResponse getAccountsResponse = accountService.getAccounts(getAccountsRequest);
return getAccountsResponse.getAccount();
}
/**
* {@inheritDoc}
*/
public TransferResponse.Receipt transfer(Account from, Account to, double amount) {
TransferRequest transferRequest = new TransferRequest();
Transfer transfer = new Transfer();
transfer.setFrom(from);
transfer.setTo(to);
transfer.setAmount(amount);
transferRequest.setTransfer(transfer);
TransferResponse transferResponse = transferService.transfer(transferRequest);
return transferResponse.getReceipt();
}
}