diff --git a/app/Handlers/Observer/AccountObserver.php b/app/Handlers/Observer/AccountObserver.php index f2e4c05725..1ec19fbbbd 100644 --- a/app/Handlers/Observer/AccountObserver.php +++ b/app/Handlers/Observer/AccountObserver.php @@ -26,6 +26,7 @@ namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Account; use FireflyIII\Models\PiggyBank; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Http\Api\ExchangeRateConverter; @@ -73,12 +74,15 @@ class AccountObserver // app('log')->debug('Observe "deleting" of an account.'); $account->accountMeta()->delete(); + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($account->user); + /** @var PiggyBank $piggy */ foreach ($account->piggyBanks()->get() as $piggy) { $piggy->accounts()->detach($account); } foreach ($account->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } foreach ($account->transactions()->get() as $transaction) { $transaction->delete(); diff --git a/app/Handlers/Observer/BillObserver.php b/app/Handlers/Observer/BillObserver.php index 792295156b..709d8b25ae 100644 --- a/app/Handlers/Observer/BillObserver.php +++ b/app/Handlers/Observer/BillObserver.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Bill; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Support\Facades\Log; @@ -41,9 +42,12 @@ class BillObserver public function deleting(Bill $bill): void { + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($bill->user); + // app('log')->debug('Observe "deleting" of a bill.'); foreach ($bill->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $bill->notes()->delete(); } diff --git a/app/Handlers/Observer/BudgetObserver.php b/app/Handlers/Observer/BudgetObserver.php index d13abec746..a0f9e7bc69 100644 --- a/app/Handlers/Observer/BudgetObserver.php +++ b/app/Handlers/Observer/BudgetObserver.php @@ -25,6 +25,7 @@ namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; /** * Class BudgetObserver @@ -34,8 +35,12 @@ class BudgetObserver public function deleting(Budget $budget): void { app('log')->debug('Observe "deleting" of a budget.'); + + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($budget->user); + foreach ($budget->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $budgetLimits = $budget->budgetlimits()->get(); diff --git a/app/Handlers/Observer/CategoryObserver.php b/app/Handlers/Observer/CategoryObserver.php index 0cc866761a..76decd000d 100644 --- a/app/Handlers/Observer/CategoryObserver.php +++ b/app/Handlers/Observer/CategoryObserver.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Category; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; /** * Class CategoryObserver @@ -33,8 +34,12 @@ class CategoryObserver public function deleting(Category $category): void { app('log')->debug('Observe "deleting" of a category.'); + + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($category->user); + foreach ($category->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $category->notes()->delete(); } diff --git a/app/Handlers/Observer/PiggyBankObserver.php b/app/Handlers/Observer/PiggyBankObserver.php index e8e55f8f9f..e2a88158b4 100644 --- a/app/Handlers/Observer/PiggyBankObserver.php +++ b/app/Handlers/Observer/PiggyBankObserver.php @@ -25,6 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\PiggyBank; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Support\Facades\Log; @@ -46,8 +47,11 @@ class PiggyBankObserver { app('log')->debug('Observe "deleting" of a piggy bank.'); + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($piggyBank->accounts()->first()->user); + foreach ($piggyBank->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $piggyBank->piggyBankEvents()->delete(); diff --git a/app/Handlers/Observer/RecurrenceObserver.php b/app/Handlers/Observer/RecurrenceObserver.php index c892315f60..cf6a8f6e97 100644 --- a/app/Handlers/Observer/RecurrenceObserver.php +++ b/app/Handlers/Observer/RecurrenceObserver.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Recurrence; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; /** * Class RecurrenceObserver @@ -33,8 +34,12 @@ class RecurrenceObserver public function deleting(Recurrence $recurrence): void { app('log')->debug('Observe "deleting" of a recurrence.'); + + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($recurrence->user); + foreach ($recurrence->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $recurrence->recurrenceRepetitions()->delete(); diff --git a/app/Handlers/Observer/TagObserver.php b/app/Handlers/Observer/TagObserver.php index 1994a30aa1..4892ce2ccb 100644 --- a/app/Handlers/Observer/TagObserver.php +++ b/app/Handlers/Observer/TagObserver.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Tag; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; /** * Class TagObserver @@ -34,8 +35,11 @@ class TagObserver { app('log')->debug('Observe "deleting" of a tag.'); + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($tag->user); + foreach ($tag->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $tag->locations()->delete(); diff --git a/app/Handlers/Observer/TransactionJournalObserver.php b/app/Handlers/Observer/TransactionJournalObserver.php index 3bb106783e..4b6986b468 100644 --- a/app/Handlers/Observer/TransactionJournalObserver.php +++ b/app/Handlers/Observer/TransactionJournalObserver.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\TransactionJournal; +use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; /** * Class TransactionJournalObserver @@ -34,6 +35,10 @@ class TransactionJournalObserver { app('log')->debug('Observe "deleting" of a transaction journal.'); + $repository = app(AttachmentRepositoryInterface::class); + $repository->setUser($transactionJournal->user); + + // to make sure the listener doesn't get back to use and loop TransactionJournal::withoutEvents(static function () use ($transactionJournal): void { foreach ($transactionJournal->transactions()->get() as $transaction) { @@ -41,7 +46,7 @@ class TransactionJournalObserver } }); foreach ($transactionJournal->attachments()->get() as $attachment) { - $attachment->delete(); + $repository->destroy($attachment); } $transactionJournal->locations()->delete(); $transactionJournal->sourceJournalLinks()->delete();