Compare commits

..

73 Commits

Author SHA1 Message Date
github-actions[bot]
0ad4db8a71 Merge pull request #11872 from firefly-iii/release-1772618461
🤖 Automatically merge the PR into the develop branch.
2026-03-04 11:01:10 +01:00
JC5
ed9754c8d4 🤖 Auto commit for release 'develop' on 2026-03-04 2026-03-04 11:01:01 +01:00
Sander Dorigo
f8687d4fc1 New config 2026-03-04 10:01:24 +01:00
github-actions[bot]
93500b8156 Merge pull request #11869 from firefly-iii/release-1772607152
🤖 Automatically merge the PR into the develop branch.
2026-03-04 07:52:42 +01:00
JC5
8a3fb50607 🤖 Auto commit for release 'v6.5.3' on 2026-03-04 2026-03-04 07:52:32 +01:00
github-actions[bot]
8a8567c3e4 Merge pull request #11868 from firefly-iii/release-1772605365
🤖 Automatically merge the PR into the develop branch.
2026-03-04 07:22:52 +01:00
JC5
7922671463 🤖 Auto commit for release 'develop' on 2026-03-04 2026-03-04 07:22:45 +01:00
James Cole
3baa1ccd78 Update changelog. 2026-03-04 07:17:36 +01:00
James Cole
4beef8be86 Merge branch 'main' into develop 2026-03-04 07:14:11 +01:00
github-actions[bot]
0aea8875d4 Merge pull request #11867 from firefly-iii/release-1772603927
🤖 Automatically merge the PR into the develop branch.
2026-03-04 06:58:56 +01:00
JC5
773e2ac262 🤖 Auto commit for release 'develop' on 2026-03-04 2026-03-04 06:58:47 +01:00
James Cole
912a9f1ea7 Fix workflow for now. 2026-03-04 06:53:52 +01:00
James Cole
5a7cf58802 Merge branch 'main' into develop 2026-03-04 06:52:26 +01:00
James Cole
63ab0fba8d Fix calls to isset 2026-03-04 06:52:20 +01:00
James Cole
42f4eb448d Expand release workflow. 2026-03-04 06:44:28 +01:00
James Cole
b07b0dc69a Expand release thing. 2026-03-04 06:40:32 +01:00
James Cole
41ed650336 Fix all errors. 2026-03-04 06:38:33 +01:00
James Cole
7d67fe52f9 Fix phpstan issues. 2026-03-04 06:34:04 +01:00
James Cole
48f039a275 Add some logging. 2026-03-04 06:13:25 +01:00
James Cole
8cace91ae1 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2026-03-04 06:13:04 +01:00
James Cole
bf5eef61e4 Merge pull request #11862 from dakennguyen/return-primary-currency-info
Return currency info for tag journals
2026-03-04 06:11:36 +01:00
James Cole
fdeffc2978 More fixes. 2026-03-03 20:38:28 +01:00
James Cole
f72fe58271 Fix more issues. 2026-03-03 20:37:35 +01:00
James Cole
99c9123770 More clean up according to Mago. 2026-03-03 20:35:51 +01:00
James Cole
47b02b30ea Code cleanup as recommended by Mago. 2026-03-03 20:33:02 +01:00
Khoa Nguyen
5f171e36ab Return currency info for tag journals 2026-03-03 18:19:29 +01:00
James Cole
a352ae54b6 Different word 2026-03-03 17:24:38 +01:00
James Cole
72b746d437 Fix spelling 2026-03-03 17:23:48 +01:00
James Cole
18afac99af Merge branch 'main' into develop 2026-03-03 17:23:26 +01:00
James Cole
3c6e03dbb0 Enhance README with digital sovereignty message
Added a section highlighting the importance of digital sovereignty and Firefly III's European roots.

Signed-off-by: James Cole <james@firefly-iii.org>
2026-03-03 16:38:29 +01:00
James Cole
ea8d98481f Add image 2026-03-03 16:32:10 +01:00
James Cole
afd0dd0758 Fix bad class call. 2026-03-03 16:30:17 +01:00
github-actions[bot]
0ba2cb5274 Merge pull request #11860 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2026-03-03 06:42:14 +01:00
github-actions[bot]
7d8dc21722 Merge pull request #11859 from firefly-iii/release-1772516521
🤖 Automatically merge the PR into the develop branch.
2026-03-03 06:42:09 +01:00
JC5
43ea2ab88a 🤖 Auto commit for release 'v6.5.2' on 2026-03-03 2026-03-03 06:42:01 +01:00
github-actions[bot]
ed472a17f5 Merge pull request #11858 from firefly-iii/release-1772516161
🤖 Automatically merge the PR into the develop branch.
2026-03-03 06:36:10 +01:00
JC5
fe09f2a664 🤖 Auto commit for release 'develop' on 2026-03-03 2026-03-03 06:36:01 +01:00
James Cole
3469b0253b Expand changelog. 2026-03-03 06:31:17 +01:00
github-actions[bot]
b6e9db7339 Merge pull request #11857 from firefly-iii/release-1772515618
🤖 Automatically merge the PR into the develop branch.
2026-03-03 06:27:04 +01:00
JC5
374fdbe1d4 🤖 Auto commit for release 'develop' on 2026-03-03 2026-03-03 06:26:58 +01:00
James Cole
e0b05b63ec Fix config issue 2026-03-03 06:21:01 +01:00
github-actions[bot]
342ca61fb6 Merge pull request #11856 from firefly-iii/release-1772514544
🤖 Automatically merge the PR into the develop branch.
2026-03-03 06:09:12 +01:00
JC5
e9d21faf08 🤖 Auto commit for release 'develop' on 2026-03-03 2026-03-03 06:09:04 +01:00
github-actions[bot]
847800f81f Merge pull request #11851 from firefly-iii/release-1772469975
🤖 Automatically merge the PR into the develop branch.
2026-03-02 17:46:23 +01:00
JC5
b1e6f6b264 🤖 Auto commit for release 'develop' on 2026-03-02 2026-03-02 17:46:15 +01:00
github-actions[bot]
91d282c9cf Merge pull request #11850 from firefly-iii/release-1772423452
🤖 Automatically merge the PR into the develop branch.
2026-03-02 04:51:03 +01:00
JC5
c53ed44ea3 🤖 Auto commit for release 'develop' on 2026-03-02 2026-03-02 04:50:53 +01:00
James Cole
70b12354e8 Fix https://github.com/firefly-iii/firefly-iii/issues/11847 2026-03-01 20:11:33 +01:00
James Cole
6e8d204f00 Fix rule actions checking for renamed accounts. 2026-03-01 19:55:48 +01:00
github-actions[bot]
f1578b2c90 Merge pull request #11843 from firefly-iii/release-1772371014
🤖 Automatically merge the PR into the develop branch.
2026-03-01 14:17:01 +01:00
JC5
90e4ca78a4 🤖 Auto commit for release 'develop' on 2026-03-01 2026-03-01 14:16:55 +01:00
James Cole
aae855ed16 Fix range as reported by @dakennguyen 2026-03-01 14:12:38 +01:00
James Cole
2056ba5e08 Fix range. 2026-03-01 14:12:11 +01:00
James Cole
2cd7983f51 Fix https://github.com/firefly-iii/firefly-iii/issues/11842 2026-03-01 12:48:21 +01:00
github-actions[bot]
cd0c342131 Merge pull request #11840 from firefly-iii/release-1772348895
🤖 Automatically merge the PR into the develop branch.
2026-03-01 08:08:24 +01:00
JC5
bb51baaa38 🤖 Auto commit for release 'develop' on 2026-03-01 2026-03-01 08:08:15 +01:00
James Cole
6bae8ab70a Fix date range issue. 2026-03-01 06:52:26 +01:00
James Cole
88030784a5 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2026-03-01 06:40:03 +01:00
James Cole
53b733fddb Merge pull request #11837 from dakennguyen/convert-primary-currency-transaction-charts
Convert to primary currency for transaction charts
2026-03-01 06:39:37 +01:00
James Cole
ca89159ccd Merge pull request #11836 from dakennguyen/convert-primary-currency-report-period-chart
Convert to primary currency for reportPeriodChart
2026-03-01 06:39:11 +01:00
James Cole
a5db3dd2e9 Merge pull request #11825 from mgrove36/develop
Fix account transaction type filtering
2026-03-01 06:37:29 +01:00
James Cole
b299465fb2 Merge branch 'develop' into develop
Signed-off-by: James Cole <james@firefly-iii.org>
2026-03-01 06:37:15 +01:00
James Cole
12a877d489 Fix #11812 2026-03-01 06:35:39 +01:00
Khoa Nguyen
7f64251a55 Convert to primary currency for transaction charts 2026-02-28 15:43:58 +01:00
Khoa Nguyen
c06d8263d8 Convert to primary currency for reportPeriodChart 2026-02-28 14:55:00 +01:00
James Cole
5451328ea6 Merge pull request #11835 from dakennguyen/convert-primary-currency-tag-report
Convert to primary currency for tag charts
2026-02-28 13:25:02 +01:00
Khoa Nguyen
3e5ef0b431 Convert to primary currency for tag charts 2026-02-28 13:19:58 +01:00
James Cole
87fb1fcc92 Merge pull request #11833 from dakennguyen/convert-primary-currency
Convert to primary currency for category charts
2026-02-28 12:36:13 +01:00
Khoa Nguyen
85da46243b Convert to primary currency for category charts 2026-02-28 11:04:53 +01:00
github-actions[bot]
c44711e9bd Merge pull request #11831 from firefly-iii/release-1772261367
🤖 Automatically merge the PR into the develop branch.
2026-02-28 07:49:34 +01:00
JC5
18161450e4 🤖 Auto commit for release 'develop' on 2026-02-28 2026-02-28 07:49:27 +01:00
James Cole
b48b2a411a Remove amount when nothing left. 2026-02-28 07:45:26 +01:00
Matthew Grove
0c0736d336 Fix account transaction type filtering
Address issue #11822
2026-02-27 13:44:21 +00:00
391 changed files with 1153 additions and 1288 deletions

View File

@@ -5,14 +5,60 @@ parameters:
- ../routes
- ../config
- ../bootstrap/app.php
- ../bootstrap/providers.php
universalObjectCratesClasses:
- Illuminate\Database\Eloquent\Model
reportUnmatchedIgnoredErrors: true
ignoreErrors:
# these are actually interesting but not right now:
- identifier: notIdentical.alwaysTrue
- identifier: method.notFound
- identifier: nullsafe.neverNull
- identifier: identical.alwaysFalse
- identifier: if.condNotBoolean
# - identifier: booleanNot.exprNotBoolean
- identifier: method.nonObject
- identifier: function.impossibleType
- identifier: booleanNot.exprNotBoolean
- identifier: ternary.condNotBoolean
- identifier: booleanNot.alwaysFalse
- identifier: booleanAnd.alwaysFalse
- identifier: greater.alwaysTrue
- identifier: function.alreadyNarrowedType
- identifier: booleanNot.alwaysTrue
- identifier: property.phpDocType
- identifier: nullCoalesce.offset
- identifier: nullCoalesce.variable
- identifier: larastan.noUnnecessaryCollectionCall
- identifier: varTag.differentVariable
- identifier: identical.alwaysTrue
- identifier: clone.nonObject
- identifier: assign.propertyReadOnly
- identifier: property.nonObject
- identifier: varTag.nativeType
- identifier: booleanAnd.leftAlwaysFalse
- identifier: property.onlyWritten
- identifier: parameter.phpDocType
- identifier: property.dynamicName
- identifier: property.unusedType
- identifier: staticMethod.deprecated
- identifier: greater.invalid
- identifier: instanceof.alwaysTrue
# ignore everything but things that BREAK
- identifier: property.deprecated
- identifier: method.deprecated
- identifier: cast.useless
- identifier: parameter.deprecatedClass
- identifier: method.deprecatedClass
- identifier: argument.type
- identifier: return.type
- identifier: assign.propertyType
- identifier: return.unusedType
- identifier: return.phpDocType
# all errors below I will never fix.
- '#expects view-string\|null, string given#'
- '#expects view-string, string given#'
- "#Parameter \\#[1-2] \\$num[1-2] of function bc[a-z]+ expects numeric-string, [a-z\\-|&]+ given#"
# - '#expects view-string\|null, string given#'
# - '#expects view-string, string given#'
# - "#Parameter \\#[1-2] \\$num[1-2] of function bc[a-z]+ expects numeric-string, [a-z\\-|&]+ given#"
- identifier: missingType.generics # not interesting enough to fix.
-
identifier: larastan.noEnvCallsOutsideOfConfig
@@ -20,11 +66,11 @@ parameters:
- identifier: missingType.iterableValue # not interesting enough to fix.
- identifier: varTag.type # needs a custom extension for every repository, not gonna happen.
- '#Dynamic call to static method Illuminate#'
- '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::before#' # is custom scope
- '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::after#' # is custom scope
- '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::withTrashed#' # is to allow soft delete
- '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::accountTypeIn#' # is a custom scope
- '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\BelongsTo::withTrashed#' # is to allow soft delete
# - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::before#' # is custom scope
# - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::after#' # is custom scope
# - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::withTrashed#' # is to allow soft delete
# - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::accountTypeIn#' # is a custom scope
# - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\BelongsTo::withTrashed#' # is to allow soft delete
# The level 8 is the highest level. original was 5
# 7 is more than enough, higher just leaves NULL things.

BIN
.github/assets/img/europe.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -174,12 +174,22 @@ jobs:
uses: nhedger/setup-mago@v1
- name: Run CI
run: |
# install all packages etc.
rm -rf vendor composer.lock
composer update --no-scripts --no-plugins -q
# format code.
echo "Will now run Mago Format"
mago format || true
# mago analyze --reporting-format=github || true
sudo chown -R runner:docker resources/lang
echo "Will now run PHPCS"
.ci/phpcs.sh || true
# lint and check
echo "Will now run Mago Lint"
mago lint || true
echo "Will now run PHPstan"
.ci/phpstan.sh || true
- name: Calculate variables
run: |

View File

@@ -4,6 +4,7 @@ Over time, many people have contributed to Firefly III. Their efforts are not al
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
## 2026
- Matthew Grove
- Cinnamon Pyro
- R1DEN
- RiDEN

View File

@@ -41,7 +41,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class AccountController
*/
class AccountController extends Controller
final class AccountController extends Controller
{
use AccountFilter;

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class BillController
*/
class BillController extends Controller
final class BillController extends Controller
{
private BillRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_SUBSCRIPTIONS];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class BudgetController
*/
class BudgetController extends Controller
final class BudgetController extends Controller
{
private BudgetRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_BUDGETS];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class CategoryController
*/
class CategoryController extends Controller
final class CategoryController extends Controller
{
private CategoryRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -37,7 +37,7 @@ use Illuminate\Http\Request;
/**
* Class CurrencyController
*/
class CurrencyController extends Controller
final class CurrencyController extends Controller
{
private CurrencyRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class ObjectGroupController
*/
class ObjectGroupController extends Controller
final class ObjectGroupController extends Controller
{
private ObjectGroupRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -38,7 +38,7 @@ use Illuminate\Http\Request;
/**
* Class PiggyBankController
*/
class PiggyBankController extends Controller
final class PiggyBankController extends Controller
{
private AccountRepositoryInterface $accountRepository;
private PiggyBankRepositoryInterface $piggyRepository;

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class RecurrenceController
*/
class RecurrenceController extends Controller
final class RecurrenceController extends Controller
{
private RecurringRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RECURRING];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class RuleController
*/
class RuleController extends Controller
final class RuleController extends Controller
{
private RuleRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RULES];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class RuleGroupController
*/
class RuleGroupController extends Controller
final class RuleGroupController extends Controller
{
private RuleGroupRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RULES];

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class TagController
*/
class TagController extends Controller
final class TagController extends Controller
{
private TagRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -39,7 +39,7 @@ use Illuminate\Support\Collection;
/**
* Class TransactionController
*/
class TransactionController extends Controller
final class TransactionController extends Controller
{
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
private TransactionGroupRepositoryInterface $groupRepository;

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
/**
* Class TransactionTypeController
*/
class TransactionTypeController extends Controller
final class TransactionTypeController extends Controller
{
private TransactionTypeRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -44,7 +44,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class AccountController
*/
class AccountController extends Controller
final class AccountController extends Controller
{
use ApiSupport;
use CleansChartData;

View File

@@ -40,7 +40,7 @@ use Illuminate\Http\Request;
/**
* Class BalanceController
*/
class BalanceController extends Controller
final class BalanceController extends Controller
{
use CleansChartData;
use CollectsAccountsFromFilter;

View File

@@ -47,7 +47,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class BudgetController
*/
class BudgetController extends Controller
final class BudgetController extends Controller
{
use CleansChartData;
use ValidatesUserGroupTrait;

View File

@@ -45,7 +45,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class BudgetController
*/
class CategoryController extends Controller
final class CategoryController extends Controller
{
use CleansChartData;
use ValidatesUserGroupTrait;

View File

@@ -42,7 +42,7 @@ use Illuminate\Http\Request;
* Because this is a security nightmare waiting to happen validation
* is pretty strict.
*/
class TransactionController extends Controller
final class TransactionController extends Controller
{
private AccountRepositoryInterface $repository;

View File

@@ -54,7 +54,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private bool $unused;

View File

@@ -38,7 +38,7 @@ use function Safe\date;
/**
* Class ExportController
*/
class ExportController extends Controller
final class ExportController extends Controller
{
private ExportDataGenerator $exporter;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];

View File

@@ -44,7 +44,7 @@ use Illuminate\Http\Request;
/**
* Class PurgeController
*/
class PurgeController extends Controller
final class PurgeController extends Controller
{
protected array $acceptedRoles = [UserRoleEnum::FULL];

View File

@@ -37,7 +37,7 @@ use Illuminate\Http\JsonResponse;
* Shows expense information grouped or limited by date.
* I.e. all expenses grouped by account + currency.
*/
class AccountController extends Controller
final class AccountController extends Controller
{
use ApiSupport;

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class BillController
*/
class BillController extends Controller
final class BillController extends Controller
{
private BillRepositoryInterface $repository;

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Collection;
/**
* Class BudgetController
*/
class BudgetController extends Controller
final class BudgetController extends Controller
{
private NoBudgetRepositoryInterface $noRepository;
private OperationsRepositoryInterface $opsRepository;

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Collection;
/**
* Class CategoryController
*/
class CategoryController extends Controller
final class CategoryController extends Controller
{
private NoCategoryRepositoryInterface $noRepository;
private OperationsRepositoryInterface $opsRepository;

View File

@@ -35,7 +35,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class PeriodController
*/
class PeriodController extends Controller
final class PeriodController extends Controller
{
public function total(GenericRequest $request): JsonResponse
{

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Facades\Log;
/**
* Class TagController
*/
class TagController extends Controller
final class TagController extends Controller
{
private TagRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use Illuminate\Http\JsonResponse;
* Shows income information grouped or limited by date.
* I.e. all income grouped by account + currency.
*/
class AccountController extends Controller
final class AccountController extends Controller
{
use ApiSupport;

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Collection;
/**
* Class CategoryController
*/
class CategoryController extends Controller
final class CategoryController extends Controller
{
private NoCategoryRepositoryInterface $noRepository;
private OperationsRepositoryInterface $opsRepository;

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class PeriodController
*/
class PeriodController extends Controller
final class PeriodController extends Controller
{
public function total(GenericRequest $request): JsonResponse
{

View File

@@ -36,7 +36,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class TagController
*/
class TagController extends Controller
final class TagController extends Controller
{
private TagRepositoryInterface $repository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class AccountController
*/
class AccountController extends Controller
final class AccountController extends Controller
{
use ApiSupport;

View File

@@ -36,7 +36,7 @@ use Illuminate\Support\Collection;
/**
* Class CategoryController
*/
class CategoryController extends Controller
final class CategoryController extends Controller
{
private NoCategoryRepositoryInterface $noRepository;
private OperationsRepositoryInterface $opsRepository;

View File

@@ -35,7 +35,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class PeriodController
*/
class PeriodController extends Controller
final class PeriodController extends Controller
{
public function total(GenericRequest $request): JsonResponse
{

View File

@@ -36,7 +36,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class TagController
*/
class TagController extends Controller
final class TagController extends Controller
{
private TagRepositoryInterface $repository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
public const string RESOURCE_KEY = 'accounts';

View File

@@ -25,7 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Account;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Transaction\ListRequest;
use FireflyIII\Api\V1\Requests\Generic\PaginationDateRangeRequest;
use FireflyIII\Api\V1\Requests\PaginationRequest;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Account;
@@ -46,7 +46,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;
@@ -126,23 +126,18 @@ class ListController extends Controller
/**
* Show all transaction groups related to the account.
*/
public function transactions(ListRequest $request, Account $account): JsonResponse
public function transactions(PaginationDateRangeRequest $request, Account $account): JsonResponse
{
[
'limit' => $limit,
'page' => $page,
'start' => $start,
'end' => $end,
'types' => $types,
] = $request->attributes->all();
$manager = $this->getManager();
['limit' => $limit, 'page' => $page, 'start' => $start, 'end' => $end, 'type' => $type] = $request->attributes->all();
$types = $this->mapTransactionTypes($type ?? 'default');
$manager = $this->getManager();
/** @var User $admin */
$admin = auth()->user();
$admin = auth()->user();
// use new group collector:
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setUser($admin)->setAccounts(new Collection()->push($account))->withAPIInformation()->setLimit($limit)->setPage($page)->setTypes($types);
if (null !== $start) {
$collector->setStart($start);
@@ -151,18 +146,18 @@ class ListController extends Controller
$collector->setEnd($end);
}
$paginator = $collector->getPaginatedGroups();
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.accounts.transactions', [$account->id]).$this->buildParams());
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
$transformer = app(TransactionGroupTransformer::class);
$resource = new FractalCollection($transactions, $transformer, 'transactions');
$resource = new FractalCollection($transactions, $transformer, 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);

View File

@@ -41,7 +41,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
use AccountFilter;

View File

@@ -36,7 +36,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
public const string RESOURCE_KEY = 'accounts';

View File

@@ -39,7 +39,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
public const string RESOURCE_KEY = 'accounts';

View File

@@ -37,7 +37,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private AttachmentRepositoryInterface $repository;

View File

@@ -44,7 +44,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private AttachmentRepositoryInterface $repository;

View File

@@ -42,7 +42,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private AttachmentRepositoryInterface $repository;

View File

@@ -39,7 +39,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private AttachmentRepositoryInterface $repository;

View File

@@ -40,7 +40,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private AvailableBudgetRepositoryInterface $abRepository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private BillRepositoryInterface $repository;

View File

@@ -44,7 +44,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;

View File

@@ -41,7 +41,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private BillRepositoryInterface $repository;

View File

@@ -38,7 +38,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
use TransactionFilter;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private BillRepositoryInterface $repository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private BudgetRepositoryInterface $repository;

View File

@@ -44,7 +44,7 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
// Class ListController
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;

View File

@@ -40,7 +40,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private BudgetLimitRepositoryInterface $blRepository;
private BudgetRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private BudgetRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private BudgetRepositoryInterface $repository;

View File

@@ -36,7 +36,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private BudgetLimitRepositoryInterface $blRepository;

View File

@@ -40,7 +40,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;

View File

@@ -44,7 +44,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private BudgetLimitRepositoryInterface $blRepository;
private BudgetRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private BudgetLimitRepositoryInterface $blRepository;

View File

@@ -39,7 +39,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private BudgetLimitRepositoryInterface $blRepository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private CategoryRepositoryInterface $repository;

View File

@@ -42,7 +42,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;

View File

@@ -39,7 +39,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private CategoryRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private CategoryRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private CategoryRepositoryInterface $repository;

View File

@@ -36,7 +36,7 @@ use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DestroyController extends Controller
final class DestroyController extends Controller
{
use ValidatesUserGroupTrait;

View File

@@ -36,7 +36,7 @@ use Illuminate\Pagination\LengthAwarePaginator;
/**
* Class ShowController
*/
class IndexController extends Controller
final class IndexController extends Controller
{
use ValidatesUserGroupTrait;

View File

@@ -40,7 +40,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
use ValidatesUserGroupTrait;

View File

@@ -41,7 +41,7 @@ use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
class StoreController extends Controller
final class StoreController extends Controller
{
use ValidatesUserGroupTrait;

View File

@@ -37,7 +37,7 @@ use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class UpdateController extends Controller
final class UpdateController extends Controller
{
use ValidatesUserGroupTrait;

View File

@@ -34,7 +34,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private ObjectGroupRepositoryInterface $repository;

View File

@@ -40,7 +40,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
private ObjectGroupRepositoryInterface $repository;

View File

@@ -38,7 +38,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private ObjectGroupRepositoryInterface $repository;

View File

@@ -36,7 +36,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private ObjectGroupRepositoryInterface $repository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private PiggyBankRepositoryInterface $repository;

View File

@@ -41,7 +41,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
private PiggyBankRepositoryInterface $repository;

View File

@@ -39,7 +39,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private PiggyBankRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private PiggyBankRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private PiggyBankRepositoryInterface $repository;

View File

@@ -33,7 +33,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private RecurringRepositoryInterface $repository;

View File

@@ -40,7 +40,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
use TransactionFilter;

View File

@@ -39,7 +39,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private RecurringRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private RecurringRepositoryInterface $repository;

View File

@@ -41,7 +41,7 @@ use Illuminate\Support\Facades\Log;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
class TriggerController extends Controller
final class TriggerController extends Controller
{
private RecurringRepositoryInterface $repository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private RecurringRepositoryInterface $repository;

View File

@@ -34,7 +34,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private RuleRepositoryInterface $ruleRepository;

View File

@@ -31,7 +31,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class ExpressionController
*/
class ExpressionController extends Controller
final class ExpressionController extends Controller
{
/**
* This endpoint is documented at:

View File

@@ -38,7 +38,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private RuleRepositoryInterface $ruleRepository;

View File

@@ -35,7 +35,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private RuleRepositoryInterface $ruleRepository;

View File

@@ -42,7 +42,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class TriggerController
*/
class TriggerController extends Controller
final class TriggerController extends Controller
{
private RuleRepositoryInterface $ruleRepository;

View File

@@ -36,7 +36,7 @@ use League\Fractal\Resource\Item;
/**
* Class UpdateController
*/
class UpdateController extends Controller
final class UpdateController extends Controller
{
private RuleRepositoryInterface $ruleRepository;

View File

@@ -34,7 +34,7 @@ use Illuminate\Http\JsonResponse;
/**
* Class DestroyController
*/
class DestroyController extends Controller
final class DestroyController extends Controller
{
private RuleGroupRepositoryInterface $ruleGroupRepository;

View File

@@ -37,7 +37,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class ListController
*/
class ListController extends Controller
final class ListController extends Controller
{
private RuleGroupRepositoryInterface $ruleGroupRepository;

View File

@@ -38,7 +38,7 @@ use League\Fractal\Resource\Item;
/**
* Class ShowController
*/
class ShowController extends Controller
final class ShowController extends Controller
{
private RuleGroupRepositoryInterface $ruleGroupRepository;

View File

@@ -36,7 +36,7 @@ use League\Fractal\Resource\Item;
/**
* Class StoreController
*/
class StoreController extends Controller
final class StoreController extends Controller
{
private AccountRepositoryInterface $accountRepository;
private RuleGroupRepositoryInterface $ruleGroupRepository;

View File

@@ -43,7 +43,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
/**
* Class TriggerController
*/
class TriggerController extends Controller
final class TriggerController extends Controller
{
private RuleGroupRepositoryInterface $ruleGroupRepository;

Some files were not shown because too many files have changed in this diff Show More