package com.code44.finance.api.requests;
import com.code44.finance.api.GcmRegistration;
import com.code44.finance.backend.endpoint.accounts.Accounts;
import com.code44.finance.backend.endpoint.accounts.model.AccountEntity;
import com.code44.finance.backend.endpoint.accounts.model.AccountsBody;
import com.code44.finance.common.utils.Preconditions;
import com.code44.finance.data.model.Account;
import java.util.ArrayList;
import java.util.List;
public class PostAccountsRequest extends PostRequest<AccountsBody> {
private final Accounts accountsService;
private final List<Account> accounts;
public PostAccountsRequest(GcmRegistration gcmRegistration, Accounts accountsService, List<Account> accounts) {
super(null, gcmRegistration);
Preconditions.notNull(accountsService, "Accounts service cannot be null.");
Preconditions.notNull(accounts, "Accounts list cannot be null.");
this.accountsService = accountsService;
this.accounts = accounts;
}
@Override protected AccountsBody createBody() {
return new AccountsBody();
}
@Override protected void onAddPostData(AccountsBody body) {
final List<AccountEntity> accountEntities = new ArrayList<>();
for (Account account : accounts) {
// accountEntities.add(account.asEntity());
}
body.setAccounts(accountEntities);
}
@Override protected boolean isPostDataEmpty(AccountsBody body) {
return body.getAccounts().isEmpty();
}
@Override protected void performRequest(AccountsBody body) throws Exception {
accountsService.save(body);
}
}