From 6b79f1abdbdfd48ee535fe01db1e4b7d5b308d11 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 8 Nov 2020 14:27:03 +0100 Subject: [PATCH] Create events for transaction links. --- app/Events/DestroyedTransactionLink.php | 48 +++++++++++++++++++ app/Events/StoredTransactionLink.php | 47 ++++++++++++++++++ app/Events/UpdatedTransactionLink.php | 47 ++++++++++++++++++ .../Transaction/LinkController.php | 6 +-- .../LinkType/LinkTypeRepository.php | 9 ++++ 5 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 app/Events/DestroyedTransactionLink.php create mode 100644 app/Events/StoredTransactionLink.php create mode 100644 app/Events/UpdatedTransactionLink.php diff --git a/app/Events/DestroyedTransactionLink.php b/app/Events/DestroyedTransactionLink.php new file mode 100644 index 0000000000..2e84cdd5dd --- /dev/null +++ b/app/Events/DestroyedTransactionLink.php @@ -0,0 +1,48 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Events; + + +use FireflyIII\Models\TransactionJournalLink; +use Illuminate\Queue\SerializesModels; + +/** + * Class DestroyedTransactionLink + */ +class DestroyedTransactionLink extends Event +{ + use SerializesModels; + + private TransactionJournalLink $link; + + /** + * DestroyedTransactionLink constructor. + * + * @param TransactionJournalLink $link + */ + public function __construct(TransactionJournalLink $link) + { + $this->link = $link; + } +} \ No newline at end of file diff --git a/app/Events/StoredTransactionLink.php b/app/Events/StoredTransactionLink.php new file mode 100644 index 0000000000..46fd004b4d --- /dev/null +++ b/app/Events/StoredTransactionLink.php @@ -0,0 +1,47 @@ +. + */ + +declare(strict_types=1); +namespace FireflyIII\Events; + + +use FireflyIII\Models\TransactionJournalLink; +use Illuminate\Queue\SerializesModels; + +/** + * Class StoredTransactionLink + */ +class StoredTransactionLink extends Event +{ + use SerializesModels; + + private TransactionJournalLink $link; + + /** + * DestroyedTransactionLink constructor. + * + * @param TransactionJournalLink $link + */ + public function __construct(TransactionJournalLink $link) + { + $this->link = $link; + } +} \ No newline at end of file diff --git a/app/Events/UpdatedTransactionLink.php b/app/Events/UpdatedTransactionLink.php new file mode 100644 index 0000000000..7627560f4d --- /dev/null +++ b/app/Events/UpdatedTransactionLink.php @@ -0,0 +1,47 @@ +. + */ + +declare(strict_types=1); +namespace FireflyIII\Events; + + +use FireflyIII\Models\TransactionJournalLink; +use Illuminate\Queue\SerializesModels; + +/** + * Class UpdatedTransactionLink + */ +class UpdatedTransactionLink extends Event +{ + use SerializesModels; + + private TransactionJournalLink $link; + + /** + * DestroyedTransactionLink constructor. + * + * @param TransactionJournalLink $link + */ + public function __construct(TransactionJournalLink $link) + { + $this->link = $link; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Transaction/LinkController.php b/app/Http/Controllers/Transaction/LinkController.php index 2b019710b8..24895c1815 100644 --- a/app/Http/Controllers/Transaction/LinkController.php +++ b/app/Http/Controllers/Transaction/LinkController.php @@ -40,10 +40,8 @@ use URL; */ class LinkController extends Controller { - /** @var JournalRepositoryInterface Journals and transactions overview */ - private $journalRepository; - /** @var LinkTypeRepositoryInterface Link repository. */ - private $repository; + private JournalRepositoryInterface $journalRepository; + private LinkTypeRepositoryInterface $repository; /** * LinkController constructor. diff --git a/app/Repositories/LinkType/LinkTypeRepository.php b/app/Repositories/LinkType/LinkTypeRepository.php index cbb404f007..99be363dce 100644 --- a/app/Repositories/LinkType/LinkTypeRepository.php +++ b/app/Repositories/LinkType/LinkTypeRepository.php @@ -23,6 +23,10 @@ declare(strict_types=1); namespace FireflyIII\Repositories\LinkType; use Exception; +use FireflyIII\Events\DestroyedTransactionLink; +use FireflyIII\Events\RemovedTransactionLink; +use FireflyIII\Events\StoredTransactionLink; +use FireflyIII\Events\UpdatedTransactionLink; use FireflyIII\Models\LinkType; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournal; @@ -75,6 +79,7 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface */ public function destroyLink(TransactionJournalLink $link): bool { + event(new DestroyedTransactionLink($link)); $link->delete(); return true; @@ -277,6 +282,8 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface // make note in noteable: $this->setNoteText($link, (string)$information['notes']); + event(new StoredTransactionLink($link)); + return $link; } @@ -327,6 +334,8 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface $journalLink->save(); $this->setNoteText($journalLink, $data['notes']); + event(new UpdatedTransactionLink($journalLink)); + return $journalLink; }