Moved destroy() method from CRUD to Account repos.

This commit is contained in:
James Cole
2016-10-09 08:20:29 +02:00
parent 1d2d3523d6
commit a3359ba47a
5 changed files with 34 additions and 25 deletions

View File

@@ -52,23 +52,7 @@ class AccountCrud implements AccountCrudInterface
$this->user = $user; $this->user = $user;
} }
/**
* @param Account $account
* @param Account $moveTo
*
* @return bool
*/
public function destroy(Account $account, Account $moveTo): bool
{
if (!is_null($moveTo->id)) {
DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]);
}
if (!is_null($account)) {
$account->delete();
}
return true;
}
/** /**
* @param $accountId * @param $accountId

View File

@@ -24,13 +24,6 @@ use Illuminate\Support\Collection;
*/ */
interface AccountCrudInterface interface AccountCrudInterface
{ {
/**
* @param Account $account
* @param Account $moveTo
*
* @return bool
*/
public function destroy(Account $account, Account $moveTo): bool;
/** /**
* @param int $accountId * @param int $accountId

View File

@@ -94,19 +94,20 @@ class AccountController extends Controller
} }
/** /**
* @param ARI $repository
* @param AccountCrudInterface $crud * @param AccountCrudInterface $crud
* @param Account $account * @param Account $account
* *
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/ */
public function destroy(AccountCrudInterface $crud, Account $account) public function destroy(ARI $repository, AccountCrudInterface $crud, Account $account)
{ {
$type = $account->accountType->type; $type = $account->accountType->type;
$typeName = config('firefly.shortNamesByFullName.' . $type); $typeName = config('firefly.shortNamesByFullName.' . $type);
$name = $account->name; $name = $account->name;
$moveTo = $crud->find(intval(Input::get('move_account_before_delete'))); $moveTo = $crud->find(intval(Input::get('move_account_before_delete')));
$crud->destroy($account, $moveTo); $repository->destroy($account, $moveTo);
Session::flash('success', strval(trans('firefly.' . $typeName . '_deleted', ['name' => $name]))); Session::flash('success', strval(trans('firefly.' . $typeName . '_deleted', ['name' => $name])));
Preferences::mark(); Preferences::mark();

View File

@@ -64,6 +64,26 @@ class AccountRepository implements AccountRepositoryInterface
return $count; return $count;
} }
/**
* Moved here from account CRUD.
*
* @param Account $account
* @param Account $moveTo
*
* @return bool
*/
public function destroy(Account $account, Account $moveTo): bool
{
if (!is_null($moveTo->id)) {
DB::table('transactions')->where('account_id', $account->id)->update(['account_id' => $moveTo->id]);
}
if (!is_null($account)) {
$account->delete();
}
return true;
}
/** /**
* This method will call AccountRepositoryInterface::journalsInPeriod and get all withdrawaks made from the given $accounts, * This method will call AccountRepositoryInterface::journalsInPeriod and get all withdrawaks made from the given $accounts,
* as well as the transfers that move away from those $accounts. This is a slightly sharper selection * as well as the transfers that move away from those $accounts. This is a slightly sharper selection

View File

@@ -26,6 +26,7 @@ use Illuminate\Support\Collection;
*/ */
interface AccountRepositoryInterface interface AccountRepositoryInterface
{ {
/** /**
* Moved here from account CRUD. * Moved here from account CRUD.
* *
@@ -35,6 +36,16 @@ interface AccountRepositoryInterface
*/ */
public function count(array $types): int; public function count(array $types): int;
/**
* Moved here from account CRUD.
*
* @param Account $account
* @param Account $moveTo
*
* @return bool
*/
public function destroy(Account $account, Account $moveTo): bool;
/** /**
* This method will call AccountRepositoryInterface::journalsInPeriod and get all withdrawaks made from the given $accounts, * This method will call AccountRepositoryInterface::journalsInPeriod and get all withdrawaks made from the given $accounts,
* as well as the transfers that move away from those $accounts. This is a slightly sharper selection * as well as the transfers that move away from those $accounts. This is a slightly sharper selection