From 840fd61b045a8be99473234d529ceed9c08d08b5 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 22 Oct 2023 07:45:48 +0200 Subject: [PATCH] Update API --- .../TransactionCurrency/ShowController.php | 17 +++++++--- .../TransactionCurrency/UpdateController.php | 32 ++++++++++--------- .../TransactionCurrency/UpdateRequest.php | 1 - 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php index 3c5b7c65c0..6f2d001fea 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php @@ -31,6 +31,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\CurrencyTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Pagination\LengthAwarePaginator; use JsonException; @@ -81,13 +82,12 @@ class ShowController extends Controller $pageSize = $this->parameters->get('limit'); $collection = $this->repository->getAll(); $count = $collection->count(); + // slice them: $currencies = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); $paginator = new LengthAwarePaginator($currencies, $count, $pageSize, $this->parameters->get('page')); $paginator->setPath(route('api.v1.currencies.index') . $this->buildParams()); $manager = $this->getManager(); - $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); - $this->parameters->set('defaultCurrency', $defaultCurrency); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); @@ -113,10 +113,15 @@ class ShowController extends Controller */ public function show(TransactionCurrency $currency): JsonResponse { + /** @var User $user */ + $user = auth()->user(); $manager = $this->getManager(); $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); $this->parameters->set('defaultCurrency', $defaultCurrency); + // update fields with user info. + $currency->refreshForUser($user); + /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); $transformer->setParameters($this->parameters); @@ -138,9 +143,13 @@ class ShowController extends Controller */ public function showDefault(): JsonResponse { + /** @var User $user */ + $user = auth()->user(); $manager = $this->getManager(); - $currency = app('amount')->getDefaultCurrencyByUser(auth()->user()); - $this->parameters->set('defaultCurrency', $currency); + $currency = app('amount')->getDefaultCurrencyByUser($user); + + // update fields with user info. + $currency->refreshForUser($user); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php index e0f978c048..4401c8a50a 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php @@ -32,6 +32,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\CurrencyTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use JsonException; use League\Fractal\Resource\Item; @@ -82,11 +83,12 @@ class UpdateController extends Controller if ($this->repository->currencyInUse($currency)) { return response()->json([], 409); } + /** @var User $user */ + $user = auth()->user(); $this->repository->disable($currency); $manager = $this->getManager(); - $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); - $this->parameters->set('defaultCurrency', $defaultCurrency); + $currency->refreshForUser($user); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); @@ -110,14 +112,15 @@ class UpdateController extends Controller */ public function makeDefault(TransactionCurrency $currency): JsonResponse { + /** @var User $user */ + $user = auth()->user(); $this->repository->enable($currency); + $this->repository->makeDefault($currency); - app('preferences')->set('currencyPreference', $currency->code); app('preferences')->mark(); $manager = $this->getManager(); - - $this->parameters->set('defaultCurrency', $currency); + $currency->refreshForUser($user); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); @@ -144,9 +147,10 @@ class UpdateController extends Controller { $this->repository->enable($currency); $manager = $this->getManager(); + /** @var User $user */ + $user = auth()->user(); - $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); - $this->parameters->set('defaultCurrency', $defaultCurrency); + $currency->refreshForUser($user); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); @@ -172,18 +176,16 @@ class UpdateController extends Controller */ public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse { - $data = $request->getAll(); + $data = $request->getAll(); + + /** @var User $user */ + $user = auth()->user(); $currency = $this->repository->update($currency, $data); - if (true === $request->boolean('default')) { - app('preferences')->set('currencyPreference', $currency->code); - app('preferences')->mark(); - } + app('preferences')->mark(); $manager = $this->getManager(); - - $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); - $this->parameters->set('defaultCurrency', $defaultCurrency); + $currency->refreshForUser($user); /** @var CurrencyTransformer $transformer */ $transformer = app(CurrencyTransformer::class); diff --git a/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php b/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php index 5e673d42b4..7c15fb7357 100644 --- a/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php @@ -57,7 +57,6 @@ class UpdateRequest extends FormRequest ]; return $this->getAllData($fields); - // return $return; } /**