mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-19 19:01:58 +00:00
Implement currency routes.
This commit is contained in:
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
|
||||||
|
|
||||||
|
|
||||||
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
|
use FireflyIII\Models\TransactionCurrency;
|
||||||
|
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
|
||||||
|
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||||
|
use FireflyIII\User;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class DestroyController
|
||||||
|
*/
|
||||||
|
class DestroyController extends Controller
|
||||||
|
{
|
||||||
|
private CurrencyRepositoryInterface $repository;
|
||||||
|
private UserRepositoryInterface $userRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CurrencyRepository constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->middleware(
|
||||||
|
function ($request, $next) {
|
||||||
|
/** @var User $admin */
|
||||||
|
$admin = auth()->user();
|
||||||
|
|
||||||
|
/** @var CurrencyRepositoryInterface repository */
|
||||||
|
$this->repository = app(CurrencyRepositoryInterface::class);
|
||||||
|
$this->userRepository = app(UserRepositoryInterface::class);
|
||||||
|
$this->repository->setUser($admin);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @throws FireflyException
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function destroy(TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
/** @var User $admin */
|
||||||
|
$admin = auth()->user();
|
||||||
|
|
||||||
|
if (!$this->userRepository->hasRole($admin, 'owner')) {
|
||||||
|
// access denied:
|
||||||
|
throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore
|
||||||
|
}
|
||||||
|
if ($this->repository->currencyInUse($currency)) {
|
||||||
|
throw new FireflyException('200006: Currency in use.'); // @codeCoverageIgnore
|
||||||
|
}
|
||||||
|
if ($this->repository->isFallbackCurrency($currency)) {
|
||||||
|
throw new FireflyException('200026: Currency is fallback.'); // @codeCoverageIgnore
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->repository->destroy($currency);
|
||||||
|
|
||||||
|
return response()->json([], 204);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,31 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* CurrencyController.php
|
|
||||||
* Copyright (c) 2019 james@firefly-iii.org
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III (https://github.com/firefly-iii).
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License as
|
|
||||||
* published by the Free Software Foundation, either version 3 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Affero General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Requests\CurrencyUpdateRequest;
|
|
||||||
use FireflyIII\Api\V1\Requests\CurrencyStoreRequest;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\Bill;
|
use FireflyIII\Models\Bill;
|
||||||
@@ -48,8 +27,6 @@ use FireflyIII\Transformers\AccountTransformer;
|
|||||||
use FireflyIII\Transformers\AvailableBudgetTransformer;
|
use FireflyIII\Transformers\AvailableBudgetTransformer;
|
||||||
use FireflyIII\Transformers\BillTransformer;
|
use FireflyIII\Transformers\BillTransformer;
|
||||||
use FireflyIII\Transformers\BudgetLimitTransformer;
|
use FireflyIII\Transformers\BudgetLimitTransformer;
|
||||||
use FireflyIII\Transformers\CurrencyExchangeRateTransformer;
|
|
||||||
use FireflyIII\Transformers\CurrencyTransformer;
|
|
||||||
use FireflyIII\Transformers\RecurrenceTransformer;
|
use FireflyIII\Transformers\RecurrenceTransformer;
|
||||||
use FireflyIII\Transformers\RuleTransformer;
|
use FireflyIII\Transformers\RuleTransformer;
|
||||||
use FireflyIII\Transformers\TransactionGroupTransformer;
|
use FireflyIII\Transformers\TransactionGroupTransformer;
|
||||||
@@ -59,19 +36,17 @@ use Illuminate\Http\Request;
|
|||||||
use Illuminate\Pagination\LengthAwarePaginator;
|
use Illuminate\Pagination\LengthAwarePaginator;
|
||||||
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
||||||
use League\Fractal\Resource\Collection as FractalCollection;
|
use League\Fractal\Resource\Collection as FractalCollection;
|
||||||
use League\Fractal\Resource\Item;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyController.
|
* Class ListController
|
||||||
*/
|
*/
|
||||||
class CurrencyController extends Controller
|
class ListController extends Controller
|
||||||
{
|
{
|
||||||
use AccountFilter, TransactionFilter;
|
use AccountFilter, TransactionFilter;
|
||||||
|
|
||||||
private CurrencyRepositoryInterface $repository;
|
private CurrencyRepositoryInterface $repository;
|
||||||
private UserRepositoryInterface $userRepository;
|
private UserRepositoryInterface $userRepository;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CurrencyRepository constructor.
|
* CurrencyRepository constructor.
|
||||||
*
|
*
|
||||||
@@ -256,183 +231,6 @@ class CurrencyController extends Controller
|
|||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a list of known exchange rates
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function cer(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
// create some objects:
|
|
||||||
$manager = $this->getManager();
|
|
||||||
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
|
|
||||||
$collection = $this->repository->getExchangeRates($currency);
|
|
||||||
|
|
||||||
|
|
||||||
$count = $collection->count();
|
|
||||||
$exchangeRates = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
|
|
||||||
$paginator = new LengthAwarePaginator($exchangeRates, $count, $pageSize, $this->parameters->get('page'));
|
|
||||||
$paginator->setPath(route('api.v1.currencies.cer', [$currency->code]) . $this->buildParams());
|
|
||||||
|
|
||||||
/** @var CurrencyExchangeRateTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyExchangeRateTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new FractalCollection($exchangeRates, $transformer, 'currency_exchange_rates');
|
|
||||||
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws FireflyException
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function delete(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
/** @var User $admin */
|
|
||||||
$admin = auth()->user();
|
|
||||||
|
|
||||||
if (!$this->userRepository->hasRole($admin, 'owner')) {
|
|
||||||
// access denied:
|
|
||||||
throw new FireflyException('200005: You need the "owner" role to do this.'); // @codeCoverageIgnore
|
|
||||||
}
|
|
||||||
if ($this->repository->currencyInUse($currency)) {
|
|
||||||
throw new FireflyException('200006: Currency in use.'); // @codeCoverageIgnore
|
|
||||||
}
|
|
||||||
if ($this->repository->isFallbackCurrency($currency)) {
|
|
||||||
throw new FireflyException('200026: Currency is fallback.'); // @codeCoverageIgnore
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->repository->destroy($currency);
|
|
||||||
|
|
||||||
return response()->json([], 204);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable a currency.
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function disable(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
// must be unused.
|
|
||||||
if ($this->repository->currencyInUse($currency)) {
|
|
||||||
return response()->json([], 409);
|
|
||||||
}
|
|
||||||
$this->repository->disable($currency);
|
|
||||||
$manager = $this->getManager();
|
|
||||||
|
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable a currency.
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function enable(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
$this->repository->enable($currency);
|
|
||||||
$manager = $this->getManager();
|
|
||||||
|
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function index(): JsonResponse
|
|
||||||
{
|
|
||||||
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
|
|
||||||
$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);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new FractalCollection($currencies, $transformer, 'currencies');
|
|
||||||
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Make the currency a default currency.
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function makeDefault(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
$this->repository->enable($currency);
|
|
||||||
|
|
||||||
app('preferences')->set('currencyPreference', $currency->code);
|
|
||||||
app('preferences')->mark();
|
|
||||||
|
|
||||||
$manager = $this->getManager();
|
|
||||||
|
|
||||||
$this->parameters->set('defaultCurrency', $currency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List all recurring transactions.
|
* List all recurring transactions.
|
||||||
*
|
*
|
||||||
@@ -534,78 +332,6 @@ class CurrencyController extends Controller
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a currency.
|
|
||||||
*
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function show(TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
$manager = $this->getManager();
|
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a currency.
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
public function showDefault(): JsonResponse
|
|
||||||
{
|
|
||||||
$manager = $this->getManager();
|
|
||||||
$currency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $currency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store new currency.
|
|
||||||
*
|
|
||||||
* @param CurrencyStoreRequest $request
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
|
||||||
public function store(CurrencyStoreRequest $request): JsonResponse
|
|
||||||
{
|
|
||||||
$currency = $this->repository->store($request->getAll());
|
|
||||||
if (true === $request->boolean('default')) {
|
|
||||||
app('preferences')->set('currencyPreference', $currency->code);
|
|
||||||
app('preferences')->mark();
|
|
||||||
}
|
|
||||||
$manager = $this->getManager();
|
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show all transactions.
|
* Show all transactions.
|
||||||
*
|
*
|
||||||
@@ -661,37 +387,4 @@ class CurrencyController extends Controller
|
|||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Update a currency.
|
|
||||||
*
|
|
||||||
* @param CurrencyUpdateRequest $request
|
|
||||||
* @param TransactionCurrency $currency
|
|
||||||
*
|
|
||||||
* @return JsonResponse
|
|
||||||
*/
|
|
||||||
public function update(CurrencyUpdateRequest $request, TransactionCurrency $currency): JsonResponse
|
|
||||||
{
|
|
||||||
$data = $request->getAll();
|
|
||||||
$currency = $this->repository->update($currency, $data);
|
|
||||||
|
|
||||||
if (true === $request->boolean('default')) {
|
|
||||||
app('preferences')->set('currencyPreference', $currency->code);
|
|
||||||
app('preferences')->mark();
|
|
||||||
}
|
|
||||||
|
|
||||||
$manager = $this->getManager();
|
|
||||||
|
|
||||||
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
|
||||||
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
|
||||||
|
|
||||||
/** @var CurrencyTransformer $transformer */
|
|
||||||
$transformer = app(CurrencyTransformer::class);
|
|
||||||
$transformer->setParameters($this->parameters);
|
|
||||||
|
|
||||||
$resource = new Item($currency, $transformer, 'currencies');
|
|
||||||
|
|
||||||
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
@@ -0,0 +1,125 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
|
||||||
|
|
||||||
|
|
||||||
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
|
use FireflyIII\Models\TransactionCurrency;
|
||||||
|
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 League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
||||||
|
use League\Fractal\Resource\Collection as FractalCollection;
|
||||||
|
use League\Fractal\Resource\Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class ShowController
|
||||||
|
*/
|
||||||
|
class ShowController extends Controller
|
||||||
|
{
|
||||||
|
use AccountFilter, TransactionFilter;
|
||||||
|
|
||||||
|
private CurrencyRepositoryInterface $repository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CurrencyRepository constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->middleware(
|
||||||
|
function ($request, $next) {
|
||||||
|
/** @var User $admin */
|
||||||
|
$admin = auth()->user();
|
||||||
|
|
||||||
|
/** @var CurrencyRepositoryInterface repository */
|
||||||
|
$this->repository = app(CurrencyRepositoryInterface::class);
|
||||||
|
$this->repository->setUser($admin);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function index(): JsonResponse
|
||||||
|
{
|
||||||
|
$pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
|
||||||
|
$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);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new FractalCollection($currencies, $transformer, 'currencies');
|
||||||
|
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a currency.
|
||||||
|
*
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function show(TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
$manager = $this->getManager();
|
||||||
|
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a currency.
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function showDefault(): JsonResponse
|
||||||
|
{
|
||||||
|
$manager = $this->getManager();
|
||||||
|
$currency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $currency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
|
||||||
|
|
||||||
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
|
use FireflyIII\Api\V1\Requests\Models\TransactionCurrency\StoreRequest;
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
|
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
|
||||||
|
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||||
|
use FireflyIII\Support\Http\Api\AccountFilter;
|
||||||
|
use FireflyIII\Support\Http\Api\TransactionFilter;
|
||||||
|
use FireflyIII\Transformers\CurrencyTransformer;
|
||||||
|
use FireflyIII\User;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use League\Fractal\Resource\Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class StoreController
|
||||||
|
*/
|
||||||
|
class StoreController extends Controller
|
||||||
|
{
|
||||||
|
use AccountFilter, TransactionFilter;
|
||||||
|
|
||||||
|
private CurrencyRepositoryInterface $repository;
|
||||||
|
private UserRepositoryInterface $userRepository;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CurrencyRepository constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->middleware(
|
||||||
|
function ($request, $next) {
|
||||||
|
/** @var User $admin */
|
||||||
|
$admin = auth()->user();
|
||||||
|
|
||||||
|
/** @var CurrencyRepositoryInterface repository */
|
||||||
|
$this->repository = app(CurrencyRepositoryInterface::class);
|
||||||
|
$this->userRepository = app(UserRepositoryInterface::class);
|
||||||
|
$this->repository->setUser($admin);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store new currency.
|
||||||
|
*
|
||||||
|
* @param StoreRequest $request
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @throws FireflyException
|
||||||
|
*/
|
||||||
|
public function store(StoreRequest $request): JsonResponse
|
||||||
|
{
|
||||||
|
$currency = $this->repository->store($request->getAll());
|
||||||
|
if (true === $request->boolean('default')) {
|
||||||
|
app('preferences')->set('currencyPreference', $currency->code);
|
||||||
|
app('preferences')->mark();
|
||||||
|
}
|
||||||
|
$manager = $this->getManager();
|
||||||
|
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,169 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
|
||||||
|
|
||||||
|
|
||||||
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
|
use FireflyIII\Api\V1\Requests\Models\TransactionCurrency\UpdateRequest;
|
||||||
|
use FireflyIII\Models\TransactionCurrency;
|
||||||
|
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
|
||||||
|
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||||
|
use FireflyIII\Support\Http\Api\AccountFilter;
|
||||||
|
use FireflyIII\Support\Http\Api\TransactionFilter;
|
||||||
|
use FireflyIII\Transformers\CurrencyTransformer;
|
||||||
|
use FireflyIII\User;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use League\Fractal\Resource\Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class UpdateController
|
||||||
|
*/
|
||||||
|
class UpdateController extends Controller
|
||||||
|
{
|
||||||
|
use AccountFilter, TransactionFilter;
|
||||||
|
|
||||||
|
private CurrencyRepositoryInterface $repository;
|
||||||
|
private UserRepositoryInterface $userRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CurrencyRepository constructor.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->middleware(
|
||||||
|
function ($request, $next) {
|
||||||
|
/** @var User $admin */
|
||||||
|
$admin = auth()->user();
|
||||||
|
|
||||||
|
/** @var CurrencyRepositoryInterface repository */
|
||||||
|
$this->repository = app(CurrencyRepositoryInterface::class);
|
||||||
|
$this->userRepository = app(UserRepositoryInterface::class);
|
||||||
|
$this->repository->setUser($admin);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable a currency.
|
||||||
|
*
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function disable(TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
// must be unused.
|
||||||
|
if ($this->repository->currencyInUse($currency)) {
|
||||||
|
return response()->json([], 409);
|
||||||
|
}
|
||||||
|
$this->repository->disable($currency);
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable a currency.
|
||||||
|
*
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function enable(TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
$this->repository->enable($currency);
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make the currency a default currency.
|
||||||
|
*
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
public function makeDefault(TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
$this->repository->enable($currency);
|
||||||
|
|
||||||
|
app('preferences')->set('currencyPreference', $currency->code);
|
||||||
|
app('preferences')->mark();
|
||||||
|
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$this->parameters->set('defaultCurrency', $currency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a currency.
|
||||||
|
*
|
||||||
|
* @param UpdateRequest $request
|
||||||
|
* @param TransactionCurrency $currency
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
*/
|
||||||
|
public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse
|
||||||
|
{
|
||||||
|
$data = $request->getAll();
|
||||||
|
$currency = $this->repository->update($currency, $data);
|
||||||
|
|
||||||
|
if (true === $request->boolean('default')) {
|
||||||
|
app('preferences')->set('currencyPreference', $currency->code);
|
||||||
|
app('preferences')->mark();
|
||||||
|
}
|
||||||
|
|
||||||
|
$manager = $this->getManager();
|
||||||
|
|
||||||
|
$defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user());
|
||||||
|
$this->parameters->set('defaultCurrency', $defaultCurrency);
|
||||||
|
|
||||||
|
/** @var CurrencyTransformer $transformer */
|
||||||
|
$transformer = app(CurrencyTransformer::class);
|
||||||
|
$transformer->setParameters($this->parameters);
|
||||||
|
|
||||||
|
$resource = new Item($currency, $transformer, 'currencies');
|
||||||
|
|
||||||
|
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests\Models\TransactionCurrency;
|
||||||
|
|
||||||
use FireflyIII\Rules\IsBoolean;
|
use FireflyIII\Rules\IsBoolean;
|
||||||
use FireflyIII\Support\Request\ChecksLogin;
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
@@ -30,11 +30,11 @@ use Illuminate\Foundation\Http\FormRequest;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyStoreRequest
|
* Class StoreRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class CurrencyStoreRequest extends FormRequest
|
class StoreRequest extends FormRequest
|
||||||
{
|
{
|
||||||
use ConvertsDataTypes, ChecksLogin;
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests\Models\TransactionCurrency;
|
||||||
|
|
||||||
use FireflyIII\Rules\IsBoolean;
|
use FireflyIII\Rules\IsBoolean;
|
||||||
use FireflyIII\Support\Request\ChecksLogin;
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
@@ -30,11 +30,11 @@ use Illuminate\Foundation\Http\FormRequest;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyUpdateRequest
|
* Class UpdateRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class CurrencyUpdateRequest extends FormRequest
|
class UpdateRequest extends FormRequest
|
||||||
{
|
{
|
||||||
use ConvertsDataTypes, ChecksLogin;
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
||||||
@@ -73,9 +73,9 @@ class CurrencyUpdateRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
$currency = $this->route()->parameter('currency_code');
|
$currency = $this->route()->parameter('currency_code');
|
||||||
return [
|
return [
|
||||||
'name' => sprintf('required|between:1,255|unique:transaction_currencies,name,%d', $currency->id),
|
'name' => sprintf('between:1,255|unique:transaction_currencies,name,%d', $currency->id),
|
||||||
'code' => sprintf('required|between:3,3|unique:transaction_currencies,code,%d', $currency->id),
|
'code' => sprintf('between:3,3|unique:transaction_currencies,code,%d', $currency->id),
|
||||||
'symbol' => sprintf('required|between:1,8|unique:transaction_currencies,symbol,%d', $currency->id),
|
'symbol' => sprintf('between:1,8|unique:transaction_currencies,symbol,%d', $currency->id),
|
||||||
'decimal_places' => 'between:0,20|numeric|min:0|max:20',
|
'decimal_places' => 'between:0,20|numeric|min:0|max:20',
|
||||||
'enabled' => [new IsBoolean()],
|
'enabled' => [new IsBoolean()],
|
||||||
'default' => [new IsBoolean()],
|
'default' => [new IsBoolean()],
|
@@ -28,6 +28,7 @@ use Log;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyUpdateService
|
* Class CurrencyUpdateService
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
class CurrencyUpdateService
|
class CurrencyUpdateService
|
||||||
@@ -50,6 +51,9 @@ class CurrencyUpdateService
|
|||||||
*/
|
*/
|
||||||
public function update(TransactionCurrency $currency, array $data): TransactionCurrency
|
public function update(TransactionCurrency $currency, array $data): TransactionCurrency
|
||||||
{
|
{
|
||||||
|
$data['code'] = '' === (string)$data['code'] ? $currency->code : $data['code'];
|
||||||
|
$data['symbol'] = '' === (string)$data['symbol'] ? $currency->code : $data['symbol'];
|
||||||
|
$data['name'] = '' === (string)$data['name'] ? $currency->code : $data['name'];
|
||||||
$currency->code = $data['code'];
|
$currency->code = $data['code'];
|
||||||
$currency->symbol = $data['symbol'];
|
$currency->symbol = $data['symbol'];
|
||||||
$currency->name = $data['name'];
|
$currency->name = $data['name'];
|
||||||
|
@@ -93,7 +93,7 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
$zoomLevel = $location->zoom_level;
|
$zoomLevel = $location->zoom_level;
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
'id' => (int) $account->id,
|
'id' => (string) $account->id,
|
||||||
'created_at' => $account->created_at->toAtomString(),
|
'created_at' => $account->created_at->toAtomString(),
|
||||||
'updated_at' => $account->updated_at->toAtomString(),
|
'updated_at' => $account->updated_at->toAtomString(),
|
||||||
'active' => $account->active,
|
'active' => $account->active,
|
||||||
@@ -183,7 +183,7 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
if (null === $currency) {
|
if (null === $currency) {
|
||||||
$currency = app('amount')->getDefaultCurrencyByUser($account->user);
|
$currency = app('amount')->getDefaultCurrencyByUser($account->user);
|
||||||
}
|
}
|
||||||
$currencyId = (int) $currency->id;
|
$currencyId = (string) $currency->id;
|
||||||
$currencyCode = $currency->code;
|
$currencyCode = $currency->code;
|
||||||
$decimalPlaces = $currency->decimal_places;
|
$decimalPlaces = $currency->decimal_places;
|
||||||
$currencySymbol = $currency->symbol;
|
$currencySymbol = $currency->symbol;
|
||||||
|
@@ -78,7 +78,7 @@ class TransactionGroupTransformer extends AbstractTransformer
|
|||||||
'id' => (int)$first['transaction_group_id'],
|
'id' => (int)$first['transaction_group_id'],
|
||||||
'created_at' => $first['created_at']->toAtomString(),
|
'created_at' => $first['created_at']->toAtomString(),
|
||||||
'updated_at' => $first['updated_at']->toAtomString(),
|
'updated_at' => $first['updated_at']->toAtomString(),
|
||||||
'user' => (int)$data['user_id'],
|
'user' => (string)$data['user_id'],
|
||||||
'group_title' => $data['title'],
|
'group_title' => $data['title'],
|
||||||
'transactions' => $this->transformTransactions($data),
|
'transactions' => $this->transformTransactions($data),
|
||||||
'links' => [
|
'links' => [
|
||||||
|
@@ -403,6 +403,33 @@ Route::group(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Transaction currency API routes:
|
||||||
|
Route::group(
|
||||||
|
['namespace' => 'FireflyIII\Api\V1\Controllers\Models\TransactionCurrency', 'prefix' => 'currencies',
|
||||||
|
'as' => 'api.v1.currencies.',],
|
||||||
|
static function () {
|
||||||
|
|
||||||
|
Route::get('', ['uses' => 'ShowController@index', 'as' => 'index']);
|
||||||
|
Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']);
|
||||||
|
Route::get('default', ['uses' => 'ShowController@showDefault', 'as' => 'show.default']);
|
||||||
|
Route::get('{currency_code}', ['uses' => 'ShowController@show', 'as' => 'show']);
|
||||||
|
Route::put('{currency_code}', ['uses' => 'UpdateController@update', 'as' => 'update']);
|
||||||
|
Route::delete('{currency_code}', ['uses' => 'DestroyController@destroy', 'as' => 'delete']);
|
||||||
|
|
||||||
|
Route::post('{currency_code}/enable', ['uses' => 'UpdateController@enable', 'as' => 'enable']);
|
||||||
|
Route::post('{currency_code}/disable', ['uses' => 'UpdateController@disable', 'as' => 'disable']);
|
||||||
|
Route::post('{currency_code}/default', ['uses' => 'UpdateController@makeDefault', 'as' => 'default']);
|
||||||
|
|
||||||
|
Route::get('{currency_code}/accounts', ['uses' => 'ListController@accounts', 'as' => 'accounts']);
|
||||||
|
Route::get('{currency_code}/available_budgets', ['uses' => 'ListController@availableBudgets', 'as' => 'available_budgets']);
|
||||||
|
Route::get('{currency_code}/bills', ['uses' => 'ListController@bills', 'as' => 'bills']);
|
||||||
|
Route::get('{currency_code}/budget_limits', ['uses' => 'ListController@budgetLimits', 'as' => 'budget_limits']);
|
||||||
|
Route::get('{currency_code}/cer', ['uses' => 'ListController@cer', 'as' => 'cer']);
|
||||||
|
Route::get('{currency_code}/recurrences', ['uses' => 'ListController@recurrences', 'as' => 'recurrences']);
|
||||||
|
Route::get('{currency_code}/rules', ['uses' => 'ListController@rules', 'as' => 'rules']);
|
||||||
|
Route::get('{currency_code}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -619,35 +646,7 @@ Route::group(
|
|||||||
//);
|
//);
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//// TODO VERIFY API DOCS
|
|
||||||
//Route::group(
|
|
||||||
// ['namespace' => 'FireflyIII\Api\V1\Controllers', 'prefix' => 'currencies',
|
|
||||||
// 'as' => 'api.v1.currencies.',],
|
|
||||||
// static function () {
|
|
||||||
//
|
|
||||||
// // Transaction currency API routes:
|
|
||||||
// Route::get('', ['uses' => 'CurrencyController@index', 'as' => 'index']);
|
|
||||||
// Route::post('', ['uses' => 'CurrencyController@store', 'as' => 'store']);
|
|
||||||
// Route::get('default', ['uses' => 'CurrencyController@showDefault', 'as' => 'show.default']);
|
|
||||||
// Route::get('{currency_code}', ['uses' => 'CurrencyController@show', 'as' => 'show']);
|
|
||||||
// Route::put('{currency_code}', ['uses' => 'CurrencyController@update', 'as' => 'update']);
|
|
||||||
// Route::delete('{currency_code}', ['uses' => 'CurrencyController@delete', 'as' => 'delete']);
|
|
||||||
//
|
|
||||||
// Route::post('{currency_code}/enable', ['uses' => 'CurrencyController@enable', 'as' => 'enable']);
|
|
||||||
// Route::post('{currency_code}/disable', ['uses' => 'CurrencyController@disable', 'as' => 'disable']);
|
|
||||||
// Route::post('{currency_code}/default', ['uses' => 'CurrencyController@makeDefault', 'as' => 'default']);
|
|
||||||
//
|
|
||||||
// Route::get('{currency_code}/accounts', ['uses' => 'CurrencyController@accounts', 'as' => 'accounts']);
|
|
||||||
// Route::get('{currency_code}/available_budgets', ['uses' => 'CurrencyController@availableBudgets', 'as' => 'available_budgets']);
|
|
||||||
// Route::get('{currency_code}/bills', ['uses' => 'CurrencyController@bills', 'as' => 'bills']);
|
|
||||||
// Route::get('{currency_code}/budget_limits', ['uses' => 'CurrencyController@budgetLimits', 'as' => 'budget_limits']);
|
|
||||||
// Route::get('{currency_code}/cer', ['uses' => 'CurrencyController@cer', 'as' => 'cer']);
|
|
||||||
// Route::get('{currency_code}/recurrences', ['uses' => 'CurrencyController@recurrences', 'as' => 'recurrences']);
|
|
||||||
// Route::get('{currency_code}/rules', ['uses' => 'CurrencyController@rules', 'as' => 'rules']);
|
|
||||||
// Route::get('{currency_code}/transactions', ['uses' => 'CurrencyController@transactions', 'as' => 'transactions']);
|
|
||||||
// }
|
|
||||||
//);
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
//
|
||||||
//// TODO VERIFY API DOCS
|
//// TODO VERIFY API DOCS
|
||||||
|
Reference in New Issue
Block a user