Issue 2695

Introduces localisation for API errors
This commit is contained in:
Dominic Guhl 2019-10-26 15:07:54 +02:00
parent 18310641aa
commit b4d565400e
32 changed files with 511 additions and 24 deletions

View File

@ -98,15 +98,15 @@ class AttachmentController extends Controller
public function download(Attachment $attachment): LaravelResponse public function download(Attachment $attachment): LaravelResponse
{ {
if (false === $attachment->uploaded) { if (false === $attachment->uploaded) {
throw new FireflyException('No file has been uploaded for this attachment (yet).'); throw new FireflyException(trans('api.error_no_upload'));
} }
if (0 === $attachment->size) { if (0 === $attachment->size) {
throw new FireflyException('No file has been uploaded for this attachment (yet).'); throw new FireflyException(trans('api.error_no_upload'));
} }
if ($this->repository->exists($attachment)) { if ($this->repository->exists($attachment)) {
$content = $this->repository->getContent($attachment); $content = $this->repository->getContent($attachment);
if ('' === $content) { if ('' === $content) {
throw new FireflyException('No file has been uploaded for this attachment (yet).'); throw new FireflyException(trans('api.error_no_upload'));
} }
$quoted = sprintf('"%s"', addcslashes(basename($attachment->filename), '"\\')); $quoted = sprintf('"%s"', addcslashes(basename($attachment->filename), '"\\'));
@ -125,7 +125,7 @@ class AttachmentController extends Controller
return $response; return $response;
} }
throw new FireflyException('Could not find the indicated attachment. The file is no longer there.'); throw new FireflyException(trans('api.error_file_lost'));
} }
/** /**

View File

@ -223,7 +223,7 @@ class BillController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
throw new FireflyException('Could not store new bill.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_store_bill')); // @codeCoverageIgnore
} }

View File

@ -199,7 +199,7 @@ class BudgetController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
throw new FireflyException('Could not store new budget.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_store_budget')); // @codeCoverageIgnore
} }
/** /**

View File

@ -165,7 +165,7 @@ class BudgetLimitController extends Controller
$data = $request->getAll(); $data = $request->getAll();
$budget = $this->repository->findNull($data['budget_id']); $budget = $this->repository->findNull($data['budget_id']);
if (null === $budget) { if (null === $budget) {
throw new FireflyException('Unknown budget.'); throw new FireflyException(trans('error_unknown_budget'));
} }
$data['budget'] = $budget; $data['budget'] = $budget;
$budgetLimit = $this->blRepository->storeBudgetLimit($data); $budgetLimit = $this->blRepository->storeBudgetLimit($data);

View File

@ -163,7 +163,7 @@ class CategoryController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
throw new FireflyException('Could not store new category.'); // @codeCoverageIgnore throw new FireflyException(trans('error_store_new_category')); // @codeCoverageIgnore
} }
/** /**

View File

@ -57,7 +57,7 @@ class ConfigurationController extends Controller
$admin = auth()->user(); $admin = auth()->user();
if (!$this->repository->hasRole($admin, 'owner')) { if (!$this->repository->hasRole($admin, 'owner')) {
throw new FireflyException('No access to method.'); // @codeCoverageIgnore throw new FireflyException(trans('error_no_access')); // @codeCoverageIgnore
} }
return $next($request); return $next($request);

View File

@ -313,10 +313,10 @@ class CurrencyController extends Controller
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
// access denied: // access denied:
throw new FireflyException('No access to method, user is not owner.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_no_access_ownership')); // @codeCoverageIgnore
} }
if ($this->repository->currencyInUse($currency)) { if ($this->repository->currencyInUse($currency)) {
throw new FireflyException('No access to method, currency is in use.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_no_access_currency_in_use')); // @codeCoverageIgnore
} }
$this->repository->destroy($currency); $this->repository->destroy($currency);
@ -592,7 +592,7 @@ class CurrencyController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
throw new FireflyException('Could not store new currency.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_store_new_currency')); // @codeCoverageIgnore
} }

View File

@ -79,10 +79,10 @@ class CurrencyExchangeRateController extends Controller
$toCurrency = $this->repository->findByCodeNull($request->get('to') ?? 'USD'); $toCurrency = $this->repository->findByCodeNull($request->get('to') ?? 'USD');
if (null === $fromCurrency) { if (null === $fromCurrency) {
throw new FireflyException('Unknown source currency.'); throw new FireflyException(trans('api.error_unknown_source_currency'));
} }
if (null === $toCurrency) { if (null === $toCurrency) {
throw new FireflyException('Unknown destination currency.'); throw new FireflyException(trans('api.error_unknown_destination_currency'));
} }
/** @var Carbon $dateObj */ /** @var Carbon $dateObj */

View File

@ -86,7 +86,7 @@ class LinkTypeController extends Controller
public function delete(LinkType $linkType): JsonResponse public function delete(LinkType $linkType): JsonResponse
{ {
if (false === $linkType->editable) { if (false === $linkType->editable) {
throw new FireflyException(sprintf('You cannot delete this link type (#%d, "%s")', $linkType->id, $linkType->name)); throw new FireflyException(trans('error_delete_link_type', [':id' => $linkType->id, ':name' => $linkType->name]));
} }
$this->repository->destroy($linkType); $this->repository->destroy($linkType);
@ -160,7 +160,7 @@ class LinkTypeController extends Controller
$admin = auth()->user(); $admin = auth()->user();
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
throw new FireflyException('You need the "owner"-role to do this.'); throw new FireflyException(trans('api.error_owner_role_needed'));
} }
$data = $request->getAll(); $data = $request->getAll();
// if currency ID is 0, find the currency by the code: // if currency ID is 0, find the currency by the code:
@ -247,14 +247,14 @@ class LinkTypeController extends Controller
public function update(LinkTypeRequest $request, LinkType $linkType): JsonResponse public function update(LinkTypeRequest $request, LinkType $linkType): JsonResponse
{ {
if (false === $linkType->editable) { if (false === $linkType->editable) {
throw new FireflyException(sprintf('You cannot edit this link type (#%d, "%s")', $linkType->id, $linkType->name)); throw new FireflyException(trans('api.error_edit_link_type', [':id' => $linkType->id, ':name' => $linkType->name]));
} }
/** @var User $admin */ /** @var User $admin */
$admin = auth()->user(); $admin = auth()->user();
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
throw new FireflyException('You need the "owner"-role to do this.'); throw new FireflyException(trans('api.error_owner_role_needed'));
} }
$data = $request->getAll(); $data = $request->getAll();

View File

@ -192,7 +192,7 @@ class PiggyBankController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
throw new FireflyException('Could not store new piggy bank.'); throw new FireflyException(trans('api.error_store_new_piggybank'));
} }

View File

@ -236,7 +236,7 @@ class RecurrenceController extends Controller
$result = $recurring->fire(); $result = $recurring->fire();
} catch (FireflyException $e) { } catch (FireflyException $e) {
Log::error($e->getMessage()); Log::error($e->getMessage());
throw new FireflyException('Could not fire recurring cron job.'); throw new FireflyException(trans('api.error_fire_cronjob'));
} }
if (false === $result) { if (false === $result) {
return response()->json([], 204); return response()->json([], 204);

View File

@ -257,7 +257,7 @@ class RuleGroupController extends Controller
/** @var Collection $rules */ /** @var Collection $rules */
$rules = $this->ruleGroupRepository->getActiveRules($group); $rules = $this->ruleGroupRepository->getActiveRules($group);
if (0 === $rules->count()) { if (0 === $rules->count()) {
throw new FireflyException('No rules in this rule group.'); throw new FireflyException(trans('api.error_no_rules_in_rule_group'));
} }
$parameters = $request->getTestParameters(); $parameters = $request->getTestParameters();
$matchingTransactions = []; $matchingTransactions = [];

View File

@ -165,7 +165,7 @@ class TransactionLinkController extends Controller
$inward = $this->journalRepository->findNull($data['inward_id'] ?? 0); $inward = $this->journalRepository->findNull($data['inward_id'] ?? 0);
$outward = $this->journalRepository->findNull($data['outward_id'] ?? 0); $outward = $this->journalRepository->findNull($data['outward_id'] ?? 0);
if (null === $inward || null === $outward) { if (null === $inward || null === $outward) {
throw new FireflyException('Source or destination is NULL.'); throw new FireflyException(trans('error_source_or_dest_null'));
} }
$data['direction'] = 'inward'; $data['direction'] = 'inward';
@ -196,7 +196,7 @@ class TransactionLinkController extends Controller
$data['inward'] = $this->journalRepository->findNull($data['inward_id'] ?? 0); $data['inward'] = $this->journalRepository->findNull($data['inward_id'] ?? 0);
$data['outward'] = $this->journalRepository->findNull($data['outward_id'] ?? 0); $data['outward'] = $this->journalRepository->findNull($data['outward_id'] ?? 0);
if (null === $data['inward'] || null === $data['outward']) { if (null === $data['inward'] || null === $data['outward']) {
throw new FireflyException('Source or destination is NULL.'); throw new FireflyException(trans('api.error_source_or_dest_null'));
} }
$data['direction'] = 'inward'; $data['direction'] = 'inward';
$journalLink = $this->repository->updateLink($journalLink, $data); $journalLink = $this->repository->updateLink($journalLink, $data);

View File

@ -83,7 +83,7 @@ class UserController extends Controller
return response()->json([], 204); return response()->json([], 204);
} }
throw new FireflyException('No access to method.'); // @codeCoverageIgnore throw new FireflyException(trans('api.error_no_access')); // @codeCoverageIgnore
} }
/** /**

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,45 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
'error_no_upload' => 'No file has been uploaded for this attachment (yet).',
'error_file_lost' => 'Could not find the indicated attachment. The file is no longer there.',
'error_store_bill' => 'Could not store new bill.',
'error_store_budget' => 'Could not store new budget.',
'error_unknown_budget' => 'Unknown budget.',
'error_store_new_category' => 'Could not store new category.',
'error_no_access' => 'No access to method.',
'error_no_access_ownership' => 'No access to method, user is not owner.',
'error_no_access_currency_in_use' => 'No access to method, currency is in use.',
'error_store_new_currency' => 'Could not store new currency.',
'error_unknown_source_currency' => 'Unknown source currency.',
'error_unknown_destination_currency' => 'Unknown destination currency.',
'error_delete_link_type' => 'You cannot delete this link type (:id, :name)',
'error_edit_link_type' => 'You cannot edit this link type (:id, :name)',
'error_owner_role_needed' => 'You need the "owner"-role to do this.',
'error_store_new_piggybank' => 'Could not store new piggy bank.',
'error_fire_cronjob' => 'Could not fire recurring cron job.',
'error_no_rules_in_rule_group' => 'No rules in this rule group.',
'error_source_or_dest_null' => 'Source or destination is NULL.'
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];

View File

@ -0,0 +1,26 @@
<?php
/**
* api.php
* Copyright (c) 2019 thegrumpydictator@gmail.com
*
* 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);
return [
];