diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php index c6f89b4044..171dc384ae 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php @@ -5,11 +5,63 @@ namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Models\LinkType; +use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; /** * Class DestroyController */ class DestroyController extends Controller { + use TransactionFilter; + + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; + + /** + * LinkTypeController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $user */ + $user = auth()->user(); + $this->repository = app(LinkTypeRepositoryInterface::class); + $this->userRepository = app(UserRepositoryInterface::class); + $this->repository->setUser($user); + + return $next($request); + } + ); + } + + + /** + * Delete the resource. + * + * @param LinkType $linkType + * + * @return JsonResponse + * @throws FireflyException + * @codeCoverageIgnore + */ + public function destroy(LinkType $linkType): JsonResponse + { + if (false === $linkType->editable) { + throw new FireflyException('200020: Link type cannot be changed.'); + } + $this->repository->destroy($linkType); + + return response()->json([], 204); + } } \ No newline at end of file diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php index 687466ceeb..0a4c077bb3 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php @@ -5,11 +5,107 @@ namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Helpers\Collector\GroupCollectorInterface; +use FireflyIII\Models\LinkType; +use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\TransactionGroupTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; +use League\Fractal\Pagination\IlluminatePaginatorAdapter; +use League\Fractal\Resource\Collection as FractalCollection; /** * Class ListController */ class ListController extends Controller { + use TransactionFilter; + + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; + + /** + * LinkTypeController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $user */ + $user = auth()->user(); + $this->repository = app(LinkTypeRepositoryInterface::class); + $this->userRepository = app(UserRepositoryInterface::class); + $this->repository->setUser($user); + + return $next($request); + } + ); + } + + + + /** + * Delete the resource. + * + * @param Request $request + * @param LinkType $linkType + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function transactions(Request $request, LinkType $linkType): JsonResponse + { + $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + $type = $request->get('type') ?? 'default'; + $this->parameters->set('type', $type); + + $types = $this->mapTransactionTypes($this->parameters->get('type')); + $manager = $this->getManager(); + + // whatever is returned by the query, it must be part of these journals: + $journalIds = $this->repository->getJournalIds($linkType); + + /** @var User $admin */ + $admin = auth()->user(); + + // use new group collector: + /** @var GroupCollectorInterface $collector */ + $collector = app(GroupCollectorInterface::class); + $collector + ->setUser($admin) + // filter on journal IDs. + ->setJournalIds($journalIds) + // all info needed for the API: + ->withAPIInformation() + // set page size: + ->setLimit($pageSize) + // set page to retrieve + ->setPage($this->parameters->get('page')) + // set types of transactions to return. + ->setTypes($types); + + + if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) { + $collector->setRange($this->parameters->get('start'), $this->parameters->get('end')); + } + $paginator = $collector->getPaginatedGroups(); + $paginator->setPath(route('api.v1.transactions.index') . $this->buildParams()); + $transactions = $paginator->getCollection(); + + /** @var TransactionGroupTransformer $transformer */ + $transformer = app(TransactionGroupTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new FractalCollection($transactions, $transformer, 'transactions'); + $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + } } \ No newline at end of file diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php index a0291abb47..9d5b6fb45f 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php @@ -5,11 +5,101 @@ namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Models\LinkType; +use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\LinkTypeTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use Illuminate\Pagination\LengthAwarePaginator; +use League\Fractal\Pagination\IlluminatePaginatorAdapter; +use League\Fractal\Resource\Collection as FractalCollection; +use League\Fractal\Resource\Item; /** * Class ShowController */ class ShowController extends Controller { + use TransactionFilter; + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; + + /** + * LinkTypeController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $user */ + $user = auth()->user(); + $this->repository = app(LinkTypeRepositoryInterface::class); + $this->userRepository = app(UserRepositoryInterface::class); + $this->repository->setUser($user); + + return $next($request); + } + ); + } + + /** + * List all of them. + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function index(): JsonResponse + { + // create some objects: + $manager = $this->getManager(); + $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + + // get list of accounts. Count it and split it. + $collection = $this->repository->get(); + $count = $collection->count(); + $linkTypes = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); + + // make paginator: + $paginator = new LengthAwarePaginator($linkTypes, $count, $pageSize, $this->parameters->get('page')); + $paginator->setPath(route('api.v1.link_types.index') . $this->buildParams()); + + /** @var LinkTypeTransformer $transformer */ + $transformer = app(LinkTypeTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new FractalCollection($linkTypes, $transformer, 'link_types'); + $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + + } + + + + /** + * List single resource. + * + * @param LinkType $linkType + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function show(LinkType $linkType): JsonResponse + { + $manager = $this->getManager(); + /** @var LinkTypeTransformer $transformer */ + $transformer = app(LinkTypeTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($linkType, $transformer, 'link_types'); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + + } } \ No newline at end of file diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php index fccedd32a1..1154d9c451 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php @@ -5,11 +5,76 @@ namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\StoreRequest; +use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\LinkTypeTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; /** * Class StoreController */ class StoreController extends Controller { + use TransactionFilter; + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; + + /** + * LinkTypeController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $user */ + $user = auth()->user(); + $this->repository = app(LinkTypeRepositoryInterface::class); + $this->userRepository = app(UserRepositoryInterface::class); + $this->repository->setUser($user); + + return $next($request); + } + ); + } + + + + /** + * Store new object. + * + * @param StoreRequest $request + * + * @return JsonResponse + * @throws FireflyException + */ + public function store(StoreRequest $request): JsonResponse + { + /** @var User $admin */ + $admin = auth()->user(); + + if (!$this->userRepository->hasRole($admin, 'owner')) { + throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore + } + $data = $request->getAll(); + // if currency ID is 0, find the currency by the code: + $linkType = $this->repository->store($data); + $manager = $this->getManager(); + + /** @var LinkTypeTransformer $transformer */ + $transformer = app(LinkTypeTransformer::class); + $transformer->setParameters($this->parameters); + $resource = new Item($linkType, $transformer, 'link_types'); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + + } } \ No newline at end of file diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php index 5a1610064d..9c06b2a672 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php @@ -5,11 +5,82 @@ namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\UpdateRequest; +use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Models\LinkType; +use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\LinkTypeTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; /** * Class UpdateController */ class UpdateController extends Controller { + use TransactionFilter; + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; + + /** + * LinkTypeController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $user */ + $user = auth()->user(); + $this->repository = app(LinkTypeRepositoryInterface::class); + $this->userRepository = app(UserRepositoryInterface::class); + $this->repository->setUser($user); + + return $next($request); + } + ); + } + + + + /** + * Update object. + * + * @param UpdateRequest $request + * @param LinkType $linkType + * + * @return JsonResponse + * @throws FireflyException + */ + public function update(UpdateRequest $request, LinkType $linkType): JsonResponse + { + if (false === $linkType->editable) { + throw new FireflyException('200020: Link type cannot be changed.'); + } + + /** @var User $admin */ + $admin = auth()->user(); + + if (!$this->userRepository->hasRole($admin, 'owner')) { + throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore + } + + $data = $request->getAll(); + $this->repository->update($linkType, $data); + $manager = $this->getManager(); + /** @var LinkTypeTransformer $transformer */ + $transformer = app(LinkTypeTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($linkType, $transformer, 'link_types'); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + + } } \ No newline at end of file diff --git a/app/Api/V1/Controllers/todo/LinkTypeController.php b/app/Api/V1/Controllers/todo/LinkTypeController.php index 6f4942c6d3..020a55db89 100644 --- a/app/Api/V1/Controllers/todo/LinkTypeController.php +++ b/app/Api/V1/Controllers/todo/LinkTypeController.php @@ -48,12 +48,8 @@ class LinkTypeController extends Controller { use TransactionFilter; - /** @var LinkTypeRepositoryInterface The link type repository */ - private $repository; - - /** @var UserRepositoryInterface The user repository */ - private $userRepository; - + private LinkTypeRepositoryInterface $repository; + private UserRepositoryInterface $userRepository; /** * LinkTypeController constructor. @@ -76,199 +72,6 @@ class LinkTypeController extends Controller ); } - /** - * Delete the resource. - * - * @param LinkType $linkType - * - * @return JsonResponse - * @throws FireflyException - * @codeCoverageIgnore - */ - public function delete(LinkType $linkType): JsonResponse - { - if (false === $linkType->editable) { - throw new FireflyException('200020: Link type cannot be changed.'); - } - $this->repository->destroy($linkType); - - return response()->json([], 204); - } - - /** - * List all of them. - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function index(): JsonResponse - { - // create some objects: - $manager = $this->getManager(); - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; - - // get list of accounts. Count it and split it. - $collection = $this->repository->get(); - $count = $collection->count(); - $linkTypes = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); - - // make paginator: - $paginator = new LengthAwarePaginator($linkTypes, $count, $pageSize, $this->parameters->get('page')); - $paginator->setPath(route('api.v1.link_types.index') . $this->buildParams()); - - /** @var LinkTypeTransformer $transformer */ - $transformer = app(LinkTypeTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($linkTypes, $transformer, 'link_types'); - $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - - } - - /** - * List single resource. - * - * @param LinkType $linkType - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function show(LinkType $linkType): JsonResponse - { - $manager = $this->getManager(); - /** @var LinkTypeTransformer $transformer */ - $transformer = app(LinkTypeTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($linkType, $transformer, 'link_types'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - - } - - /** - * Store new object. - * - * @param LinkTypeStoreRequest $request - * - * @return JsonResponse - * @throws FireflyException - */ - public function store(LinkTypeStoreRequest $request): JsonResponse - { - /** @var User $admin */ - $admin = auth()->user(); - - if (!$this->userRepository->hasRole($admin, 'owner')) { - throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore - } - $data = $request->getAll(); - // if currency ID is 0, find the currency by the code: - $linkType = $this->repository->store($data); - $manager = $this->getManager(); - - /** @var LinkTypeTransformer $transformer */ - $transformer = app(LinkTypeTransformer::class); - $transformer->setParameters($this->parameters); - $resource = new Item($linkType, $transformer, 'link_types'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - - } - - /** - * Delete the resource. - * - * @param Request $request - * @param LinkType $linkType - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function transactions(Request $request, LinkType $linkType): JsonResponse - { - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; - $type = $request->get('type') ?? 'default'; - $this->parameters->set('type', $type); - - $types = $this->mapTransactionTypes($this->parameters->get('type')); - $manager = $this->getManager(); - - // whatever is returned by the query, it must be part of these journals: - $journalIds = $this->repository->getJournalIds($linkType); - - /** @var User $admin */ - $admin = auth()->user(); - - // use new group collector: - /** @var GroupCollectorInterface $collector */ - $collector = app(GroupCollectorInterface::class); - $collector - ->setUser($admin) - // filter on journal IDs. - ->setJournalIds($journalIds) - // all info needed for the API: - ->withAPIInformation() - // set page size: - ->setLimit($pageSize) - // set page to retrieve - ->setPage($this->parameters->get('page')) - // set types of transactions to return. - ->setTypes($types); - if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) { - $collector->setRange($this->parameters->get('start'), $this->parameters->get('end')); - } - $paginator = $collector->getPaginatedGroups(); - $paginator->setPath(route('api.v1.transactions.index') . $this->buildParams()); - $transactions = $paginator->getCollection(); - - /** @var TransactionGroupTransformer $transformer */ - $transformer = app(TransactionGroupTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($transactions, $transformer, 'transactions'); - $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } - - - /** - * Update object. - * - * @param LinkTypeUpdateRequest $request - * @param LinkType $linkType - * - * @return JsonResponse - * @throws FireflyException - */ - public function update(LinkTypeUpdateRequest $request, LinkType $linkType): JsonResponse - { - if (false === $linkType->editable) { - throw new FireflyException('200020: Link type cannot be changed.'); - } - - /** @var User $admin */ - $admin = auth()->user(); - - if (!$this->userRepository->hasRole($admin, 'owner')) { - throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore - } - - $data = $request->getAll(); - $this->repository->update($linkType, $data); - $manager = $this->getManager(); - /** @var LinkTypeTransformer $transformer */ - $transformer = app(LinkTypeTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($linkType, $transformer, 'link_types'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - - } } diff --git a/app/Api/V1/Controllers/todo/TransactionLinkController.php b/app/Api/V1/Controllers/todo/TransactionLinkController.php deleted file mode 100644 index 92b2d50d3c..0000000000 --- a/app/Api/V1/Controllers/todo/TransactionLinkController.php +++ /dev/null @@ -1,48 +0,0 @@ -. - */ - -declare(strict_types=1); - -namespace FireflyIII\Api\V1\Controllers; - -use FireflyIII\Api\V1\Requests\TransactionLinkRequest; -use FireflyIII\Exceptions\FireflyException; -use FireflyIII\Models\TransactionJournalLink; -use FireflyIII\Repositories\Journal\JournalRepositoryInterface; -use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; -use FireflyIII\Support\Http\Api\TransactionFilter; -use FireflyIII\Transformers\TransactionLinkTransformer; -use FireflyIII\User; -use Illuminate\Http\JsonResponse; -use Illuminate\Http\Request; -use Illuminate\Pagination\LengthAwarePaginator; -use League\Fractal\Pagination\IlluminatePaginatorAdapter; -use League\Fractal\Resource\Collection as FractalCollection; -use League\Fractal\Resource\Item; - -/** - * Class TransactionLinkController - */ -class TransactionLinkController extends Controller -{ - - -} diff --git a/app/Api/V1/Requests/todo/LinkTypeStoreRequest.php b/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php similarity index 93% rename from app/Api/V1/Requests/todo/LinkTypeStoreRequest.php rename to app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php index 260b3d8afe..3794b87a83 100644 --- a/app/Api/V1/Requests/todo/LinkTypeStoreRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php @@ -21,7 +21,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\TransactionLinkType; use FireflyIII\Models\LinkType; use FireflyIII\Support\Request\ChecksLogin; @@ -30,11 +30,11 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; /** - * Class LinkTypeStoreRequest + * Class StoreRequest * * @codeCoverageIgnore */ -class LinkTypeStoreRequest extends FormRequest +class StoreRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/LinkTypeUpdateRequest.php b/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php similarity index 94% rename from app/Api/V1/Requests/todo/LinkTypeUpdateRequest.php rename to app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php index 229fc32e84..0efbf2018f 100644 --- a/app/Api/V1/Requests/todo/LinkTypeUpdateRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php @@ -21,7 +21,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\TransactionLinkType; use FireflyIII\Models\LinkType; use FireflyIII\Support\Request\ChecksLogin; @@ -30,11 +30,11 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; /** - * Class LinkTypeUpdateRequest + * Class UpdateRequest * * @codeCoverageIgnore */ -class LinkTypeUpdateRequest extends FormRequest +class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/routes/api.php b/routes/api.php index f7ca44d212..36bf9edcc6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -445,6 +445,20 @@ Route::group( } ); +// Transaction Link Type API routes: +Route::group( + ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\TransactionLinkType', 'prefix' => 'link_types', + 'as' => 'api.v1.link_types.',], + static function () { + + Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']); + Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']); + Route::get('{linkType}', ['uses' => 'ShowController@show', 'as' => 'show']); + Route::put('{linkType}', ['uses' => 'UpdateController@update', 'as' => 'update']); + Route::delete('{linkType}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); + Route::get('{linkType}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']); + } +); @@ -562,21 +576,7 @@ Route::group( // } //); -//// TODO VERIFY API DOCS -//Route::group( -// ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'link_types', -// 'as' => 'api.v1.link_types.',], -// static function () { -// -// // Link Type API routes: -// Route::get('', ['uses' => 'LinkTypeController@index', 'as' => 'index']); -// Route::post('', ['uses' => 'LinkTypeController@store', 'as' => 'store']); -// Route::get('{linkType}', ['uses' => 'LinkTypeController@show', 'as' => 'show']); -// Route::put('{linkType}', ['uses' => 'LinkTypeController@update', 'as' => 'update']); -// Route::delete('{linkType}', ['uses' => 'LinkTypeController@delete', 'as' => 'delete']); -// Route::get('{linkType}/transactions', ['uses' => 'LinkTypeController@transactions', 'as' => 'transactions']); -// } -//); + //