mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Update API endpoints.
This commit is contained in:
parent
4fcc659263
commit
190b6fb25f
@ -25,12 +25,14 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
|
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Support\Http\Api\AccountFilter;
|
use FireflyIII\Support\Http\Api\AccountFilter;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use JsonException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AccountController
|
* Class AccountController
|
||||||
@ -62,9 +64,14 @@ class AccountController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getAccountsAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
* @throws FireflyException
|
||||||
|
* @throws JsonException
|
||||||
*/
|
*/
|
||||||
public function accounts(AutocompleteRequest $request): JsonResponse
|
public function accounts(AutocompleteRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
|
@ -56,6 +56,9 @@ class BillController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getBillsAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -56,6 +56,9 @@ class BudgetController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getBudgetsAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -56,6 +56,9 @@ class CategoryController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getCategoriesAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -56,6 +56,9 @@ class CurrencyController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getCurrenciesAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
@ -81,8 +84,11 @@ class CurrencyController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param AutocompleteRequest $request
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getCurrenciesCodeAC
|
||||||
*
|
*
|
||||||
|
* @param AutocompleteRequest $request
|
||||||
|
* @deprecated
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function currenciesWithCode(AutocompleteRequest $request): JsonResponse
|
public function currenciesWithCode(AutocompleteRequest $request): JsonResponse
|
||||||
|
@ -56,6 +56,8 @@ class ObjectGroupController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Documentation for this endpoint is at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getObjectGroupsAC
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -36,7 +36,7 @@ use Illuminate\Http\JsonResponse;
|
|||||||
*/
|
*/
|
||||||
class PiggyBankController extends Controller
|
class PiggyBankController extends Controller
|
||||||
{
|
{
|
||||||
private AccountRepositoryInterface $accountRepository;
|
private AccountRepositoryInterface $accountRepository;
|
||||||
private PiggyBankRepositoryInterface $piggyRepository;
|
private PiggyBankRepositoryInterface $piggyRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,6 +60,9 @@ class PiggyBankController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getPiggiesAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
@ -80,6 +83,7 @@ class PiggyBankController extends Controller
|
|||||||
'currency_id' => $currency->id,
|
'currency_id' => $currency->id,
|
||||||
'currency_name' => $currency->name,
|
'currency_name' => $currency->name,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
|
'currency_symbol' => $currency->symbol,
|
||||||
'currency_decimal_places' => $currency->decimal_places,
|
'currency_decimal_places' => $currency->decimal_places,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -88,6 +92,9 @@ class PiggyBankController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getPiggiesBalanceAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
@ -112,6 +119,7 @@ class PiggyBankController extends Controller
|
|||||||
'currency_id' => $currency->id,
|
'currency_id' => $currency->id,
|
||||||
'currency_name' => $currency->name,
|
'currency_name' => $currency->name,
|
||||||
'currency_code' => $currency->code,
|
'currency_code' => $currency->code,
|
||||||
|
'currency_symbol' => $currency->symbol,
|
||||||
'currency_decimal_places' => $currency->decimal_places,
|
'currency_decimal_places' => $currency->decimal_places,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
|
|||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
|
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
|
||||||
use FireflyIII\Models\Rule;
|
use FireflyIII\Models\Recurrence;
|
||||||
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
|
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@ -53,22 +53,25 @@ class RecurrenceController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getRecurringAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function recurring(AutocompleteRequest $request): JsonResponse
|
public function recurring(AutocompleteRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getData();
|
$data = $request->getData();
|
||||||
$rules = $this->repository->searchRecurrence($data['query'], $data['limit']);
|
$recurrences = $this->repository->searchRecurrence($data['query'], $data['limit']);
|
||||||
$response = [];
|
$response = [];
|
||||||
|
|
||||||
/** @var Rule $rule */
|
/** @var Recurrence $recurrence */
|
||||||
foreach ($rules as $rule) {
|
foreach ($recurrences as $recurrence) {
|
||||||
$response[] = [
|
$response[] = [
|
||||||
'id' => (string)$rule->id,
|
'id' => (string)$recurrence->id,
|
||||||
'name' => $rule->title,
|
'name' => $recurrence->title,
|
||||||
'description' => $rule->description,
|
'description' => $recurrence->description,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,6 +53,9 @@ class RuleController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getRulesAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -53,6 +53,9 @@ class RuleGroupController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getRuleGroupsAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -56,6 +56,9 @@ class TagController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getTagAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -61,6 +61,9 @@ class TransactionController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getTransactionsAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
@ -88,6 +91,9 @@ class TransactionController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getTransactionsIDAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -52,6 +52,9 @@ class TransactionTypeController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at
|
||||||
|
* https://api-docs.firefly-iii.org/#/autocomplete/getTransactionTypesAC
|
||||||
|
*
|
||||||
* @param AutocompleteRequest $request
|
* @param AutocompleteRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -27,6 +27,7 @@ namespace FireflyIII\Api\V1\Controllers\Chart;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
@ -69,9 +70,13 @@ class AccountController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
* https://api-docs.firefly-iii.org/#/charts/getChartAccountOverview
|
||||||
|
*
|
||||||
* @param DateRequest $request
|
* @param DateRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function overview(DateRequest $request): JsonResponse
|
public function overview(DateRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
|
@ -57,6 +57,8 @@ class AccountController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is deprecated and not documented.
|
||||||
|
* @deprecated
|
||||||
* @param MoveTransactionsRequest $request
|
* @param MoveTransactionsRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
@ -61,6 +61,8 @@ class TransactionController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This endpoint is documented at:
|
||||||
|
*
|
||||||
* @param TransactionRequest $request
|
* @param TransactionRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
@ -69,12 +71,13 @@ class TransactionController extends Controller
|
|||||||
{
|
{
|
||||||
$query = $request->getAll();
|
$query = $request->getAll();
|
||||||
$params = $query['query'];
|
$params = $query['query'];
|
||||||
|
|
||||||
// this deserves better code, but for now a loop of basic if-statements
|
// this deserves better code, but for now a loop of basic if-statements
|
||||||
// to respond to what is in the $query.
|
// to respond to what is in the $query.
|
||||||
// this is OK because only one thing can be in the query at the moment.
|
// this is OK because only one thing can be in the query at the moment.
|
||||||
if ($this->updatesTransactionAccount($params)) {
|
if ($this->updatesTransactionAccount($params)) {
|
||||||
$original = $this->repository->find((int)$params['where']['source_account_id']);
|
$original = $this->repository->find((int)$params['where']['account_id']);
|
||||||
$destination = $this->repository->find((int)$params['update']['destination_account_id']);
|
$destination = $this->repository->find((int)$params['update']['account_id']);
|
||||||
|
|
||||||
/** @var AccountDestroyService $service */
|
/** @var AccountDestroyService $service */
|
||||||
$service = app(AccountDestroyService::class);
|
$service = app(AccountDestroyService::class);
|
||||||
@ -91,7 +94,7 @@ class TransactionController extends Controller
|
|||||||
*/
|
*/
|
||||||
private function updatesTransactionAccount(array $params): bool
|
private function updatesTransactionAccount(array $params): bool
|
||||||
{
|
{
|
||||||
return array_key_exists('source_account_id', $params['where']) && array_key_exists('destination_account_id', $params['update']);
|
return array_key_exists('account_id', $params['where']) && array_key_exists('account_id', $params['update']);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ class MoveTransactionsRequest extends FormRequest
|
|||||||
* Configure the validator instance with special rules for after the basic validation rules.
|
* Configure the validator instance with special rules for after the basic validation rules.
|
||||||
*
|
*
|
||||||
* @param Validator $validator
|
* @param Validator $validator
|
||||||
* See reference nr. 74
|
* See reference nr. 74
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
@ -26,6 +26,7 @@ namespace FireflyIII\Validation\Api\Data\Bulk;
|
|||||||
|
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use Illuminate\Validation\Validator;
|
use Illuminate\Validation\Validator;
|
||||||
|
use JsonException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -34,30 +35,32 @@ trait ValidatesBulkTransactionQuery
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param Validator $validator
|
* @param Validator $validator
|
||||||
|
*
|
||||||
|
* @throws JsonException
|
||||||
*/
|
*/
|
||||||
protected function validateTransactionQuery(Validator $validator): void
|
protected function validateTransactionQuery(Validator $validator): void
|
||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
// assumption is all validation has already taken place
|
// assumption is all validation has already taken place
|
||||||
// and the query key exists.
|
// and the query key exists.
|
||||||
$json = json_decode($data['query'], true, 8);
|
$json = json_decode($data['query'], true, 8, JSON_THROW_ON_ERROR);
|
||||||
|
|
||||||
if (array_key_exists('source_account_id', $json['where'])
|
if (array_key_exists('account_id', $json['where'])
|
||||||
&& array_key_exists('destination_account_id', $json['update'])
|
&& array_key_exists('account_id', $json['update'])
|
||||||
) {
|
) {
|
||||||
// find both accounts
|
// find both accounts
|
||||||
// must be same type.
|
// must be same type.
|
||||||
// already validated: belongs to this user.
|
// already validated: belongs to this user.
|
||||||
$repository = app(AccountRepositoryInterface::class);
|
$repository = app(AccountRepositoryInterface::class);
|
||||||
$source = $repository->find((int)$json['where']['source_account_id']);
|
$source = $repository->find((int)$json['where']['account_id']);
|
||||||
$dest = $repository->find((int)$json['update']['destination_account_id']);
|
$dest = $repository->find((int)$json['update']['account_id']);
|
||||||
if (null === $source) {
|
if (null === $source) {
|
||||||
$validator->errors()->add('query', sprintf((string)trans('validation.invalid_query_data'), 'where', 'source_account_id'));
|
$validator->errors()->add('query', sprintf((string)trans('validation.invalid_query_data'), 'where', 'account_id'));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (null === $dest) {
|
if (null === $dest) {
|
||||||
$validator->errors()->add('query', sprintf((string)trans('validation.invalid_query_data'), 'update', 'destination_account_id'));
|
$validator->errors()->add('query', sprintf((string)trans('validation.invalid_query_data'), 'update', 'account_id'));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -110,8 +110,8 @@ export default {
|
|||||||
|
|
||||||
let query =
|
let query =
|
||||||
{
|
{
|
||||||
where: {source_account_id: this.accountId},
|
where: {account_id: this.accountId},
|
||||||
update: {destination_account_id: this.moveToAccount}
|
update: {account_id: this.moveToAccount}
|
||||||
};
|
};
|
||||||
|
|
||||||
axios.post('./api/v1/data/bulk/transactions', {query: JSON.stringify(query)}).then(response => {
|
axios.post('./api/v1/data/bulk/transactions', {query: JSON.stringify(query)}).then(response => {
|
||||||
|
@ -98,14 +98,6 @@ Route::group(
|
|||||||
Route::post('transactions', ['uses' => 'TransactionController@update', 'as' => 'transactions']);
|
Route::post('transactions', ['uses' => 'TransactionController@update', 'as' => 'transactions']);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
//Route::group(
|
|
||||||
// ['namespace' => 'FireflyIII\Api\V1\Controllers\Data\Bulk', 'prefix' => 'data/bulk',
|
|
||||||
// 'as' => 'api.v1.data.bulk.',],
|
|
||||||
// static function () {
|
|
||||||
// Route::post('transactions', ['uses' => 'AccountController@moveTransactions', 'as' => 'accounts.move-transactions']);
|
|
||||||
// }
|
|
||||||
//);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INSIGHTS ROUTES
|
* INSIGHTS ROUTES
|
||||||
|
Loading…
Reference in New Issue
Block a user