package com.code44.finance.api.requests; import com.code44.finance.api.GcmRegistration; import com.code44.finance.backend.endpoint.transactions.Transactions; import com.code44.finance.backend.endpoint.transactions.model.TransactionEntity; import com.code44.finance.backend.endpoint.transactions.model.TransactionsBody; import com.code44.finance.common.utils.Preconditions; import com.code44.finance.data.model.Transaction; import java.util.ArrayList; import java.util.List; public class PostTransactionsRequest extends PostRequest<TransactionsBody> { private final Transactions transactionsService; private final List<Transaction> transactions; public PostTransactionsRequest(GcmRegistration gcmRegistration, Transactions transactionsService, List<Transaction> transactions) { super(null, gcmRegistration); Preconditions.notNull(transactionsService, "Transactions service cannot be null."); Preconditions.notNull(transactions, "Transactions list cannot be null."); this.transactionsService = transactionsService; this.transactions = transactions; } @Override protected TransactionsBody createBody() { return new TransactionsBody(); } @Override protected void onAddPostData(TransactionsBody body) { final List<TransactionEntity> transactionEntities = new ArrayList<>(); for (Transaction transaction : transactions) { // transactionEntities.add(transaction.asEntity()); } body.setTransactions(transactionEntities); } @Override protected boolean isPostDataEmpty(TransactionsBody body) { return body.getTransactions().isEmpty(); } @Override protected void performRequest(TransactionsBody body) throws Exception { transactionsService.save(body); } }