diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php index d7d2288c9a..531d9ed1f8 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php @@ -34,6 +34,7 @@ use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\CurrencyTransformer; use FireflyIII\User; use Illuminate\Http\JsonResponse; +use Illuminate\Support\Facades\Log; use League\Fractal\Resource\Item; /** @@ -164,15 +165,22 @@ class UpdateController extends Controller public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse { $data = $request->getAll(); + Log::debug(__METHOD__, $data); /** @var User $user */ $user = auth()->user(); + // safety catch on currency disablement. $set = $this->repository->get(); if (array_key_exists('enabled', $data) && false === $data['enabled'] && 1 === count($set) && $set->first()->id === $currency->id) { return response()->json([], 409); } + // second safety catch on currency disable. + if (array_key_exists('enabled', $data) && false === $data['enabled'] && $this->repository->currencyInUse($currency)) { + return response()->json([], 409); + } + $currency = $this->repository->update($currency, $data); app('preferences')->mark();