Auto commit for release 'v6.1.17' on 2024-06-15

This commit is contained in:
github-actions
2024-06-15 13:07:23 +02:00
parent d426e09474
commit 2d7d05e985
10 changed files with 432 additions and 340 deletions

View File

@@ -802,28 +802,28 @@
},
{
"name": "react/dns",
"version": "v1.12.0",
"version": "v1.13.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/dns.git",
"reference": "c134600642fa615b46b41237ef243daa65bb64ec"
"reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec",
"reference": "c134600642fa615b46b41237ef243daa65bb64ec",
"url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
"reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.2",
"react/promise": "^3.0 || ^2.7 || ^1.2.1"
"react/promise": "^3.2 || ^2.7 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
"react/async": "^4 || ^3 || ^2",
"react/promise-timer": "^1.9"
"react/async": "^4.3 || ^3 || ^2",
"react/promise-timer": "^1.11"
},
"type": "library",
"autoload": {
@@ -866,7 +866,7 @@
],
"support": {
"issues": "https://github.com/reactphp/dns/issues",
"source": "https://github.com/reactphp/dns/tree/v1.12.0"
"source": "https://github.com/reactphp/dns/tree/v1.13.0"
},
"funding": [
{
@@ -874,7 +874,7 @@
"type": "open_collective"
}
],
"time": "2023-11-29T12:41:06+00:00"
"time": "2024-06-13T14:18:03+00:00"
},
{
"name": "react/event-loop",

View File

@@ -233,7 +233,7 @@ class LoginController extends Controller
$storeInCookie = config('google2fa.store_in_cookie', false);
if (false !== $storeInCookie) {
$cookieName = config('google2fa.cookie_name', 'google2fa_token');
Cookie::queue(Cookie::make($cookieName, 'invalid-'.time()));
\Cookie::queue(\Cookie::make($cookieName, 'invalid-'.time()));
}
$usernameField = $this->username();

View File

@@ -86,16 +86,16 @@ class ConvertController extends Controller
}
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
$transformer = app(TransactionGroupTransformer::class);
/** @var TransactionJournal $first */
$first = $group->transactionJournals()->first();
$sourceType = $first->transactionType;
$first = $group->transactionJournals()->first();
$sourceType = $first->transactionType;
$groupTitle = $group->title ?? $first->description;
$groupArray = $transformer->transformObject($group);
$subTitle = (string) trans('firefly.convert_to_' . $destinationType->type, ['description' => $groupTitle]);
$subTitleIcon = 'fa-exchange';
$groupTitle = $group->title ?? $first->description;
$groupArray = $transformer->transformObject($group);
$subTitle = (string) trans('firefly.convert_to_'.$destinationType->type, ['description' => $groupTitle]);
$subTitleIcon = 'fa-exchange';
// get a list of asset accounts and liabilities and stuff, in various combinations:
$validDepositSources = $this->getValidDepositSources();
@@ -104,13 +104,13 @@ class ConvertController extends Controller
$assets = $this->getAssetAccounts();
// old input variables:
$preFilled = [
$preFilled = [
'source_name' => old('source_name'),
];
if ($sourceType->type === $destinationType->type) { // cannot convert to its own type.
app('log')->debug('This is already a transaction of the expected type..');
session()->flash('info', (string) trans('firefly.convert_is_already_type_' . $destinationType->type));
session()->flash('info', (string) trans('firefly.convert_is_already_type_'.$destinationType->type));
return redirect(route('transactions.show', [$group->id]));
}
@@ -139,21 +139,22 @@ class ConvertController extends Controller
// make repositories
$liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN];
$accountList = $this->accountRepository
->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]);
->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE])
;
$grouped = [];
// group accounts:
/** @var Account $account */
foreach ($accountList as $account) {
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
if ('' === $role) {
$role = 'no_account_type';
}
// maybe it's a liability thing:
if (in_array($account->accountType->type, $liabilityTypes, true)) {
$role = 'l_' . $account->accountType->type;
$role = 'l_'.$account->accountType->type;
}
if (AccountType::CASH === $account->accountType->type) {
$role = 'cash_account';
@@ -163,7 +164,7 @@ class ConvertController extends Controller
$role = 'revenue_account';
}
$key = (string) trans('firefly.opt_group_' . $role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $name;
}
@@ -182,15 +183,15 @@ class ConvertController extends Controller
// group accounts:
/** @var Account $account */
foreach ($accountList as $account) {
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$name = $account->name;
if ('' === $role) {
$role = 'no_account_type';
}
// maybe it's a liability thing:
if (in_array($account->accountType->type, $liabilityTypes, true)) {
$role = 'l_' . $account->accountType->type;
$role = 'l_'.$account->accountType->type;
}
if (AccountType::CASH === $account->accountType->type) {
$role = 'cash_account';
@@ -200,7 +201,7 @@ class ConvertController extends Controller
$role = 'expense_account';
}
$key = (string) trans('firefly.opt_group_' . $role);
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $name;
}
@@ -222,9 +223,9 @@ class ConvertController extends Controller
foreach ($accountList as $account) {
$balance = app('steam')->balance($account, today());
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
$role = 'l_' . $account->accountType->type;
$key = (string) trans('firefly.opt_group_' . $role);
$grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')';
$role = 'l_'.$account->accountType->type;
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
}
return $grouped;
@@ -243,15 +244,15 @@ class ConvertController extends Controller
// group accounts:
/** @var Account $account */
foreach ($accountList as $account) {
$balance = app('steam')->balance($account, today());
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
$balance = app('steam')->balance($account, today());
$currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency;
$role = (string) $this->accountRepository->getMetaValue($account, 'account_role');
if ('' === $role) {
$role = 'no_account_type';
}
$key = (string) trans('firefly.opt_group_' . $role);
$grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')';
$key = (string) trans('firefly.opt_group_'.$role);
$grouped[$key][$account->id] = $account->name.' ('.app('amount')->formatAnything($currency, $balance, false).')';
}
return $grouped;
@@ -283,7 +284,7 @@ class ConvertController extends Controller
// correct transfers:
$group->refresh();
session()->flash('success', (string) trans('firefly.converted_to_' . $destinationType->type));
session()->flash('success', (string) trans('firefly.converted_to_'.$destinationType->type));
event(new UpdatedTransactionGroup($group, true, true));
return redirect(route('transactions.show', [$group->id]));
@@ -295,14 +296,14 @@ class ConvertController extends Controller
private function convertJournal(TransactionJournal $journal, TransactionType $transactionType, array $data): TransactionJournal
{
/** @var AccountValidator $validator */
$validator = app(AccountValidator::class);
$validator = app(AccountValidator::class);
$validator->setUser(auth()->user());
$validator->setTransactionType($transactionType->type);
$sourceId = $data['source_id'][$journal->id] ?? null;
$sourceName = $data['source_name'][$journal->id] ?? null;
$destinationId = $data['destination_id'][$journal->id] ?? null;
$destinationName = $data['destination_name'][$journal->id] ?? null;
$sourceId = $data['source_id'][$journal->id] ?? null;
$sourceName = $data['source_name'][$journal->id] ?? null;
$destinationId = $data['destination_id'][$journal->id] ?? null;
$destinationName = $data['destination_name'][$journal->id] ?? null;
// double check it's not an empty string.
$sourceId = '' === $sourceId || null === $sourceId ? null : (int) $sourceId;
@@ -321,7 +322,7 @@ class ConvertController extends Controller
// TODO typeOverrule: the account validator may have another opinion on the transaction type.
$update = [
$update = [
'source_id' => $sourceId,
'source_name' => $sourceName,
'destination_id' => $destinationId,
@@ -342,9 +343,8 @@ class ConvertController extends Controller
}
}
/** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class);
$service = app(JournalUpdateService::class);
$service->setTransactionJournal($journal);
$service->setData($update);
$service->update();

View File

@@ -370,7 +370,7 @@ trait PeriodOverview
$first = $this->journalRepos->firstNull();
$start = null === $first ? new Carbon() : $first->date;
$end = clone $theDate;
$end = app('navigation')->endOfPeriod($end, $range);
$end = app('navigation')->endOfPeriod($end, $range);
app('log')->debug(sprintf('Start for getNoCategoryPeriodOverview() is %s', $start->format('Y-m-d')));
app('log')->debug(sprintf('End for getNoCategoryPeriodOverview() is %s', $end->format('Y-m-d')));

View File

@@ -15,16 +15,16 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Fixed
- #8907
- #8911
- #8929
- #8930
- #8951
- #8957
- #8958
- #8893
- #8954
- #8927
- [Issue 8907](https://github.com/firefly-iii/firefly-iii/issues/8907) (Error when adding initial balance: bcadd(): Argument #2 ($num2) must be of type string, int given) reported by @wnklmnn
- [Issue 8911](https://github.com/firefly-iii/firefly-iii/issues/8911) (Docker container startup very slow) reported by @daften
- [PR 8929](https://github.com/firefly-iii/firefly-iii/pull/8929) (icon title chgd from Deposit to Transfer) reported by @stevewasiura
- [PR 8930](https://github.com/firefly-iii/firefly-iii/pull/8930) (icon title chgd from Deposit to Transfer) reported by @stevewasiura
- [PR 8951](https://github.com/firefly-iii/firefly-iii/pull/8951) (add icon for delete action) reported by @stevewasiura
- [PR 8957](https://github.com/firefly-iii/firefly-iii/pull/8957) (Remove nesting level for markdown) reported by @JeroenED
- [Issue 8958](https://github.com/firefly-iii/firefly-iii/issues/8958) (Weird line appears above the UI when clicking on matching transactions for a rule) reported by @avee87
- [Issue 8893](https://github.com/firefly-iii/firefly-iii/issues/8893) (API: `reconciled: false` does not have precedence) reported by @dreautall
- [Issue 8954](https://github.com/firefly-iii/firefly-iii/issues/8954) (Wrong calculation of transaction without category) reported by @anarion80
- [Issue 8927](https://github.com/firefly-iii/firefly-iii/issues/8927) (Converting deposit to transfer can set incorrect transaction currency) reported by @avee87
- Various issues in release train.
- There is a confirmation again before you delete data using the page in your profile

12
composer.lock generated
View File

@@ -11568,16 +11568,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.5.20",
"version": "10.5.21",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
"reference": "ac837816fa52078f7a5e17ed774f256a72a51af6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
"reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ac837816fa52078f7a5e17ed774f256a72a51af6",
"reference": "ac837816fa52078f7a5e17ed774f256a72a51af6",
"shasum": ""
},
"require": {
@@ -11649,7 +11649,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.21"
},
"funding": [
{
@@ -11665,7 +11665,7 @@
"type": "tidelift"
}
],
"time": "2024-04-24T06:32:35+00:00"
"time": "2024-06-15T09:13:15+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@@ -117,7 +117,7 @@ return [
'expression_engine' => false,
// see cer.php for exchange rates feature flag.
],
'version' => 'develop/2024-06-13',
'version' => '6.1.17',
'api_version' => '2.1.0',
'db_version' => 24,

268
package-lock.json generated
View File

@@ -1908,9 +1908,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
"integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
"integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
"cpu": [
"ppc64"
],
@@ -1924,9 +1924,9 @@
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
"integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
"integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
"cpu": [
"arm"
],
@@ -1940,9 +1940,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
"integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
"integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
"cpu": [
"arm64"
],
@@ -1956,9 +1956,9 @@
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
"integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
"integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
"cpu": [
"x64"
],
@@ -1972,9 +1972,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
"integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
"integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
"cpu": [
"arm64"
],
@@ -1988,9 +1988,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
"integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
"integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
"cpu": [
"x64"
],
@@ -2004,9 +2004,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
"integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
"integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
"cpu": [
"arm64"
],
@@ -2020,9 +2020,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
"integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
"integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
"cpu": [
"x64"
],
@@ -2036,9 +2036,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
"integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
"integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
"cpu": [
"arm"
],
@@ -2052,9 +2052,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
"integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
"integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
"cpu": [
"arm64"
],
@@ -2068,9 +2068,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
"integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
"integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
"cpu": [
"ia32"
],
@@ -2084,9 +2084,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
"integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
"integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
"cpu": [
"loong64"
],
@@ -2100,9 +2100,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
"integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
"integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
"cpu": [
"mips64el"
],
@@ -2116,9 +2116,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
"integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
"integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
"cpu": [
"ppc64"
],
@@ -2132,9 +2132,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
"integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
"integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
"cpu": [
"riscv64"
],
@@ -2148,9 +2148,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
"integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
"integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
"cpu": [
"s390x"
],
@@ -2164,9 +2164,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
"integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
"integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
"cpu": [
"x64"
],
@@ -2180,9 +2180,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
"integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
"integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
"cpu": [
"x64"
],
@@ -2196,9 +2196,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
"integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
"integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
"cpu": [
"x64"
],
@@ -2212,9 +2212,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
"integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
"integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
"cpu": [
"x64"
],
@@ -2228,9 +2228,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
"integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
"integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
"cpu": [
"arm64"
],
@@ -2244,9 +2244,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
"integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
"integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
"cpu": [
"ia32"
],
@@ -2260,9 +2260,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
"integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
"integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
"cpu": [
"x64"
],
@@ -2951,39 +2951,39 @@
}
},
"node_modules/@vue/compiler-core": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
"integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
"version": "3.4.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz",
"integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.24.4",
"@vue/shared": "3.4.27",
"@babel/parser": "^7.24.7",
"@vue/shared": "3.4.29",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
"integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
"version": "3.4.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz",
"integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==",
"dev": true,
"dependencies": {
"@vue/compiler-core": "3.4.27",
"@vue/shared": "3.4.27"
"@vue/compiler-core": "3.4.29",
"@vue/shared": "3.4.29"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
"integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
"version": "3.4.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz",
"integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.24.4",
"@vue/compiler-core": "3.4.27",
"@vue/compiler-dom": "3.4.27",
"@vue/compiler-ssr": "3.4.27",
"@vue/shared": "3.4.27",
"@babel/parser": "^7.24.7",
"@vue/compiler-core": "3.4.29",
"@vue/compiler-dom": "3.4.29",
"@vue/compiler-ssr": "3.4.29",
"@vue/shared": "3.4.29",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.10",
"postcss": "^8.4.38",
@@ -2991,13 +2991,13 @@
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
"integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
"version": "3.4.29",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz",
"integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==",
"dev": true,
"dependencies": {
"@vue/compiler-dom": "3.4.27",
"@vue/shared": "3.4.27"
"@vue/compiler-dom": "3.4.29",
"@vue/shared": "3.4.29"
}
},
"node_modules/@vue/component-compiler-utils": {
@@ -3072,9 +3072,9 @@
"integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
},
"node_modules/@vue/shared": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
"integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==",
"version": "3.4.29",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz",
"integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==",
"dev": true
},
"node_modules/@webassemblyjs/ast": {
@@ -3291,9 +3291,9 @@
}
},
"node_modules/acorn": {
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -4028,9 +4028,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001632",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz",
"integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==",
"version": "1.0.30001634",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz",
"integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==",
"dev": true,
"funding": [
{
@@ -5103,9 +5103,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
"version": "1.4.801",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.801.tgz",
"integrity": "sha512-PnlUz15ii38MZMD2/CEsAzyee8tv9vFntX5nhtd2/4tv4HqY7C5q2faUAjmkXS/UFpVooJ/5H6kayRKYWoGMXQ==",
"version": "1.4.803",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz",
"integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==",
"dev": true
},
"node_modules/elliptic": {
@@ -5227,9 +5227,9 @@
"dev": true
},
"node_modules/esbuild": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
"integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -5239,29 +5239,29 @@
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/aix-ppc64": "0.20.2",
"@esbuild/android-arm": "0.20.2",
"@esbuild/android-arm64": "0.20.2",
"@esbuild/android-x64": "0.20.2",
"@esbuild/darwin-arm64": "0.20.2",
"@esbuild/darwin-x64": "0.20.2",
"@esbuild/freebsd-arm64": "0.20.2",
"@esbuild/freebsd-x64": "0.20.2",
"@esbuild/linux-arm": "0.20.2",
"@esbuild/linux-arm64": "0.20.2",
"@esbuild/linux-ia32": "0.20.2",
"@esbuild/linux-loong64": "0.20.2",
"@esbuild/linux-mips64el": "0.20.2",
"@esbuild/linux-ppc64": "0.20.2",
"@esbuild/linux-riscv64": "0.20.2",
"@esbuild/linux-s390x": "0.20.2",
"@esbuild/linux-x64": "0.20.2",
"@esbuild/netbsd-x64": "0.20.2",
"@esbuild/openbsd-x64": "0.20.2",
"@esbuild/sunos-x64": "0.20.2",
"@esbuild/win32-arm64": "0.20.2",
"@esbuild/win32-ia32": "0.20.2",
"@esbuild/win32-x64": "0.20.2"
"@esbuild/aix-ppc64": "0.21.5",
"@esbuild/android-arm": "0.21.5",
"@esbuild/android-arm64": "0.21.5",
"@esbuild/android-x64": "0.21.5",
"@esbuild/darwin-arm64": "0.21.5",
"@esbuild/darwin-x64": "0.21.5",
"@esbuild/freebsd-arm64": "0.21.5",
"@esbuild/freebsd-x64": "0.21.5",
"@esbuild/linux-arm": "0.21.5",
"@esbuild/linux-arm64": "0.21.5",
"@esbuild/linux-ia32": "0.21.5",
"@esbuild/linux-loong64": "0.21.5",
"@esbuild/linux-mips64el": "0.21.5",
"@esbuild/linux-ppc64": "0.21.5",
"@esbuild/linux-riscv64": "0.21.5",
"@esbuild/linux-s390x": "0.21.5",
"@esbuild/linux-x64": "0.21.5",
"@esbuild/netbsd-x64": "0.21.5",
"@esbuild/openbsd-x64": "0.21.5",
"@esbuild/sunos-x64": "0.21.5",
"@esbuild/win32-arm64": "0.21.5",
"@esbuild/win32-ia32": "0.21.5",
"@esbuild/win32-x64": "0.21.5"
}
},
"node_modules/escalade": {
@@ -10088,12 +10088,12 @@
}
},
"node_modules/vite": {
"version": "5.2.13",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz",
"integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==",
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
"integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
"dev": true,
"dependencies": {
"esbuild": "^0.20.1",
"esbuild": "^0.21.3",
"postcss": "^8.4.38",
"rollup": "^4.13.0"
},

View File

@@ -617,7 +617,7 @@ Route::group(
Route::get('{recurrence}/transactions', ['uses' => 'ListController@transactions', 'as' => 'transactions']);
// controller does not exist:
//Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
// Route::post('trigger', ['uses' => 'RecurrenceController@trigger', 'as' => 'trigger']);
}
);

View File

@@ -25,36 +25,36 @@ if (!defined('DATEFORMAT')) {
define('DATEFORMAT', '(19|20)[0-9]{2}-?[0-9]{2}-?[0-9]{2}');
}
// laravel passport routes
Route::group([
'as' => 'passport.',
'prefix' => config('passport.path', 'oauth'),
'namespace' => '\Laravel\Passport\Http\Controllers',
], function () {
// routes with no extra middleware
Route::post('/token', ['uses' => 'AccessTokenController@issueToken', 'as' => 'token', 'middleware' => 'throttle',]);
Route::get('/authorize', ['uses' => 'AuthorizationController@authorize', 'as' => 'authorizations.authorize', 'middleware' => 'user-full-auth',]);
// the rest
$guard = config('passport.guard', null);
Route::middleware(['web', $guard ? 'auth:'.$guard : 'auth'])->group(function () {
Route::post('/token/refresh', ['uses' => 'TransientTokenController@refresh', 'as' => 'token.refresh',]);
Route::post('/authorize', ['uses' => 'ApproveAuthorizationController@approve', 'as' => 'authorizations.approve',]);
Route::delete('/authorize', ['uses' => 'DenyAuthorizationController@deny', 'as' => 'authorizations.deny',]);
Route::get('/tokens', ['uses' => 'AuthorizedAccessTokenController@forUser', 'as' => 'tokens.index',]);
Route::delete('/tokens/{token_id}', ['uses' => 'AuthorizedAccessTokenController@destroy', 'as' => 'tokens.destroy',]);
Route::get('/clients', ['uses' => 'ClientController@forUser', 'as' => 'clients.index',]);
Route::post('/clients', ['uses' => 'ClientController@store', 'as' => 'clients.store',]);
Route::put('/clients/{client_id}', ['uses' => 'ClientController@update', 'as' => 'clients.update',]);
Route::delete('/clients/{client_id}', ['uses' => 'ClientController@destroy', 'as' => 'clients.destroy',]);
Route::get('/scopes', ['uses' => 'ScopeController@all', 'as' => 'scopes.index',]);
Route::get('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@forUser', 'as' => 'personal.tokens.index',]);
Route::post('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@store', 'as' => 'personal.tokens.store',]);
Route::delete('/personal-access-tokens/{token_id}', ['uses' => 'PersonalAccessTokenController@destroy', 'as' => 'personal.tokens.destroy',]);
});
}
Route::group(
[
'as' => 'passport.',
'prefix' => config('passport.path', 'oauth'),
'namespace' => '\Laravel\Passport\Http\Controllers',
],
function (): void {
// routes with no extra middleware
Route::post('/token', ['uses' => 'AccessTokenController@issueToken', 'as' => 'token', 'middleware' => 'throttle']);
Route::get('/authorize', ['uses' => 'AuthorizationController@authorize', 'as' => 'authorizations.authorize', 'middleware' => 'user-full-auth']);
// the rest
$guard = config('passport.guard', null);
Route::middleware(['web', $guard ? 'auth:'.$guard : 'auth'])->group(function (): void {
Route::post('/token/refresh', ['uses' => 'TransientTokenController@refresh', 'as' => 'token.refresh']);
Route::post('/authorize', ['uses' => 'ApproveAuthorizationController@approve', 'as' => 'authorizations.approve']);
Route::delete('/authorize', ['uses' => 'DenyAuthorizationController@deny', 'as' => 'authorizations.deny']);
Route::get('/tokens', ['uses' => 'AuthorizedAccessTokenController@forUser', 'as' => 'tokens.index']);
Route::delete('/tokens/{token_id}', ['uses' => 'AuthorizedAccessTokenController@destroy', 'as' => 'tokens.destroy']);
Route::get('/clients', ['uses' => 'ClientController@forUser', 'as' => 'clients.index']);
Route::post('/clients', ['uses' => 'ClientController@store', 'as' => 'clients.store']);
Route::put('/clients/{client_id}', ['uses' => 'ClientController@update', 'as' => 'clients.update']);
Route::delete('/clients/{client_id}', ['uses' => 'ClientController@destroy', 'as' => 'clients.destroy']);
Route::get('/scopes', ['uses' => 'ScopeController@all', 'as' => 'scopes.index']);
Route::get('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@forUser', 'as' => 'personal.tokens.index']);
Route::post('/personal-access-tokens', ['uses' => 'PersonalAccessTokenController@store', 'as' => 'personal.tokens.store']);
Route::delete('/personal-access-tokens/{token_id}', ['uses' => 'PersonalAccessTokenController@destroy', 'as' => 'personal.tokens.destroy']);
});
}
);
Route::group(
@@ -79,7 +79,7 @@ Route::group(
Route::group(
['middleware' => 'binders-only', 'namespace' => 'FireflyIII\Http\Controllers\System'],
static function (): void {
Route::get('offline', static fn() => view('errors.offline'));
Route::get('offline', static fn () => view('errors.offline'));
Route::get('health', ['uses' => 'HealthcheckController@check', 'as' => 'healthcheck']);
}
);
@@ -182,27 +182,32 @@ Route::group(
// show
Route::get('show/{account}/all', ['uses' => 'Account\ShowController@showAll', 'as' => 'show.all']);
Route::get('show/{account}/{start_date?}/{end_date?}', ['uses' => 'Account\ShowController@show', 'as' => 'show'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
// reconcile routes:
Route::get('reconcile/{account}/index/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@reconcile', 'as' => 'reconcile'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::post('reconcile/{account}/submit/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@submit', 'as' => 'reconcile.submit'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
// reconcile JSON routes
Route::get('reconcile/{account}/overview/{start_date?}/{end_date?}', ['uses' => 'Json\ReconcileController@overview', 'as' => 'reconcile.overview'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get(
'reconcile/{account}/transactions/{start_date?}/{end_date?}',
['uses' => 'Json\ReconcileController@transactions', 'as' => 'reconcile.transactions']
)
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -279,16 +284,18 @@ Route::group(
Route::get('show/{budget}/{budgetLimit}', ['uses' => 'Budget\ShowController@showByBudgetLimit', 'as' => 'show.limit']);
Route::get('list/no-budget/all', ['uses' => 'Budget\ShowController@noBudgetAll', 'as' => 'no-budget-all']);
Route::get('list/no-budget/{start_date?}/{end_date?}', ['uses' => 'Budget\ShowController@noBudget', 'as' => 'no-budget'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
// reorder budgets
Route::post('reorder', ['uses' => 'Budget\IndexController@reorder', 'as' => 'reorder']);
// index
Route::get('{start_date?}/{end_date?}', ['uses' => 'Budget\IndexController@index', 'as' => 'index'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -297,8 +304,9 @@ Route::group(
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers', 'prefix' => 'budget-limits', 'as' => 'budget-limits.'],
static function (): void {
Route::get('create/{budget}/{start_date}/{end_date}', ['uses' => 'Budget\BudgetLimitController@create', 'as' => 'create'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::post('store', ['uses' => 'Budget\BudgetLimitController@store', 'as' => 'store']);
Route::post('delete/{budgetLimit}', ['uses' => 'Budget\BudgetLimitController@delete', 'as' => 'delete']);
@@ -329,14 +337,16 @@ Route::group(
// show category:
Route::get('show/{category}/all', ['uses' => 'Category\ShowController@showAll', 'as' => 'show.all']);
Route::get('show/{category}/{start_date?}/{end_date?}', ['uses' => 'Category\ShowController@show', 'as' => 'show'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
// no category controller:
Route::get('list/no-category/all', ['uses' => 'Category\NoCategoryController@showAll', 'as' => 'no-category.all']);
Route::get('list/no-category/{start_date?}/{end_date?}', ['uses' => 'Category\NoCategoryController@show', 'as' => 'no-category'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -363,25 +373,30 @@ Route::group(
Route::get('expense', ['uses' => 'AccountController@expenseAccounts', 'as' => 'expense']);
Route::get('revenue', ['uses' => 'AccountController@revenueAccounts', 'as' => 'revenue']);
Route::get('report/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@report', 'as' => 'report'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('period/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@period', 'as' => 'period'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('income-category/{account}/all/all', ['uses' => 'AccountController@incomeCategoryAll', 'as' => 'income-category-all']);
Route::get('expense-category/{account}/all/all', ['uses' => 'AccountController@expenseCategoryAll', 'as' => 'expense-category-all']);
Route::get('expense-budget/{account}/all/all', ['uses' => 'AccountController@expenseBudgetAll', 'as' => 'expense-budget-all']);
Route::get('income-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@incomeCategory', 'as' => 'income-category'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('expense-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseCategory', 'as' => 'expense-category'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('expense-budget/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseBudget', 'as' => 'expense-budget'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -400,11 +415,13 @@ Route::group(
static function (): void {
Route::get('frontpage', ['uses' => 'BudgetController@frontpage', 'as' => 'frontpage']);
Route::get('period/0/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@periodNoBudget', 'as' => 'period.no-budget'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('period/{budget}/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('budget/{budget}/{budgetLimit}', ['uses' => 'BudgetController@budgetLimit', 'as' => 'budget-limit']);
Route::get('budget/{budget}', ['uses' => 'BudgetController@budget', 'as' => 'budget']);
@@ -418,23 +435,27 @@ Route::group(
'category/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetReportController@categoryExpense', 'as' => 'category-expense']
)
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get(
'budget/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetReportController@budgetExpense', 'as' => 'budget-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'source-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetReportController@sourceAccountExpense', 'as' => 'source-account-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'destination-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetReportController@destinationAccountExpense', 'as' => 'destination-account-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('operations/{accountList}/{budget}/{start_date}/{end_date}', ['uses' => 'BudgetReportController@mainChart', 'as' => 'main']);
}
);
@@ -451,51 +472,61 @@ Route::group(
'report-period/0/{accountList}/{start_date}/{end_date}',
['uses' => 'CategoryController@reportPeriodNoCategory', 'as' => 'period.no-category']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('report-period/{category}/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@reportPeriod', 'as' => 'period'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@categoryExpense', 'as' => 'category-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/income/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@categoryIncome', 'as' => 'category-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'budget/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@budgetExpense', 'as' => 'budget-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'source/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@sourceExpense', 'as' => 'source-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'source/income/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@sourceIncome', 'as' => 'source-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'dest/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@destinationExpense', 'as' => 'dest-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'dest/income/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryReportController@destinationIncome', 'as' => 'dest-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('operations/{accountList}/{category}/{start_date}/{end_date}', ['uses' => 'CategoryReportController@mainChart', 'as' => 'main'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -504,52 +535,62 @@ Route::group(
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers\Chart', 'prefix' => 'chart/tag', 'as' => 'chart.tag.'],
static function (): void {
Route::get('tag/expense/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagExpense', 'as' => 'tag-expense'])
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT])
;
Route::get('tag/income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagIncome', 'as' => 'tag-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/expense/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@categoryExpense', 'as' => 'category-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/income/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@categoryIncome', 'as' => 'category-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'budget/expense/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@budgetExpense', 'as' => 'budget-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'source/expense/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@sourceExpense', 'as' => 'source-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'source/income/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@sourceIncome', 'as' => 'source-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'dest/expense/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@destinationExpense', 'as' => 'dest-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'dest/income/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagReportController@destinationIncome', 'as' => 'dest-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('operations/{accountList}/{tag}/{start_date}/{end_date}', ['uses' => 'TagReportController@mainChart', 'as' => 'main'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -560,34 +601,40 @@ Route::group(
Route::get('main/{accountList}/{account}/{start_date}/{end_date}', ['uses' => 'DoubleReportController@mainChart', 'as' => 'main'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleReportController@categoryExpense', 'as' => 'category-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'category/income/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleReportController@categoryIncome', 'as' => 'category-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'budget/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleReportController@budgetExpense', 'as' => 'budget-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'tag/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleReportController@tagExpense', 'as' => 'tag-expense']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'tag/income/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleReportController@tagIncome', 'as' => 'tag-income']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -606,11 +653,13 @@ Route::group(
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'ReportController@operations', 'as' => 'operations'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('net-worth/{accountList}/{start_date}/{end_date}/', ['uses' => 'ReportController@netWorth', 'as' => 'net-worth'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -621,18 +670,22 @@ Route::group(
Route::get('categories/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@categories', 'as' => 'categories'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('budgets/{start_date}/{end_date}', ['uses' => 'TransactionController@budgets', 'as' => 'budgets'])->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'destinationAccounts/{objectType}/{start_date}/{end_date}',
['uses' => 'TransactionController@destinationAccounts', 'as' => 'destinationAccounts']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('sourceAccounts/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@sourceAccounts', 'as' => 'sourceAccounts'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -690,7 +743,8 @@ Route::group(
'budget/total-budgeted/{currency}/{start_date}/{end_date}',
['uses' => 'Json\BudgetController@getBudgetInformation', 'as' => 'budget.total-budgeted']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
// boxes
Route::get('box/balance', ['uses' => 'Json\BoxController@balance', 'as' => 'box.balance']);
Route::get('box/available', ['uses' => 'Json\BoxController@available', 'as' => 'box.available']);
@@ -704,7 +758,7 @@ Route::group(
Route::get('frontpage/piggy-banks', ['uses' => 'Json\FrontpageController@piggyBanks', 'as' => 'fp.piggy-banks']);
// currency conversion:
//Route::get('rate/{fromCurrencyCode}/{toCurrencyCode}/{date}', ['uses' => 'Json\ExchangeController@getRate', 'as' => 'rate']);
// Route::get('rate/{fromCurrencyCode}/{toCurrencyCode}/{date}', ['uses' => 'Json\ExchangeController@getRate', 'as' => 'rate']);
// intro things:
Route::post('intro/finished/{route}/{specificPage?}', ['uses' => 'Json\IntroController@postFinished', 'as' => 'intro.finished']);
@@ -830,7 +884,8 @@ Route::group(
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@general', 'as' => 'general'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -841,7 +896,8 @@ Route::group(
Route::get('overview/{accountList}/{start_date}/{end_date}', ['uses' => 'BillController@overview', 'as' => 'overview'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -853,32 +909,38 @@ Route::group(
Route::get('operations/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@operations', 'as' => 'operations'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'ops-asset/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleController@operationsPerAsset', 'as' => 'ops-asset']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'top-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleController@topExpenses', 'as' => 'top-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'avg-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
['uses' => 'DoubleController@avgExpenses', 'as' => 'avg-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('top-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@topIncome', 'as' => 'top-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('avg-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@avgIncome', 'as' => 'avg-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -894,15 +956,18 @@ Route::group(
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@operations', 'as' => 'operations'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@income', 'as' => 'income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@expenses', 'as' => 'expenses'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -919,49 +984,59 @@ Route::group(
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@operations', 'as' => 'operations'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@income', 'as' => 'income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@expenses', 'as' => 'expenses'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('accounts/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@accounts', 'as' => 'accounts'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('categories/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@categories', 'as' => 'categories'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'account-per-category/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryController@accountPerCategory', 'as' => 'account-per-category']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'top-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryController@topExpenses', 'as' => 'top-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'avg-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
['uses' => 'CategoryController@avgExpenses', 'as' => 'avg-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('top-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@topIncome', 'as' => 'top-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('avg-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@avgIncome', 'as' => 'avg-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -977,34 +1052,41 @@ Route::group(
Route::get('accounts/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@accounts', 'as' => 'accounts'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('tags/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@tags', 'as' => 'tags'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'account-per-tag/{accountList}/{tagList}/{start_date}/{end_date}',
['uses' => 'TagController@accountPerTag', 'as' => 'account-per-tag']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('top-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topExpenses', 'as' => 'top-expenses'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('avg-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgExpenses', 'as' => 'avg-expenses'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('top-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topIncome', 'as' => 'top-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('avg-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgIncome', 'as' => 'avg-income'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -1015,7 +1097,8 @@ Route::group(
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'BalanceController@general', 'as' => 'general'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -1026,34 +1109,41 @@ Route::group(
Route::get('general/{accountList}/{start_date}/{end_date}/', ['uses' => 'BudgetController@general', 'as' => 'general'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
// TODO is route still used?
Route::get('period/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('accounts/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@accounts', 'as' => 'accounts'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('budgets/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@budgets', 'as' => 'budgets'])->where(
['start_date' => DATEFORMAT]
)
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'account-per-budget/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetController@accountPerBudget', 'as' => 'account-per-budget']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'top-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetController@topExpenses', 'as' => 'top-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get(
'avg-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
['uses' => 'BudgetController@avgExpenses', 'as' => 'avg-expenses']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
}
);
@@ -1126,7 +1216,8 @@ Route::group(
Route::get('show/{tagOrId}/all', ['uses' => 'TagController@showAll', 'as' => 'show.all']);
Route::get('show/{tagOrId}/{start_date?}/{end_date?}', ['uses' => 'TagController@show', 'as' => 'show'])->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
Route::get('edit/{tag}', ['uses' => 'TagController@edit', 'as' => 'edit']);
Route::get('delete/{tag}', ['uses' => 'TagController@delete', 'as' => 'delete']);
@@ -1151,7 +1242,8 @@ Route::group(
Route::get('{objectType}/{start_date?}/{end_date?}', ['uses' => 'Transaction\IndexController@index', 'as' => 'index'])->where(
['objectType' => 'withdrawal|deposit|transfers|transfer|all']
)->where(['start_date' => DATEFORMAT])
->where(['end_date' => DATEFORMAT]);
->where(['end_date' => DATEFORMAT])
;
// create group:
Route::get('create/{objectType}', ['uses' => 'Transaction\CreateController@create', 'as' => 'create']);
@@ -1295,7 +1387,7 @@ Route::group(
Route::get('', ['uses' => 'UserGroup\IndexController@index', 'as' => 'index']);
Route::get('create', ['uses' => 'UserGroup\CreateController@create', 'as' => 'create']);
Route::get('edit/{userGroup}', ['uses' => 'UserGroup\EditController@edit', 'as' => 'edit']);
//Route::get('show/{userGroup}', ['uses' => 'UserGroup\ShowController@show', 'as' => 'show']);
// Route::get('show/{userGroup}', ['uses' => 'UserGroup\ShowController@show', 'as' => 'show']);
// Route::post('rescan/{bill}', ['uses' => 'Bill\ShowController@rescan', 'as' => 'rescan']);
// Route::get('delete/{bill}', ['uses' => 'Bill\DeleteController@delete', 'as' => 'delete']);