. */ namespace FireflyIII\Api\V1\Controllers\Data; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Models\Bill; use FireflyIII\Models\Budget; use FireflyIII\Models\Category; use FireflyIII\Models\ObjectGroup; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\Recurrence; use FireflyIII\Models\Rule; use FireflyIII\Models\RuleGroup; use FireflyIII\Models\Tag; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; use Illuminate\Http\JsonResponse; class PurgeController extends Controller { /** * @return JsonResponse */ public function purge(): JsonResponse { $user = auth()->user(); // some manual code, too lazy to call all repositories. //,transactions,withdrawals,deposits,transfers'; // budgets: Budget::whereUserId($user->id)->onlyTrashed()->forceDelete(); // bills Bill::whereUserId($user->id)->onlyTrashed()->forceDelete(); // piggies $set = PiggyBank::leftJoin('accounts', 'accounts.id', 'piggy_banks.account_id') ->where('accounts.user_id', $user->id)->onlyTrashed()->get(['piggy_banks.*']); /** @var PiggyBank $piggy */ foreach ($set as $piggy) { $piggy->forceDelete(); } // rule group RuleGroup::whereUserId($user->id)->onlyTrashed()->forceDelete(); // rules Rule::whereUserId($user->id)->onlyTrashed()->forceDelete(); // recurring transactions Recurrence::whereUserId($user->id)->onlyTrashed()->forceDelete(); // categories Category::whereUserId($user->id)->onlyTrashed()->forceDelete(); // tags Tag::whereUserId($user->id)->onlyTrashed()->forceDelete(); // accounts Account::whereUserId($user->id)->onlyTrashed()->forceDelete(); // transaction groups TransactionGroup::whereUserId($user->id)->onlyTrashed()->forceDelete(); // transaction journals TransactionJournal::whereUserId($user->id)->onlyTrashed()->forceDelete(); return response()->json([], 204); } }