Switch things.

This commit is contained in:
James Cole
2021-11-24 20:20:47 +01:00
parent 03a1601bf3
commit afd4700758
7 changed files with 73 additions and 9 deletions

View File

@@ -30,6 +30,7 @@ use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\View\View;
use Log;
@@ -157,9 +158,10 @@ class LinkController extends Controller
*
* @return RedirectResponse|Redirector
*/
public function switchLink(TransactionJournalLink $link)
public function switchLink(Request $request)
{
$this->repository->switchLink($link);
$linkId = (int)$request->get('id');
$this->repository->switchLinkById($linkId);
return redirect(app('steam')->getSafePreviousUrl());
}

View File

@@ -389,4 +389,21 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface
return TransactionJournalLink::whereDestinationId($two->id)->whereSourceId($one->id)->first();
}
/**
* @inheritDoc
*/
public function switchLinkById(int $linkId): bool
{
/** @var TransactionJournalLink $link */
$link = TransactionJournalLink::find($linkId);
if (null !== $link) {
if ($link->source->user->id === $this->user->id) {
$this->switchLink($link);
}
}
return true;
}
}

View File

@@ -154,6 +154,13 @@ interface LinkTypeRepositoryInterface
*/
public function switchLink(TransactionJournalLink $link): bool;
/**
* @param int $linkId
*
* @return bool
*/
public function switchLinkById(int $linkId): bool;
/**
* @param LinkType $linkType
* @param array $data