diff --git a/app/Api/V1/Controllers/Models/Bill/DestroyController.php b/app/Api/V1/Controllers/Models/Bill/DestroyController.php new file mode 100644 index 0000000000..6e110e1249 --- /dev/null +++ b/app/Api/V1/Controllers/Models/Bill/DestroyController.php @@ -0,0 +1,76 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Bill; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Models\Bill; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; + +/** + * Class DestroyController + */ +class DestroyController extends Controller +{ + private BillRepositoryInterface $repository; + + /** + * BillController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var BillRepositoryInterface repository */ + $this->repository = app(BillRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + + /** + * Remove the specified resource from storage. + * + * @param Bill $bill + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function destroy(Bill $bill): JsonResponse + { + $this->repository->destroy($bill); + + return response()->json([], 204); + } + +} \ No newline at end of file diff --git a/app/Api/V1/Controllers/todo/BillController.php b/app/Api/V1/Controllers/Models/Bill/ListController.php similarity index 64% rename from app/Api/V1/Controllers/todo/BillController.php rename to app/Api/V1/Controllers/Models/Bill/ListController.php index 9207b0bdf2..d5d91b45d4 100644 --- a/app/Api/V1/Controllers/todo/BillController.php +++ b/app/Api/V1/Controllers/Models/Bill/ListController.php @@ -1,8 +1,7 @@ . */ -declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; -namespace FireflyIII\Api\V1\Controllers; -use FireflyIII\Api\V1\Requests\BillUpdateRequest; -use FireflyIII\Api\V1\Requests\BillStoreRequest; -use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Bill; use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\AttachmentTransformer; -use FireflyIII\Transformers\BillTransformer; use FireflyIII\Transformers\RuleTransformer; use FireflyIII\Transformers\TransactionGroupTransformer; use FireflyIII\User; @@ -41,12 +36,11 @@ 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 BillController. + * Class ListController */ -class BillController extends Controller +class ListController extends Controller { use TransactionFilter; @@ -106,45 +100,7 @@ class BillController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** - * Remove the specified resource from storage. - * - * @param Bill $bill - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function delete(Bill $bill): JsonResponse - { - $this->repository->destroy($bill); - return response()->json([], 204); - } - - /** - * Display a listing of the resource. - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function index(): JsonResponse - { - $bills = $this->repository->getBills(); - $manager = $this->getManager(); - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; - $count = $bills->count(); - $bills = $bills->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); - $paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page')); - - /** @var BillTransformer $transformer */ - $transformer = app(BillTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($bills, $transformer, 'bills'); - $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } /** * List all of them. @@ -182,47 +138,7 @@ class BillController extends Controller } - /** - * Show the specified bill. - * - * @param Bill $bill - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function show(Bill $bill): JsonResponse - { - $manager = $this->getManager(); - /** @var BillTransformer $transformer */ - $transformer = app(BillTransformer::class); - $transformer->setParameters($this->parameters); - $resource = new Item($bill, $transformer, 'bills'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } - - /** - * Store a bill. - * - * @param BillStoreRequest $request - * - * @return JsonResponse - * @throws FireflyException - */ - public function store(BillStoreRequest $request): JsonResponse - { - $bill = $this->repository->store($request->getAll()); - $manager = $this->getManager(); - - /** @var BillTransformer $transformer */ - $transformer = app(BillTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($bill, $transformer, 'bills'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } /** * Show all transactions. @@ -282,27 +198,4 @@ class BillController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** - * Update a bill. - * - * @param BillUpdateRequest $request - * @param Bill $bill - * - * @return JsonResponse - */ - public function update(BillUpdateRequest $request, Bill $bill): JsonResponse - { - $data = $request->getAll(); - $bill = $this->repository->update($bill, $data); - $manager = $this->getManager(); - - /** @var BillTransformer $transformer */ - $transformer = app(BillTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($bill, $transformer, 'bills'); - - 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/Bill/ShowController.php b/app/Api/V1/Controllers/Models/Bill/ShowController.php new file mode 100644 index 0000000000..48a73d7a8c --- /dev/null +++ b/app/Api/V1/Controllers/Models/Bill/ShowController.php @@ -0,0 +1,110 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Bill; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Models\Bill; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\BillTransformer; +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 +{ + private BillRepositoryInterface $repository; + + /** + * BillController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var BillRepositoryInterface repository */ + $this->repository = app(BillRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Display a listing of the resource. + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function index(): JsonResponse + { + $bills = $this->repository->getBills(); + $manager = $this->getManager(); + $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + $count = $bills->count(); + $bills = $bills->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); + $paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page')); + + /** @var BillTransformer $transformer */ + $transformer = app(BillTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new FractalCollection($bills, $transformer, 'bills'); + $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + } + + /** + * Show the specified bill. + * + * @param Bill $bill + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function show(Bill $bill): JsonResponse + { + $manager = $this->getManager(); + /** @var BillTransformer $transformer */ + $transformer = app(BillTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($bill, $transformer, 'bills'); + + 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/Bill/StoreController.php b/app/Api/V1/Controllers/Models/Bill/StoreController.php new file mode 100644 index 0000000000..ef1dbe8106 --- /dev/null +++ b/app/Api/V1/Controllers/Models/Bill/StoreController.php @@ -0,0 +1,88 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Bill; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\Bill\StoreRequest; +use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; +use FireflyIII\Support\Http\Api\TransactionFilter; +use FireflyIII\Transformers\BillTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; + +/** + * Class StoreController + */ +class StoreController extends Controller +{ + use TransactionFilter; + + private BillRepositoryInterface $repository; + + + /** + * BillController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var BillRepositoryInterface repository */ + $this->repository = app(BillRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Store a bill. + * + * @param StoreRequest $request + * + * @return JsonResponse + * @throws FireflyException + */ + public function store(StoreRequest $request): JsonResponse + { + $bill = $this->repository->store($request->getAll()); + $manager = $this->getManager(); + + /** @var BillTransformer $transformer */ + $transformer = app(BillTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($bill, $transformer, 'bills'); + + 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/Bill/UpdateController.php b/app/Api/V1/Controllers/Models/Bill/UpdateController.php new file mode 100644 index 0000000000..6a899b0bb3 --- /dev/null +++ b/app/Api/V1/Controllers/Models/Bill/UpdateController.php @@ -0,0 +1,88 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Bill; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\Bill\UpdateRequest; +use FireflyIII\Models\Bill; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; +use FireflyIII\Transformers\BillTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; + +/** + * Class UpdateController + */ +class UpdateController extends Controller +{ + private BillRepositoryInterface $repository; + + + /** + * BillController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var BillRepositoryInterface repository */ + $this->repository = app(BillRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Update a bill. + * + * @param UpdateRequest $request + * @param Bill $bill + * + * @return JsonResponse + */ + public function update(UpdateRequest $request, Bill $bill): JsonResponse + { + $data = $request->getAll(); + $bill = $this->repository->update($bill, $data); + $manager = $this->getManager(); + + /** @var BillTransformer $transformer */ + $transformer = app(BillTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($bill, $transformer, 'bills'); + + 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/Category/DestroyController.php b/app/Api/V1/Controllers/Models/Category/DestroyController.php new file mode 100644 index 0000000000..b0ad5d5e0a --- /dev/null +++ b/app/Api/V1/Controllers/Models/Category/DestroyController.php @@ -0,0 +1,78 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Category; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Models\Category; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; + +/** + * Class DestroyController + */ +class DestroyController extends Controller +{ + private CategoryRepositoryInterface $repository; + + + /** + * CategoryController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var CategoryRepositoryInterface repository */ + $this->repository = app(CategoryRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Remove the specified resource from storage. + * + * @param Category $category + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function destroy(Category $category): JsonResponse + { + $this->repository->destroy($category); + + return response()->json([], 204); + } + + + +} \ No newline at end of file diff --git a/app/Api/V1/Controllers/todo/CategoryController.php b/app/Api/V1/Controllers/Models/Category/ListController.php similarity index 54% rename from app/Api/V1/Controllers/todo/CategoryController.php rename to app/Api/V1/Controllers/Models/Category/ListController.php index 1fa628cbcf..5f6559b588 100644 --- a/app/Api/V1/Controllers/todo/CategoryController.php +++ b/app/Api/V1/Controllers/Models/Category/ListController.php @@ -1,7 +1,7 @@ . */ -declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; -namespace FireflyIII\Api\V1\Controllers; -use FireflyIII\Api\V1\Requests\CategoryStoreRequest; -use FireflyIII\Api\V1\Requests\CategoryUpdateRequest; -use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\AttachmentTransformer; -use FireflyIII\Transformers\CategoryTransformer; use FireflyIII\Transformers\TransactionGroupTransformer; use FireflyIII\User; use Illuminate\Http\JsonResponse; @@ -39,16 +35,15 @@ 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 CategoryController. + * Class ListController */ -class CategoryController extends Controller +class ListController extends Controller { use TransactionFilter; - private CategoryRepositoryInterface $repository; + private CategoryRepositoryInterface $repository; /** * CategoryController constructor. @@ -72,6 +67,7 @@ class CategoryController extends Controller ); } + /** * @param Category $category * @@ -81,7 +77,7 @@ class CategoryController extends Controller public function attachments(Category $category): JsonResponse { $manager = $this->getManager(); - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $collection = $this->repository->getAttachments($category); $count = $collection->count(); @@ -101,97 +97,6 @@ class CategoryController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** - * Remove the specified resource from storage. - * - * @param Category $category - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function delete(Category $category): JsonResponse - { - $this->repository->destroy($category); - - return response()->json([], 204); - } - - /** - * Display a listing of the resource. - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function index(): JsonResponse - { - $manager = $this->getManager(); - - // types to get, page size: - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; - - // get list of budgets. Count it and split it. - $collection = $this->repository->getCategories(); - $count = $collection->count(); - $categories = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); - - // make paginator: - $paginator = new LengthAwarePaginator($categories, $count, $pageSize, $this->parameters->get('page')); - $paginator->setPath(route('api.v1.categories.index') . $this->buildParams()); - - /** @var CategoryTransformer $transformer */ - $transformer = app(CategoryTransformer::class); - $transformer->setParameters($this->parameters); - - - $resource = new FractalCollection($categories, $transformer, 'categories'); - $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } - - - /** - * Show the category. - * - * @param Category $category - * - * @return JsonResponse - * @codeCoverageIgnore - */ - public function show(Category $category): JsonResponse - { - $manager = $this->getManager(); - - /** @var CategoryTransformer $transformer */ - $transformer = app(CategoryTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($category, $transformer, 'categories'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } - - /** - * Store new category. - * - * @param CategoryStoreRequest $request - * - * @return JsonResponse - * @throws FireflyException - */ - public function store(CategoryStoreRequest $request): JsonResponse - { - $category = $this->repository->store($request->getAll()); - $manager = $this->getManager(); - - /** @var CategoryTransformer $transformer */ - $transformer = app(CategoryTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($category, $transformer, 'categories'); - - return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - } /** * Show all transactions. @@ -205,7 +110,7 @@ class CategoryController extends Controller */ public function transactions(Request $request, Category $category): JsonResponse { - $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $type = $request->get('type') ?? 'default'; $this->parameters->set('type', $type); @@ -249,28 +154,4 @@ class CategoryController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** - * Update the category. - * - * @param CategoryUpdateRequest $request - * @param Category $category - * - * @return JsonResponse - */ - public function update(CategoryUpdateRequest $request, Category $category): JsonResponse - { - $data = $request->getAll(); - $category = $this->repository->update($category, $data); - $manager = $this->getManager(); - - /** @var CategoryTransformer $transformer */ - $transformer = app(CategoryTransformer::class); - $transformer->setParameters($this->parameters); - - $resource = new Item($category, $transformer, 'categories'); - - 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/Category/ShowController.php b/app/Api/V1/Controllers/Models/Category/ShowController.php new file mode 100644 index 0000000000..e7b5e267b6 --- /dev/null +++ b/app/Api/V1/Controllers/Models/Category/ShowController.php @@ -0,0 +1,119 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Category; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Models\Category; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; +use FireflyIII\Transformers\CategoryTransformer; +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 +{ + private CategoryRepositoryInterface $repository; + + /** + * CategoryController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var CategoryRepositoryInterface repository */ + $this->repository = app(CategoryRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + + /** + * Display a listing of the resource. + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function index(): JsonResponse + { + $manager = $this->getManager(); + + // types to get, page size: + $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; + + // get list of budgets. Count it and split it. + $collection = $this->repository->getCategories(); + $count = $collection->count(); + $categories = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); + + // make paginator: + $paginator = new LengthAwarePaginator($categories, $count, $pageSize, $this->parameters->get('page')); + $paginator->setPath(route('api.v1.categories.index') . $this->buildParams()); + + /** @var CategoryTransformer $transformer */ + $transformer = app(CategoryTransformer::class); + $transformer->setParameters($this->parameters); + + + $resource = new FractalCollection($categories, $transformer, 'categories'); + $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); + + return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); + } + + /** + * Show the category. + * + * @param Category $category + * + * @return JsonResponse + * @codeCoverageIgnore + */ + public function show(Category $category): JsonResponse + { + $manager = $this->getManager(); + + /** @var CategoryTransformer $transformer */ + $transformer = app(CategoryTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($category, $transformer, 'categories'); + + 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/Category/StoreController.php b/app/Api/V1/Controllers/Models/Category/StoreController.php new file mode 100644 index 0000000000..3829646f39 --- /dev/null +++ b/app/Api/V1/Controllers/Models/Category/StoreController.php @@ -0,0 +1,86 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Category; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\Category\StoreRequest; +use FireflyIII\Exceptions\FireflyException; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; +use FireflyIII\Transformers\CategoryTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; + +/** + * Class StoreController + */ +class StoreController extends Controller +{ + private CategoryRepositoryInterface $repository; + + + /** + * CategoryController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var CategoryRepositoryInterface repository */ + $this->repository = app(CategoryRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Store new category. + * + * @param StoreRequest $request + * + * @return JsonResponse + * @throws FireflyException + */ + public function store(StoreRequest $request): JsonResponse + { + $category = $this->repository->store($request->getAll()); + $manager = $this->getManager(); + + /** @var CategoryTransformer $transformer */ + $transformer = app(CategoryTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($category, $transformer, 'categories'); + + 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/Category/UpdateController.php b/app/Api/V1/Controllers/Models/Category/UpdateController.php new file mode 100644 index 0000000000..565def622b --- /dev/null +++ b/app/Api/V1/Controllers/Models/Category/UpdateController.php @@ -0,0 +1,86 @@ +. + */ + +namespace FireflyIII\Api\V1\Controllers\Models\Category; + + +use FireflyIII\Api\V1\Controllers\Controller; +use FireflyIII\Api\V1\Requests\Models\Category\UpdateRequest; +use FireflyIII\Models\Category; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; +use FireflyIII\Transformers\CategoryTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; +use League\Fractal\Resource\Item; + +/** + * Class UpdateController + */ +class UpdateController extends Controller +{ + private CategoryRepositoryInterface $repository; + + /** + * CategoryController constructor. + * + * @codeCoverageIgnore + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + + /** @var CategoryRepositoryInterface repository */ + $this->repository = app(CategoryRepositoryInterface::class); + $this->repository->setUser($admin); + + return $next($request); + } + ); + } + + /** + * Update the category. + * + * @param UpdateRequest $request + * @param Category $category + * + * @return JsonResponse + */ + public function update(UpdateRequest $request, Category $category): JsonResponse + { + $data = $request->getAll(); + $category = $this->repository->update($category, $data); + $manager = $this->getManager(); + + /** @var CategoryTransformer $transformer */ + $transformer = app(CategoryTransformer::class); + $transformer->setParameters($this->parameters); + + $resource = new Item($category, $transformer, 'categories'); + + 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/PiggyBank/StoreController.php b/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php index cf2aa30a58..f0517961c4 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php @@ -23,7 +23,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; -use FireflyIII\Api\V1\Requests\PiggyBankStoreRequest; +use FireflyIII\Api\V1\Requests\Models\PiggyBank\StoreRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Transformers\PiggyBankTransformer; @@ -59,12 +59,12 @@ class StoreController extends Controller /** * Store new object. * - * @param PiggyBankStoreRequest $request + * @param StoreRequest $request * * @return JsonResponse * @throws FireflyException */ - public function store(PiggyBankStoreRequest $request): JsonResponse + public function store(StoreRequest $request): JsonResponse { $piggyBank = $this->repository->store($request->getAll()); $manager = $this->getManager(); diff --git a/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php b/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php index 3e8c272467..718fdaa206 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php @@ -23,7 +23,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; -use FireflyIII\Api\V1\Requests\PiggyBankUpdateRequest; +use FireflyIII\Api\V1\Requests\Models\PiggyBank\UpdateRequest; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Transformers\PiggyBankTransformer; @@ -59,17 +59,17 @@ class UpdateController extends Controller /** * Update piggy bank. * - * @param PiggyBankUpdateRequest $request + * @param UpdateRequest $request * @param PiggyBank $piggyBank * * @return JsonResponse */ - public function update(PiggyBankUpdateRequest $request, PiggyBank $piggyBank): JsonResponse + public function update(UpdateRequest $request, PiggyBank $piggyBank): JsonResponse { $data = $request->getAll(); $piggyBank = $this->repository->update($piggyBank, $data); - if ('' !== $data['current_amount']) { + if (array_key_exists('current_amount', $data) && '' !== $data['current_amount']) { $this->repository->setCurrentAmount($piggyBank, $data['current_amount']); } diff --git a/app/Api/V1/Requests/todo/BillStoreRequest.php b/app/Api/V1/Requests/Models/Bill/StoreRequest.php similarity index 96% rename from app/Api/V1/Requests/todo/BillStoreRequest.php rename to app/Api/V1/Requests/Models/Bill/StoreRequest.php index d9705538ab..76571b28ad 100644 --- a/app/Api/V1/Requests/todo/BillStoreRequest.php +++ b/app/Api/V1/Requests/Models/Bill/StoreRequest.php @@ -22,7 +22,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\Bill; use FireflyIII\Rules\IsBoolean; use FireflyIII\Support\Request\ChecksLogin; @@ -31,11 +31,11 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** - * Class BillStoreRequest + * Class StoreRequest * * @codeCoverageIgnore */ -class BillStoreRequest extends FormRequest +class StoreRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/BillUpdateRequest.php b/app/Api/V1/Requests/Models/Bill/UpdateRequest.php similarity index 96% rename from app/Api/V1/Requests/todo/BillUpdateRequest.php rename to app/Api/V1/Requests/Models/Bill/UpdateRequest.php index 7838ee46df..47e00d4934 100644 --- a/app/Api/V1/Requests/todo/BillUpdateRequest.php +++ b/app/Api/V1/Requests/Models/Bill/UpdateRequest.php @@ -22,7 +22,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\Bill; use FireflyIII\Rules\IsBoolean; use FireflyIII\Support\Request\ChecksLogin; @@ -31,11 +31,11 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** - * Class BillUpdateRequest + * Class UpdateRequest * * @codeCoverageIgnore */ -class BillUpdateRequest extends FormRequest +class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/CategoryStoreRequest.php b/app/Api/V1/Requests/Models/Category/StoreRequest.php similarity index 93% rename from app/Api/V1/Requests/todo/CategoryStoreRequest.php rename to app/Api/V1/Requests/Models/Category/StoreRequest.php index 405739c833..ddd5bc3216 100644 --- a/app/Api/V1/Requests/todo/CategoryStoreRequest.php +++ b/app/Api/V1/Requests/Models/Category/StoreRequest.php @@ -21,7 +21,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\Category; use FireflyIII\Rules\ZeroOrMore; use FireflyIII\Support\Request\ChecksLogin; @@ -29,11 +29,11 @@ use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** - * Class CategoryRequest + * Class StoreRequest * * @codeCoverageIgnore */ -class CategoryStoreRequest extends FormRequest +class StoreRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/CategoryUpdateRequest.php b/app/Api/V1/Requests/Models/Category/UpdateRequest.php similarity index 93% rename from app/Api/V1/Requests/todo/CategoryUpdateRequest.php rename to app/Api/V1/Requests/Models/Category/UpdateRequest.php index 29b6e003fe..4137eb2c5f 100644 --- a/app/Api/V1/Requests/todo/CategoryUpdateRequest.php +++ b/app/Api/V1/Requests/Models/Category/UpdateRequest.php @@ -21,18 +21,18 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\Category; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** - * Class CategoryUpdateRequest + * Class UpdateRequest * * @codeCoverageIgnore */ -class CategoryUpdateRequest extends FormRequest +class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/PiggyBankStoreRequest.php b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php similarity index 95% rename from app/Api/V1/Requests/todo/PiggyBankStoreRequest.php rename to app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php index d18bce2705..cb287f9313 100644 --- a/app/Api/V1/Requests/todo/PiggyBankStoreRequest.php +++ b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php @@ -21,18 +21,18 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\PiggyBank; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** - * Class PiggyBankStoreRequest + * Class StoreRequest * * @codeCoverageIgnore */ -class PiggyBankStoreRequest extends FormRequest +class StoreRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Api/V1/Requests/todo/PiggyBankUpdateRequest.php b/app/Api/V1/Requests/Models/PiggyBank/UpdateRequest.php similarity index 96% rename from app/Api/V1/Requests/todo/PiggyBankUpdateRequest.php rename to app/Api/V1/Requests/Models/PiggyBank/UpdateRequest.php index e62203b4c0..dd2cc4f341 100644 --- a/app/Api/V1/Requests/todo/PiggyBankUpdateRequest.php +++ b/app/Api/V1/Requests/Models/PiggyBank/UpdateRequest.php @@ -21,7 +21,7 @@ declare(strict_types=1); -namespace FireflyIII\Api\V1\Requests; +namespace FireflyIII\Api\V1\Requests\Models\PiggyBank; use FireflyIII\Rules\IsAssetAccountId; use FireflyIII\Rules\LessThanPiggyTarget; @@ -30,11 +30,11 @@ use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** - * Class PiggyBankUpdateRequest + * Class UpdateRequest * * @codeCoverageIgnore */ -class PiggyBankUpdateRequest extends FormRequest +class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; diff --git a/app/Transformers/BillTransformer.php b/app/Transformers/BillTransformer.php index 213d0c00db..1f5da82d73 100644 --- a/app/Transformers/BillTransformer.php +++ b/app/Transformers/BillTransformer.php @@ -81,7 +81,7 @@ class BillTransformer extends AbstractTransformer 'id' => (int)$bill->id, 'created_at' => $bill->created_at->toAtomString(), 'updated_at' => $bill->updated_at->toAtomString(), - 'currency_id' => (int) $bill->transaction_currency_id, + 'currency_id' => (string) $bill->transaction_currency_id, 'currency_code' => $currency->code, 'currency_symbol' => $currency->symbol, 'currency_decimal_places' => (int) $currency->decimal_places, @@ -97,7 +97,7 @@ class BillTransformer extends AbstractTransformer 'next_expected_match' => $paidData['next_expected_match'], 'pay_dates' => $payDates, 'paid_dates' => $paidData['paid_dates'], - 'object_group_id' => (string) $objectGroupId, + 'object_group_id' => $objectGroupId ? (string)$objectGroupId : null, 'object_group_order' => $objectGroupOrder, 'object_group_title' => $objectGroupTitle, 'links' => [ diff --git a/app/Transformers/PiggyBankEventTransformer.php b/app/Transformers/PiggyBankEventTransformer.php index 2aac818f20..e34e4ae714 100644 --- a/app/Transformers/PiggyBankEventTransformer.php +++ b/app/Transformers/PiggyBankEventTransformer.php @@ -34,12 +34,9 @@ use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; */ class PiggyBankEventTransformer extends AbstractTransformer { - /** @var CurrencyRepositoryInterface */ - private $currencyRepos; - /** @var PiggyBankRepositoryInterface */ - private $piggyRepos; - /** @var AccountRepositoryInterface */ - private $repository; + private CurrencyRepositoryInterface $currencyRepos; + private PiggyBankRepositoryInterface $piggyRepos; + private AccountRepositoryInterface $repository; /** * PiggyBankEventTransformer constructor. @@ -76,21 +73,22 @@ class PiggyBankEventTransformer extends AbstractTransformer // get associated journal and transaction, if any: $journalId = $event->transaction_journal_id; $groupId = null; - if (0 !== (int) $journalId) { - $groupId = (int) $event->transactionJournal->transaction_group_id; - $journalId = (int) $journalId; + if (0 !== (int)$journalId) { + $groupId = (int)$event->transactionJournal->transaction_group_id; + $journalId = (int)$journalId; } + return [ - 'id' => (int) $event->id, + 'id' => (string)$event->id, 'created_at' => $event->created_at->toAtomString(), 'updated_at' => $event->updated_at->toAtomString(), - 'amount' => number_format((float) $event->amount, $currency->decimal_places, '.', ''), - 'currency_id' => (int) $currency->id, + 'amount' => number_format((float)$event->amount, $currency->decimal_places, '.', ''), + 'currency_id' => (string)$currency->id, 'currency_code' => $currency->code, 'currency_symbol' => $currency->symbol, - 'currency_decimal_places' => (int) $currency->decimal_places, - 'transaction_journal_id' => $journalId, - 'transaction_group_id' => $groupId, + 'currency_decimal_places' => (int)$currency->decimal_places, + 'transaction_journal_id' => $journalId ? (string)$journalId : null, + 'transaction_group_id' => $groupId ? (string)$groupId: null, 'links' => [ [ 'rel' => 'self', diff --git a/app/Transformers/PiggyBankTransformer.php b/app/Transformers/PiggyBankTransformer.php index 46d39a806e..3b78535693 100644 --- a/app/Transformers/PiggyBankTransformer.php +++ b/app/Transformers/PiggyBankTransformer.php @@ -36,12 +36,9 @@ use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; */ class PiggyBankTransformer extends AbstractTransformer { - /** @var AccountRepositoryInterface */ - private $accountRepos; - /** @var CurrencyRepositoryInterface */ - private $currencyRepos; - /** @var PiggyBankRepositoryInterface */ - private $piggyRepos; + private AccountRepositoryInterface $accountRepos; + private CurrencyRepositoryInterface $currencyRepos; + private PiggyBankRepositoryInterface $piggyRepos; /** * PiggyBankTransformer constructor. @@ -105,13 +102,13 @@ class PiggyBankTransformer extends AbstractTransformer $targetAmount = 1 === bccomp('0.01', (string) $targetAmount) ? '0.01' : $targetAmount; $percentage = (int) (0 !== bccomp('0', $currentAmountStr) ? $currentAmountStr / $targetAmount * 100 : 0); return [ - 'id' => (int) $piggyBank->id, + 'id' => (string) $piggyBank->id, 'created_at' => $piggyBank->created_at->toAtomString(), 'updated_at' => $piggyBank->updated_at->toAtomString(), - 'account_id' => (int) $piggyBank->account_id, + 'account_id' => (string) $piggyBank->account_id, 'account_name' => $piggyBank->account->name, 'name' => $piggyBank->name, - 'currency_id' => (int) $currency->id, + 'currency_id' => (string) $currency->id, 'currency_code' => $currency->code, 'currency_symbol' => $currency->symbol, 'currency_decimal_places' => (int) $currency->decimal_places, diff --git a/app/Transformers/RuleTransformer.php b/app/Transformers/RuleTransformer.php index 69654099d6..ce1359ba35 100644 --- a/app/Transformers/RuleTransformer.php +++ b/app/Transformers/RuleTransformer.php @@ -64,7 +64,7 @@ class RuleTransformer extends AbstractTransformer 'id' => (int)$rule->id, 'created_at' => $rule->created_at->toAtomString(), 'updated_at' => $rule->updated_at->toAtomString(), - 'rule_group_id' => (int)$rule->rule_group_id, + 'rule_group_id' => (string)$rule->rule_group_id, 'title' => $rule->title, 'description' => $rule->description, 'order' => (int)$rule->order, @@ -95,7 +95,7 @@ class RuleTransformer extends AbstractTransformer /** @var RuleAction $ruleAction */ foreach ($actions as $ruleAction) { $result[] = [ - 'id' => (int)$ruleAction->id, + 'id' => (string)$ruleAction->id, 'created_at' => $ruleAction->created_at->toAtomString(), 'updated_at' => $ruleAction->updated_at->toAtomString(), 'type' => $ruleAction->action_type, @@ -147,7 +147,7 @@ class RuleTransformer extends AbstractTransformer continue; } $result[] = [ - 'id' => (int)$ruleTrigger->id, + 'id' => (string)$ruleTrigger->id, 'created_at' => $ruleTrigger->created_at->toAtomString(), 'updated_at' => $ruleTrigger->updated_at->toAtomString(), 'type' => $ruleTrigger->trigger_type, diff --git a/routes/api.php b/routes/api.php index dd0a2efc63..cfb1db9087 100644 --- a/routes/api.php +++ b/routes/api.php @@ -197,6 +197,25 @@ Route::group( Route::delete('{attachment}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); } ); + +// Bills API routes: +Route::group( + ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\Bill', 'prefix' => 'bills', + 'as' => 'api.v1.bills.',], + static function () { + + Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']); + Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']); + Route::get('{bill}', ['uses' => 'ShowController@show', 'as' => 'show']); + Route::put('{bill}', ['uses' => 'UpdateController@update', 'as' => 'update']); + Route::delete('{bill}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); + + Route::get('{bill}/attachments', ['uses' => 'ListController@attachments', 'as' => 'attachments']); + Route::get('{bill}/rules', ['uses' => 'ListController@rules', 'as' => 'rules']); + Route::get('{bill}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']); + } +); + // Available Budget API routes: Route::group( ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\AvailableBudget', 'prefix' => 'available_budgets', @@ -211,8 +230,6 @@ Route::group( } ); - - // Budget and Budget Limit API routes: Route::group( ['namespace' => 'FireflyIII\Api\V1\Controllers\Models', 'prefix' => 'budgets', @@ -237,6 +254,42 @@ Route::group( } ); +// Category API routes: +Route::group( + ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\Category', 'prefix' => 'categories', + 'as' => 'api.v1.categories.',], + static function () { + Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']); + Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']); + Route::get('{category}', ['uses' => 'ShowController@show', 'as' => 'show']); + Route::put('{category}', ['uses' => 'UpdateController@update', 'as' => 'update']); + Route::delete('{category}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); + + Route::get('{category}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']); + Route::get('{category}/attachments', ['uses' => 'ListController@attachments', 'as' => 'attachments']); + } +); + +// Piggy Bank API routes: +Route::group( + ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\PiggyBank', 'prefix' => 'piggy_banks', + 'as' => 'api.v1.piggy_banks.',], + static function () { + + Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']); + Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']); + Route::get('{piggyBank}', ['uses' => 'ShowController@show', 'as' => 'show']); + Route::put('{piggyBank}', ['uses' => 'UpdateController@update', 'as' => 'update']); + Route::delete('{piggyBank}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); + + Route::get('{piggyBank}/events', ['uses' => 'ListController@piggyBankEvents', 'as' => 'events']); + Route::get('{piggyBank}/attachments', ['uses' => 'ListController@attachments', 'as' => 'attachments']); + } +); + + + + @@ -304,122 +357,87 @@ Route::group( // DYNAMIC CONFIGURATION (CHANGEABLE) -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration/dynamic', - 'as' => 'api.v1.configuration.dynamic.',], - static function () { - - // Configuration API routes: - Route::get('', ['uses' => 'DynamicConfigController@index', 'as' => 'index']); - Route::get('{dynamicConfigKey}', ['uses' => 'DynamicConfigController@show', 'as' => 'show']); - Route::post('{dynamicConfigKey}', ['uses' => 'DynamicConfigController@update', 'as' => 'update']); - } -); +//// TODO VERIFY API DOCS +//Route::group( +// ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration/dynamic', +// 'as' => 'api.v1.configuration.dynamic.',], +// static function () { +// +// // Configuration API routes: +// Route::get('', ['uses' => 'DynamicConfigController@index', 'as' => 'index']); +// Route::get('{dynamicConfigKey}', ['uses' => 'DynamicConfigController@show', 'as' => 'show']); +// Route::post('{dynamicConfigKey}', ['uses' => 'DynamicConfigController@update', 'as' => 'update']); +// } +//); // STATIC CONFIGURATION (NOT CHANGEABLE) // TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration/static', - 'as' => 'api.v1.configuration.static.',], - static function () { - - // Configuration API routes: - Route::get('', ['uses' => 'StaticConfigController@index', 'as' => 'index']); - Route::get('{staticConfigKey}', ['uses' => 'StaticConfigController@show', 'as' => 'show']); - } -); +//Route::group( +// ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration/static', +// 'as' => 'api.v1.configuration.static.',], +// static function () { +// +// // Configuration API routes: +// Route::get('', ['uses' => 'StaticConfigController@index', 'as' => 'index']); +// Route::get('{staticConfigKey}', ['uses' => 'StaticConfigController@show', 'as' => 'show']); +// } +//); -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'groups', - 'as' => 'api.v1.object-groups.',], - static function () { - - // Accounts API routes: - Route::get('', ['uses' => 'ObjectGroupController@index', 'as' => 'index']); - Route::get('{objectGroup}', ['uses' => 'ObjectGroupController@show', 'as' => 'show']); - Route::put('{objectGroup}', ['uses' => 'ObjectGroupController@update', 'as' => 'update']); - Route::delete('{objectGroup}', ['uses' => 'ObjectGroupController@delete', 'as' => 'delete']); - - Route::get('{objectGroup}/piggy_banks', ['uses' => 'ObjectGroupController@piggyBanks', 'as' => 'piggy_banks']); - } -); +//// TODO VERIFY API DOCS +//Route::group( +// ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'groups', +// 'as' => 'api.v1.object-groups.',], +// static function () { +// +// // Accounts API routes: +// Route::get('', ['uses' => 'ObjectGroupController@index', 'as' => 'index']); +// Route::get('{objectGroup}', ['uses' => 'ObjectGroupController@show', 'as' => 'show']); +// Route::put('{objectGroup}', ['uses' => 'ObjectGroupController@update', 'as' => 'update']); +// Route::delete('{objectGroup}', ['uses' => 'ObjectGroupController@delete', 'as' => 'delete']); +// +// Route::get('{objectGroup}/piggy_banks', ['uses' => 'ObjectGroupController@piggyBanks', 'as' => 'piggy_banks']); +// } +//); -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'bills', - 'as' => 'api.v1.bills.',], - static function () { - - // Bills API routes: - Route::get('', ['uses' => 'BillController@index', 'as' => 'index']); - Route::post('', ['uses' => 'BillController@store', 'as' => 'store']); - Route::get('{bill}', ['uses' => 'BillController@show', 'as' => 'show']); - Route::put('{bill}', ['uses' => 'BillController@update', 'as' => 'update']); - Route::delete('{bill}', ['uses' => 'BillController@delete', 'as' => 'delete']); - - Route::get('{bill}/attachments', ['uses' => 'BillController@attachments', 'as' => 'attachments']); - Route::get('{bill}/rules', ['uses' => 'BillController@rules', 'as' => 'rules']); - Route::get('{bill}/transactions', ['uses' => 'BillController@transactions', 'as' => 'transactions']); - } -); -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'categories', - 'as' => 'api.v1.categories.',], - static function () { +// +// +//// TODO VERIFY API DOCS +//Route::group( +// ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'cer', +// 'as' => 'api.v1.cer.',], +// static function () { +// +// // Currency Exchange Rate API routes: +// Route::get('', ['uses' => 'CurrencyExchangeRateController@index', 'as' => 'index']); +// } +//); - // Category API routes: - Route::get('', ['uses' => 'CategoryController@index', 'as' => 'index']); - Route::post('', ['uses' => 'CategoryController@store', 'as' => 'store']); - Route::get('{category}', ['uses' => 'CategoryController@show', 'as' => 'show']); - Route::put('{category}', ['uses' => 'CategoryController@update', 'as' => 'update']); - Route::delete('{category}', ['uses' => 'CategoryController@delete', 'as' => 'delete']); - - Route::get('{category}/transactions', ['uses' => 'CategoryController@transactions', 'as' => 'transactions']); - Route::get('{category}/attachments', ['uses' => 'CategoryController@attachments', 'as' => 'attachments']); - } -); - - -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'cer', - 'as' => 'api.v1.cer.',], - static function () { - - // Currency Exchange Rate API routes: - Route::get('', ['uses' => 'CurrencyExchangeRateController@index', 'as' => 'index']); - } -); - -// 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']); - } -); +//// 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']); +// } +//); // TODO VERIFY API DOCS Route::group( @@ -436,23 +454,7 @@ Route::group( } ); -// TODO VERIFY API DOCS -Route::group( - ['namespace' => 'FireflyIII\Api\V1\Controllers\Models\PiggyBank', 'prefix' => 'piggy_banks', - 'as' => 'api.v1.piggy_banks.',], - static function () { - // Piggy Bank API routes: - Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']); - Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']); - Route::get('{piggyBank}', ['uses' => 'ShowController@show', 'as' => 'show']); - Route::put('{piggyBank}', ['uses' => 'UpdateController@update', 'as' => 'update']); - Route::delete('{piggyBank}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']); - - Route::get('{piggyBank}/events', ['uses' => 'ListController@piggyBankEvents', 'as' => 'events']); - Route::get('{piggyBank}/attachments', ['uses' => 'ListController@attachments', 'as' => 'attachments']); - } -); // TODO VERIFY API DOCS Route::group(