/** * Build data for contribution form * * @param string $action * @param SystemAccount $account * @return AccountContribution|OneTimeContribution */ private function buildFormData($action, SystemAccount $account) { $clientAccount = $account->getClientAccount(); $existContribution = $account->getAccountContribution(); switch ($action) { case 'one_time': $data = $this->buildOneTimeContributionData($clientAccount, $existContribution); break; case 'create': $data = $this->buildCreateContributionData($clientAccount, $existContribution); break; default: $data = $this->buildUpdateContributionData($existContribution); break; } return $data; }