From 68755137e44625658f067edb4489150eb415bdc6 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 3 Jul 2022 08:33:01 +0200 Subject: [PATCH] Fix routes --- .../Model/Account/ShowController.php | 4 ++- app/Api/V2/Controllers/NetWorthController.php | 7 ++++- .../V2/Request/Generic/SingleDateRequest.php | 2 +- .../V2/TransactionGroupTransformer.php | 27 +++++++++---------- routes/api.php | 14 +++++----- 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/app/Api/V2/Controllers/Model/Account/ShowController.php b/app/Api/V2/Controllers/Model/Account/ShowController.php index e58a686885..319c52c328 100644 --- a/app/Api/V2/Controllers/Model/Account/ShowController.php +++ b/app/Api/V2/Controllers/Model/Account/ShowController.php @@ -39,6 +39,8 @@ class ShowController extends Controller public function show(Account $account): JsonResponse { $transformer = new AccountTransformer; - return response()->json($this->jsonApiObject('accounts', $account, $transformer)); + return response() + ->api($this->jsonApiObject('accounts', $account, $transformer)) + ->header('Content-Type', self::CONTENT_TYPE); } } diff --git a/app/Api/V2/Controllers/NetWorthController.php b/app/Api/V2/Controllers/NetWorthController.php index e1f25159e4..cdb99f3fa0 100644 --- a/app/Api/V2/Controllers/NetWorthController.php +++ b/app/Api/V2/Controllers/NetWorthController.php @@ -42,6 +42,7 @@ class NetWorthController extends Controller */ public function __construct() { + parent::__construct(); $this->middleware( function ($request, $next) { $this->repository = app(AccountRepositoryInterface::class); @@ -52,13 +53,17 @@ class NetWorthController extends Controller ); } + /** + * @param SingleDateRequest $request + * @return JsonResponse + */ public function get(SingleDateRequest $request): JsonResponse { $date = $request->getDate(); $result = $this->netWorth->sumNetWorthByCurrency($date); $converted = $this->cerSum($result); - return response()->json($converted); + return response()->api($converted); } } diff --git a/app/Api/V2/Request/Generic/SingleDateRequest.php b/app/Api/V2/Request/Generic/SingleDateRequest.php index 76a6ab096c..949fee2b4c 100644 --- a/app/Api/V2/Request/Generic/SingleDateRequest.php +++ b/app/Api/V2/Request/Generic/SingleDateRequest.php @@ -56,7 +56,7 @@ class SingleDateRequest extends FormRequest public function rules(): array { return [ - 'date' => 'required|date', + 'date' => 'required|date|after:1900-01-01|before:2099-12-31', ]; } } diff --git a/app/Transformers/V2/TransactionGroupTransformer.php b/app/Transformers/V2/TransactionGroupTransformer.php index abe2b4b8e0..1c2ae4f2ca 100644 --- a/app/Transformers/V2/TransactionGroupTransformer.php +++ b/app/Transformers/V2/TransactionGroupTransformer.php @@ -22,6 +22,7 @@ namespace FireflyIII\Transformers\V2; use FireflyIII\Models\TransactionType; +use FireflyIII\Support\NullArrayObject; /** * Class TransactionGroupTransformer @@ -35,7 +36,6 @@ class TransactionGroupTransformer extends AbstractTransformer */ public function transform(array $group): array { - //$data = new NullArrayObject($group); $first = reset($group['transactions']); return [ @@ -48,7 +48,7 @@ class TransactionGroupTransformer extends AbstractTransformer 'links' => [ [ 'rel' => 'self', - 'uri' => '/transactions/' . 1, + 'uri' => sprintf('/transactions/%d', $group['id']), ], ], ]; @@ -70,13 +70,12 @@ class TransactionGroupTransformer extends AbstractTransformer private function transformTransaction(array $transaction): array { - $type = $this->stringFromArray($transaction, 'transaction_type_type', TransactionType::WITHDRAWAL); - - // amount: + $transaction = new NullArrayObject($transaction); + $type = $this->stringFromArray($transaction, 'transaction_type_type', TransactionType::WITHDRAWAL); $amount = app('steam')->positive((string) ($row['amount'] ?? '0')); $foreignAmount = null; - if (null !== $row['foreign_amount']) { - $foreignAmount = app('steam')->positive($row['foreign_amount']); + if (null !== $transaction['foreign_amount']) { + $foreignAmount = app('steam')->positive($transaction['foreign_amount']); } return [ @@ -154,23 +153,23 @@ class TransactionGroupTransformer extends AbstractTransformer /** * TODO also in the old transformer. * - * @param array $array - * @param string $key - * @param string|null $default + * @param NullArrayObject $array + * @param string $key + * @param string|null $default * * @return string|null */ - private function stringFromArray(array $array, string $key, ?string $default): ?string + private function stringFromArray(NullArrayObject $array, string $key, ?string $default): ?string { - if (array_key_exists($key, $array) && null === $array[$key]) { + if (null === $array[$key] && null === $default) { return null; } - if (array_key_exists($key, $array) && null !== $array[$key]) { + if (null !== $array[$key]) { return (string) $array[$key]; } if (null !== $default) { - return (string) $default; + return $default; } return null; diff --git a/routes/api.php b/routes/api.php index bc7a566ee5..7e24f1d00c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -26,13 +26,13 @@ declare(strict_types=1); * V2 API route for TransactionSum API endpoints * TODO what to do with these routes */ -Route::group( - ['namespace' => 'FireflyIII\Api\V2\Controllers\Transaction\Sum', 'prefix' => 'v2/transaction/sum', - 'as' => 'api.v2.transaction.sum.',], - static function () { - Route::get('bills/paid', ['uses' => 'BillController@paid', 'as' => 'bills.paid']); - } -); +//Route::group( +// ['namespace' => 'FireflyIII\Api\V2\Controllers\Transaction\Sum', 'prefix' => 'v2/transaction/sum', +// 'as' => 'api.v2.transaction.sum.',], +// static function () { +// Route::get('bills/paid', ['uses' => 'BillController@paid', 'as' => 'bills.paid']); +// } +//); /** * V2 API route for TransactionList API endpoints