This commit is contained in:
James Cole 2025-02-05 06:36:51 +01:00
parent eca12f661f
commit 90bfdc7573
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
8 changed files with 44 additions and 8 deletions

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Http\Api\ExchangeRateConverter;
@ -73,12 +74,15 @@ class AccountObserver
// app('log')->debug('Observe "deleting" of an account.'); // app('log')->debug('Observe "deleting" of an account.');
$account->accountMeta()->delete(); $account->accountMeta()->delete();
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($account->user);
/** @var PiggyBank $piggy */ /** @var PiggyBank $piggy */
foreach ($account->piggyBanks()->get() as $piggy) { foreach ($account->piggyBanks()->get() as $piggy) {
$piggy->accounts()->detach($account); $piggy->accounts()->detach($account);
} }
foreach ($account->attachments()->get() as $attachment) { foreach ($account->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
foreach ($account->transactions()->get() as $transaction) { foreach ($account->transactions()->get() as $transaction) {
$transaction->delete(); $transaction->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Bill; use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -41,9 +42,12 @@ class BillObserver
public function deleting(Bill $bill): void public function deleting(Bill $bill): void
{ {
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($bill->user);
// app('log')->debug('Observe "deleting" of a bill.'); // app('log')->debug('Observe "deleting" of a bill.');
foreach ($bill->attachments()->get() as $attachment) { foreach ($bill->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$bill->notes()->delete(); $bill->notes()->delete();
} }

View File

@ -25,6 +25,7 @@ namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Budget; use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/** /**
* Class BudgetObserver * Class BudgetObserver
@ -34,8 +35,12 @@ class BudgetObserver
public function deleting(Budget $budget): void public function deleting(Budget $budget): void
{ {
app('log')->debug('Observe "deleting" of a budget.'); app('log')->debug('Observe "deleting" of a budget.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($budget->user);
foreach ($budget->attachments()->get() as $attachment) { foreach ($budget->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$budgetLimits = $budget->budgetlimits()->get(); $budgetLimits = $budget->budgetlimits()->get();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Category; use FireflyIII\Models\Category;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/** /**
* Class CategoryObserver * Class CategoryObserver
@ -33,8 +34,12 @@ class CategoryObserver
public function deleting(Category $category): void public function deleting(Category $category): void
{ {
app('log')->debug('Observe "deleting" of a category.'); app('log')->debug('Observe "deleting" of a category.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($category->user);
foreach ($category->attachments()->get() as $attachment) { foreach ($category->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$category->notes()->delete(); $category->notes()->delete();
} }

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -46,8 +47,11 @@ class PiggyBankObserver
{ {
app('log')->debug('Observe "deleting" of a piggy bank.'); 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) { foreach ($piggyBank->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$piggyBank->piggyBankEvents()->delete(); $piggyBank->piggyBankEvents()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Recurrence; use FireflyIII\Models\Recurrence;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/** /**
* Class RecurrenceObserver * Class RecurrenceObserver
@ -33,8 +34,12 @@ class RecurrenceObserver
public function deleting(Recurrence $recurrence): void public function deleting(Recurrence $recurrence): void
{ {
app('log')->debug('Observe "deleting" of a recurrence.'); app('log')->debug('Observe "deleting" of a recurrence.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($recurrence->user);
foreach ($recurrence->attachments()->get() as $attachment) { foreach ($recurrence->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$recurrence->recurrenceRepetitions()->delete(); $recurrence->recurrenceRepetitions()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Tag; use FireflyIII\Models\Tag;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/** /**
* Class TagObserver * Class TagObserver
@ -34,8 +35,11 @@ class TagObserver
{ {
app('log')->debug('Observe "deleting" of a tag.'); app('log')->debug('Observe "deleting" of a tag.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($tag->user);
foreach ($tag->attachments()->get() as $attachment) { foreach ($tag->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$tag->locations()->delete(); $tag->locations()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer; namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/** /**
* Class TransactionJournalObserver * Class TransactionJournalObserver
@ -34,6 +35,10 @@ class TransactionJournalObserver
{ {
app('log')->debug('Observe "deleting" of a transaction journal.'); 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 // to make sure the listener doesn't get back to use and loop
TransactionJournal::withoutEvents(static function () use ($transactionJournal): void { TransactionJournal::withoutEvents(static function () use ($transactionJournal): void {
foreach ($transactionJournal->transactions()->get() as $transaction) { foreach ($transactionJournal->transactions()->get() as $transaction) {
@ -41,7 +46,7 @@ class TransactionJournalObserver
} }
}); });
foreach ($transactionJournal->attachments()->get() as $attachment) { foreach ($transactionJournal->attachments()->get() as $attachment) {
$attachment->delete(); $repository->destroy($attachment);
} }
$transactionJournal->locations()->delete(); $transactionJournal->locations()->delete();
$transactionJournal->sourceJournalLinks()->delete(); $transactionJournal->sourceJournalLinks()->delete();