package org.javamoney.examples.jaxrs.resources.bank;
import java.time.LocalDateTime;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.money.CurrencyUnit;
import javax.money.MonetaryAmount;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.javamoney.examples.jaxrs.bank.Bank;
import org.javamoney.examples.jaxrs.bank.HistoryBankAccount;
import org.javamoney.examples.jaxrs.currency.Brazil;
import org.javamoney.examples.jaxrs.model.BankAccount;
import org.javamoney.moneta.Money;
@Path("/bank")
@RequestScoped
public class Ebank implements InternetBanking {
@Inject
private Bank bank;
@Inject
@Brazil
private CurrencyUnit unit;
@GET
@Produces(MediaType.APPLICATION_JSON)
public BankAccount example() {
BankAccount account = new BankAccount();
account.setBegin(LocalDateTime.now());
account.setEnd(LocalDateTime.now());
account.setUser("otaviojava");
account.setValue(Money.of(12, unit));
return account;
}
@Override
public MonetaryAmount deposit(BankAccount account) {
return bank.deposit(account);
}
@Override
public MonetaryAmount withDraw(BankAccount account) {
return bank.withDraw(account);
}
@Override
public List<MonetaryAmount> all(BankAccount account) {
return bank.all(account);
}
@Override
public List<HistoryBankAccount> extract(BankAccount account) {
return bank.extract(account);
}
}