Compare commits

..

1608 Commits

Author SHA1 Message Date
github-actions[bot] 22f67be0b5 Merge pull request #11012 from firefly-iii/release-1759813983
🤖 Automatically merge the PR into the develop branch.
2025-10-07 07:13:10 +02:00
JC5 0e1633b52b 🤖 Auto commit for release 'develop' on 2025-10-07 2025-10-07 07:13:03 +02:00
James Cole 0070e000b6 Fix changelog. 2025-10-07 07:09:12 +02:00
James Cole c525a18263 Add subSecond routine. 2025-10-07 07:06:54 +02:00
James Cole 68fbd8d5f4 Merge pull request #11011 from ctrl-f5/fix/currency-account-list-range
Fix #11010 currency account list range
2025-10-07 07:05:15 +02:00
mergify[bot] 0724c005cf Merge branch 'develop' into fix/currency-account-list-range 2025-10-06 20:45:49 +00:00
Nicky De Maeyer e662275400 use the start and end date to enrich the accounts 2025-10-06 22:41:29 +02:00
James Cole def2dd77ab Fix #11003 2025-10-06 20:45:20 +02:00
James Cole 36e87f3383 Fix #11007 and fix #11005 2025-10-06 20:43:47 +02:00
github-actions[bot] e420752991 Merge pull request #11004 from firefly-iii/release-1759720893
🤖 Automatically merge the PR into the develop branch.
2025-10-06 05:21:43 +02:00
JC5 c541cf48c3 🤖 Auto commit for release 'develop' on 2025-10-06 2025-10-06 05:21:33 +02:00
James Cole 521db984ab More user friendly message. 2025-10-05 13:09:42 +02:00
github-actions[bot] b2b3c3f135 Merge pull request #11002 from firefly-iii/release-1759662231
🤖 Automatically merge the PR into the develop branch.
2025-10-05 13:03:58 +02:00
JC5 b0033cf9ed 🤖 Auto commit for release 'develop' on 2025-10-05 2025-10-05 13:03:51 +02:00
James Cole 50279d623c More code cleanup 2025-10-05 12:59:43 +02:00
James Cole 6341743cf9 Various code cleanup. 2025-10-05 12:57:58 +02:00
James Cole 072212c112 Replace log. 2025-10-05 12:49:39 +02:00
James Cole 362705ec71 Add missing entry. 2025-10-05 07:47:36 +02:00
github-actions[bot] 6ce926e7d2 Merge pull request #10996 from firefly-iii/release-1759466816
🤖 Automatically merge the PR into the develop branch.
2025-10-03 06:47:04 +02:00
JC5 1652c3af72 🤖 Auto commit for release 'develop' on 2025-10-03 2025-10-03 06:46:56 +02:00
James Cole 012172b0b5 Add statistics routine to update event. 2025-10-03 06:42:24 +02:00
James Cole 957bc00847 Add statistics to budget, although unused atm. 2025-10-03 06:41:42 +02:00
github-actions[bot] 7f827fb277 Merge pull request #10995 from firefly-iii/release-1759464256
🤖 Automatically merge the PR into the develop branch.
2025-10-03 06:04:22 +02:00
JC5 8e700944fd 🤖 Auto commit for release 'develop' on 2025-10-03 2025-10-03 06:04:16 +02:00
James Cole 037a128942 Add missing translation. 2025-10-03 05:57:21 +02:00
James Cole ca364dc877 Remove stats from empty objects. 2025-10-03 05:53:50 +02:00
James Cole e55af7186c Fix #10994 2025-10-03 05:24:24 +02:00
James Cole 354bbebbee Fix #10965 2025-10-02 19:52:51 +02:00
James Cole a70fab1e87 Clean up piggy alerts. 2025-10-02 19:49:32 +02:00
James Cole b9c93091cd Merge pull request #10993 from ctrl-f5/fix/report-category-trans-key
use correct translation key for category report income table
2025-10-02 10:41:56 +02:00
Nicky De Maeyer 4349f8f303 Merge branch 'develop' into fix/report-category-trans-key 2025-10-02 10:31:35 +02:00
Nicky De Maeyer 5088e20f25 use correct translation key for category report income table 2025-10-02 10:25:11 +02:00
Sander Dorigo 3f81aa7403 Fix #10988 2025-10-02 10:15:18 +02:00
github-actions[bot] 8885d1dbeb Merge pull request #10992 from firefly-iii/release-1759383569
🤖 Automatically merge the PR into the develop branch.
2025-10-02 07:39:36 +02:00
JC5 a6ba75d528 🤖 Auto commit for release 'develop' on 2025-10-02 2025-10-02 07:39:29 +02:00
github-actions[bot] 667cbb1332 Merge pull request #10991 from firefly-iii/release-1759381485
🤖 Automatically merge the PR into the develop branch.
2025-10-02 07:04:53 +02:00
JC5 d1bae875f7 🤖 Auto commit for release 'develop' on 2025-10-02 2025-10-02 07:04:45 +02:00
James Cole c5cf529413 Update changelog. 2025-10-02 06:59:56 +02:00
James Cole 62b9f2785f Ignore db version in scripts. 2025-10-02 06:55:09 +02:00
James Cole 3b85f87502 Stop using "db_version", check versions instead. 2025-10-02 06:53:23 +02:00
James Cole 87d3d14504 Fix #10990 2025-10-01 20:28:24 +02:00
github-actions[bot] 5637573fd0 Merge pull request #10982 from firefly-iii/release-1759116145
🤖 Automatically merge the PR into the develop branch.
2025-09-29 05:22:35 +02:00
JC5 48255ae6ee 🤖 Auto commit for release 'develop' on 2025-09-29 2025-09-29 05:22:25 +02:00
James Cole ea02986170 Merge pull request #10979 from maksimkurb/patch-1
Add Kazakhstani Tenge (KZT) currency
2025-09-28 15:28:15 +02:00
mergify[bot] f4fbc15ac6 Merge branch 'develop' into patch-1 2025-09-28 07:17:01 +00:00
Maxim Kurbatov a02c4b42a4 Add Kazakhstani Tenge (KZT) currency
Signed-off-by: Maxim Kurbatov <maxim@kurb.me>
2025-09-28 11:49:37 +05:00
James Cole 1ff47441ce Also add no budget and no category overview. 2025-09-27 16:07:03 +02:00
James Cole 2cc8568077 Clean up code. 2025-09-27 06:40:56 +02:00
github-actions[bot] 408687ec6b Merge pull request #10975 from firefly-iii/release-1758945886
🤖 Automatically merge the PR into the develop branch.
2025-09-27 06:04:55 +02:00
JC5 308abffb0b 🤖 Auto commit for release 'develop' on 2025-09-27 2025-09-27 06:04:46 +02:00
James Cole 6743b3fe83 Remove stats for other objects as well. 2025-09-27 06:01:14 +02:00
James Cole ac0113e445 Fix some rector code. 2025-09-27 05:57:58 +02:00
James Cole 0f0a28c3d9 Add cached periods for tags. 2025-09-27 05:49:22 +02:00
James Cole 79f2d70211 Fix #10974 2025-09-27 05:35:20 +02:00
James Cole 8a06c0f7ec Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Support/Http/Controllers/PeriodOverview.php
2025-09-27 05:32:41 +02:00
James Cole c54da62005 Enable period statistics for category. 2025-09-27 05:31:26 +02:00
github-actions[bot] e5923202af Merge pull request #10973 from firefly-iii/release-1758914746
🤖 Automatically merge the PR into the develop branch.
2025-09-26 21:25:55 +02:00
JC5 eb6f78406e 🤖 Auto commit for release 'develop' on 2025-09-26 2025-09-26 21:25:46 +02:00
James Cole d61f87f649 Fix URL 2025-09-26 20:47:44 +02:00
James Cole 33dcce7525 Optimize query for collecting transactions. 2025-09-26 20:46:23 +02:00
James Cole b1d86c3a37 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Models/PeriodStatistic.php
2025-09-26 19:48:46 +02:00
James Cole 822dee6e70 Allow statistics to be removed from /flush 2025-09-26 19:48:20 +02:00
github-actions[bot] f6dac83777 Merge pull request #10972 from firefly-iii/release-1758908619
🤖 Automatically merge the PR into the develop branch.
2025-09-26 19:43:52 +02:00
JC5 d3c557ca22 🤖 Auto commit for release 'develop' on 2025-09-26 2025-09-26 19:43:39 +02:00
James Cole 853a99852e Also remove them when updating transactions. 2025-09-26 19:39:18 +02:00
James Cole 8f24ac4fcd Remove statistics when creating a new journal. 2025-09-26 19:38:26 +02:00
James Cole 8b09cfb8c9 Optimize query for period statistics. 2025-09-26 19:32:53 +02:00
James Cole 18ae950d2e Optimize queries. 2025-09-26 06:09:44 +02:00
James Cole 69dfbda847 Add empty statistic if necessary. 2025-09-26 06:06:43 +02:00
James Cole 4ec2fcdb8a Optimize queries for statistics. 2025-09-26 06:05:37 +02:00
James Cole 08879d31ba Rearrange some code. 2025-09-26 05:33:35 +02:00
James Cole 66d09450d3 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-25 19:17:20 +02:00
James Cole 74f7c07a76 Add filter for transfer type. 2025-09-25 19:17:10 +02:00
github-actions[bot] ae3d0a3e49 Merge pull request #10964 from firefly-iii/release-1758820271
🤖 Automatically merge the PR into the develop branch.
2025-09-25 19:11:21 +02:00
JC5 61e8d7d7a2 🤖 Auto commit for release 'develop' on 2025-09-25 2025-09-25 19:11:11 +02:00
James Cole 62c5440605 Add table for period statistics, and see what happens re: performance. 2025-09-25 19:07:02 +02:00
James Cole 0aa90b9453 Fix #10960 2025-09-24 19:51:39 +02:00
Sander Dorigo 855bc2f8e7 attempted fix for #10956 2025-09-24 14:39:54 +02:00
github-actions[bot] d8f05492c3 Merge pull request #10955 from firefly-iii/release-1758652896
🤖 Automatically merge the PR into the develop branch.
2025-09-23 20:41:46 +02:00
JC5 4a264f34fa 🤖 Auto commit for release 'develop' on 2025-09-23 2025-09-23 20:41:36 +02:00
James Cole 5a1413e758 Fix #10954 2025-09-23 20:22:58 +02:00
github-actions[bot] 84dbeeb0ce Merge pull request #10946 from firefly-iii/release-1758511378
🤖 Automatically merge the PR into the develop branch.
2025-09-22 05:23:04 +02:00
JC5 d868dc0945 🤖 Auto commit for release 'develop' on 2025-09-22 2025-09-22 05:22:58 +02:00
James Cole beecf9c229 Make sure demo user cannot send notifications. 2025-09-21 18:00:23 +02:00
github-actions[bot] e39ba46398 Merge pull request #10943 from firefly-iii/release-1758470243
🤖 Automatically merge the PR into the develop branch.
2025-09-21 17:57:31 +02:00
JC5 e6b6a3cee5 🤖 Auto commit for release 'develop' on 2025-09-21 2025-09-21 17:57:23 +02:00
James Cole b5483f6ad3 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-21 17:52:16 +02:00
James Cole a751218d53 Fix rule order for #10938 2025-09-21 17:52:07 +02:00
github-actions[bot] 2af5e6eeef Merge pull request #10942 from firefly-iii/release-1758460508
🤖 Automatically merge the PR into the develop branch.
2025-09-21 15:15:17 +02:00
JC5 013c43f9f2 🤖 Auto commit for release 'develop' on 2025-09-21 2025-09-21 15:15:08 +02:00
James Cole 7e08a1f33c Possible fix for #10940, not sure. 2025-09-21 15:11:16 +02:00
James Cole e592b56d7a Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-21 15:06:32 +02:00
github-actions[bot] a2479f71fe Merge pull request #10937 from firefly-iii/release-1758437913
🤖 Automatically merge the PR into the develop branch.
2025-09-21 08:58:42 +02:00
JC5 7d3b993b98 🤖 Auto commit for release 'develop' on 2025-09-21 2025-09-21 08:58:33 +02:00
James Cole 90623101a3 Add earned + spent, needs cleaning up still. 2025-09-21 08:54:26 +02:00
github-actions[bot] e2eca79b25 Merge pull request #10936 from firefly-iii/release-1758436089
🤖 Automatically merge the PR into the develop branch.
2025-09-21 08:28:16 +02:00
JC5 8c0ee8f024 🤖 Auto commit for release 'develop' on 2025-09-21 2025-09-21 08:28:09 +02:00
James Cole 69cae3ae55 Fix autocomplete. 2025-09-21 08:13:13 +02:00
James Cole 8a06298385 Repair charts and balances. 2025-09-21 07:35:46 +02:00
James Cole acc3c294d8 Fix #10924 2025-09-17 20:46:03 +02:00
James Cole dbf7dba421 Fix #10916 2025-09-17 20:04:24 +02:00
James Cole 65813f290d Expand changelog. 2025-09-17 13:48:56 +02:00
James Cole 3491fbb99d Force account search to validate it did not just find the source account. #10920 2025-09-17 07:09:40 +02:00
James Cole cb6b3d5f85 Fix #10891 2025-09-16 21:09:29 +02:00
github-actions[bot] 956d4e09c3 Merge pull request #10917 from firefly-iii/release-1758048927
🤖 Automatically merge the PR into the develop branch.
2025-09-16 20:55:35 +02:00
JC5 6a7c35e7bc 🤖 Auto commit for release 'develop' on 2025-09-16 2025-09-16 20:55:27 +02:00
James Cole 090aecb5f5 Clean up command. 2025-09-16 20:50:25 +02:00
James Cole b653d63d3d Add new correction command, will probably fix #10833 2025-09-16 20:44:54 +02:00
github-actions[bot] 258dbf4a98 Merge pull request #10913 from firefly-iii/release-1757957159
🤖 Automatically merge the PR into the develop branch.
2025-09-15 19:26:09 +02:00
JC5 53335077ff 🤖 Auto commit for release 'develop' on 2025-09-15 2025-09-15 19:25:59 +02:00
James Cole ecfb3e2f95 Fix #10854 and another issue (again). 2025-09-15 19:20:51 +02:00
github-actions[bot] f512e6724e Merge pull request #10911 from firefly-iii/release-1757906627
🤖 Automatically merge the PR into the develop branch.
2025-09-15 05:23:56 +02:00
JC5 de9efb0727 🤖 Auto commit for release 'develop' on 2025-09-15 2025-09-15 05:23:47 +02:00
James Cole 9075fa8ac8 Allow webhooks to be send for budget limit update. 2025-09-14 09:21:32 +02:00
James Cole 768bd892c8 Allow sending of webhooks from budget limit store. 2025-09-14 09:14:41 +02:00
James Cole 9d9483e20f Refactor models. 2025-09-14 09:00:01 +02:00
James Cole 935453796e Allow budget update to have webhooks controlled with "fire_webhooks" 2025-09-14 08:59:00 +02:00
James Cole c2d3f5da16 Allow budget store to have optional webhook using "fire_webhooks". 2025-09-14 08:55:29 +02:00
James Cole 9e6f9d16e4 Move observers to attributes. 2025-09-14 08:55:08 +02:00
James Cole fad016f92f Update changelog. 2025-09-14 07:46:46 +02:00
James Cole 30df6684cb Fix another missing filter for #10803 2025-09-14 07:45:54 +02:00
James Cole 4aa911420a Merge branch 'main' into develop 2025-09-13 18:53:00 +02:00
github-actions[bot] 19555a7046 Merge pull request #10907 from firefly-iii/release-1757782324
🤖 Automatically merge the PR into the develop branch.
2025-09-13 18:52:14 +02:00
JC5 e5c409a8fc 🤖 Auto commit for release 'develop' on 2025-09-13 2025-09-13 18:52:04 +02:00
github-actions[bot] 3adf3d2fdb Merge pull request #10906 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-09-13 18:38:12 +02:00
github-actions[bot] 0923d5a23e Merge pull request #10905 from firefly-iii/release-1757781480
🤖 Automatically merge the PR into the develop branch.
2025-09-13 18:38:07 +02:00
JC5 76b8cdc385 🤖 Auto commit for release 'v6.4.0' on 2025-09-13 2025-09-13 18:38:00 +02:00
James Cole 0a27da83eb Merge branch 'main' into develop
# Conflicts:
#	.github/workflows/release.yml
2025-09-13 18:33:47 +02:00
github-actions[bot] 17d6e2be85 Merge pull request #10903 from firefly-iii/release-1757781134
🤖 Automatically merge the PR into the develop branch.
2025-09-13 18:32:20 +02:00
JC5 7381f3eba9 🤖 Auto commit for release 'v6.4.0' on 2025-09-13 2025-09-13 18:32:14 +02:00
James Cole 7f2ef1b8e1 Should not be necessary, but OK/ 2025-09-13 18:28:26 +02:00
github-actions[bot] 9dccae2402 Merge pull request #10901 from firefly-iii/release-1757780827
🤖 Automatically merge the PR into the develop branch.
2025-09-13 18:27:17 +02:00
JC5 073afd5b6e 🤖 Auto commit for release 'v6.4.0' on 2025-09-13 2025-09-13 18:27:07 +02:00
James Cole 4167d85be2 Expand changelog. 2025-09-13 07:30:50 +02:00
James Cole ee28d1307d Fix #10871 2025-09-13 07:30:30 +02:00
James Cole 7562215666 Add some extra explanation. 2025-09-13 07:24:03 +02:00
github-actions[bot] 0203b918e9 Merge pull request #10899 from firefly-iii/release-1757740712
🤖 Automatically merge the PR into the develop branch.
2025-09-13 07:18:41 +02:00
JC5 ae7c664418 🤖 Auto commit for release 'develop' on 2025-09-13 2025-09-13 07:18:32 +02:00
James Cole f13e0991fb Fix #10898 2025-09-13 07:13:30 +02:00
James Cole deae94b658 Set user ID from object, fix #10891 2025-09-11 19:37:34 +02:00
James Cole c38c752520 Fix #10888 2025-09-10 20:42:15 +02:00
James Cole 28e7df2527 Small php fixes. 2025-09-10 16:16:31 +02:00
James Cole cb0b42e44b Replace method calls. 2025-09-10 16:07:19 +02:00
James Cole a3674c4dfe No need to use the exception either. 2025-09-10 07:03:41 +02:00
James Cole 27480561ee Catch random exception because why not. 2025-09-10 07:03:23 +02:00
github-actions[bot] 6ea7152423 Merge pull request #10886 from firefly-iii/release-1757480185
🤖 Automatically merge the PR into the develop branch.
2025-09-10 06:56:34 +02:00
JC5 dab95f7a86 🤖 Auto commit for release 'develop' on 2025-09-10 2025-09-10 06:56:25 +02:00
James Cole adf34805a8 Shiny release PR. 2025-09-10 06:52:51 +02:00
James Cole 93e926465f Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-10 06:51:11 +02:00
github-actions[bot] 5b0be91f93 Merge pull request #10885 from firefly-iii/release-1757479782
🤖 Automatically merge the PR into the develop branch.
2025-09-10 06:49:50 +02:00
JC5 01e7b604da 🤖 Auto commit for release 'develop' on 2025-09-10 2025-09-10 06:49:42 +02:00
James Cole 974a550d22 Merge branch 'main' into develop 2025-09-10 06:44:16 +02:00
James Cole 58d175444b Fix #10883 2025-09-10 06:43:24 +02:00
James Cole 29d8861e96 Merge pull request #10882 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-f5c1666f0c 2025-09-10 06:02:57 +02:00
dependabot[bot] eb832c750f Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 7.1.2 to 7.1.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.5
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 20:59:51 +00:00
James Cole 134770644a Fix amounts in transaction. 2025-09-09 17:14:53 +02:00
James Cole a9f21c9371 Extra text in the PR. 2025-09-09 15:53:25 +02:00
github-actions[bot] 781947beeb Merge pull request #10879 from firefly-iii/release-1757425805
🤖 Automatically merge the PR into the develop branch.
2025-09-09 15:50:18 +02:00
JC5 9760cd2f97 🤖 Auto commit for release 'develop' on 2025-09-09 2025-09-09 15:50:06 +02:00
James Cole d317e9ec32 Update changelog. 2025-09-09 15:41:19 +02:00
James Cole 534f7fcadb Merge branch 'main' into develop 2025-09-09 15:36:55 +02:00
James Cole fb3f7a1d4b Merge pull request #10874 from firefly-iii/dependabot/github_actions/actions/stale-10
Bump actions/stale from 9 to 10
2025-09-08 11:41:37 +02:00
James Cole bf2c3e3561 Merge pull request #10873 from firefly-iii/dependabot/github_actions/actions/github-script-8
Bump actions/github-script from 7 to 8
2025-09-08 11:41:12 +02:00
github-actions[bot] b670f81dcd Merge pull request #10875 from firefly-iii/release-1757313349
🤖 Automatically merge the PR into the develop branch.
2025-09-08 08:36:01 +02:00
JC5 7aac1cdf67 🤖 Auto commit for release 'develop' on 2025-09-08 2025-09-08 08:35:49 +02:00
Sander Dorigo fa0ac8a16c Fix php files 2025-09-08 08:31:09 +02:00
dependabot[bot] 0990b1f0b4 Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:08:14 +00:00
dependabot[bot] c1922670c8 Bump actions/github-script from 7 to 8
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:08:10 +00:00
James Cole 81cd89d66f Final nestor and phpstan fixes. 2025-09-07 17:42:16 +02:00
James Cole f5c202543c Clean up code. 2025-09-07 17:31:08 +02:00
James Cole 034f437c6b Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-07 17:30:43 +02:00
James Cole 8550ba6138 Remove unused code. 2025-09-07 17:30:34 +02:00
github-actions[bot] a51501025b Merge pull request #10872 from firefly-iii/release-1757249926
🤖 Automatically merge the PR into the develop branch.
2025-09-07 14:58:53 +02:00
JC5 a9d26e4586 🤖 Auto commit for release 'develop' on 2025-09-07 2025-09-07 14:58:46 +02:00
James Cole 949691935f Catch exceptions. 2025-09-07 14:54:44 +02:00
James Cole 4835b05304 Optimize currency search. 2025-09-07 14:49:49 +02:00
James Cole cce5a73dd2 Clean up and fix phpstan issues. 2025-09-07 14:28:58 +02:00
github-actions[bot] 3152f635dd Merge pull request #10868 from firefly-iii/release-1757235851
🤖 Automatically merge the PR into the develop branch.
2025-09-07 11:04:21 +02:00
JC5 12e8651017 🤖 Auto commit for release 'develop' on 2025-09-07 2025-09-07 11:04:11 +02:00
James Cole f88286c848 Merge branches 'develop' and 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-07 10:59:12 +02:00
James Cole 39cf0533d9 Fix various phpstan issues. 2025-09-07 10:59:07 +02:00
github-actions[bot] 6d82887960 Merge pull request #10867 from firefly-iii/release-1757224570
🤖 Automatically merge the PR into the develop branch.
2025-09-07 07:56:20 +02:00
JC5 262f1bae34 🤖 Auto commit for release 'develop' on 2025-09-07 2025-09-07 07:56:10 +02:00
James Cole 75dfdcc220 Fix final phpstan issue. 2025-09-07 07:51:35 +02:00
James Cole c3a3bdf525 Fix phpstan issues. 2025-09-07 07:51:01 +02:00
James Cole 602df95f3c Fix phpstan issues. 2025-09-07 07:43:04 +02:00
James Cole 296a64e284 Fix phpstan issues 2025-09-07 07:31:00 +02:00
James Cole b87b99a755 Fix phpstan issues. 2025-09-07 06:25:26 +02:00
James Cole bf53f5d6b7 Fix various phpstan issues. 2025-09-05 05:09:46 +02:00
James Cole bcbb868acc Update packages. 2025-09-04 19:46:52 +02:00
James Cole b3a9e6569e Fix #10854 2025-09-04 06:26:28 +02:00
James Cole f174f124ef Fix # 2025-09-04 06:26:12 +02:00
James Cole 8745377f31 Fix #10833 2025-09-04 06:22:18 +02:00
James Cole cf76e93f31 Remove primary currency from views, add some debug for #10854 2025-09-04 06:22:04 +02:00
James Cole 19e36f6f6e Share primary currency to all pages. 2025-09-03 21:02:13 +02:00
James Cole 2a7bb6f048 Fix #10853 2025-09-03 20:34:40 +02:00
James Cole 536eacbc0c Fix sort params 2025-09-03 20:34:28 +02:00
James Cole af78158d0b Fix minor issues. 2025-09-02 18:38:34 +02:00
github-actions[bot] fb97910a34 Merge pull request #10848 from firefly-iii/release-1756787147
🤖 Automatically merge the PR into the develop branch.
2025-09-02 06:25:54 +02:00
JC5 66b4d14129 🤖 Auto commit for release 'develop' on 2025-09-02 2025-09-02 06:25:47 +02:00
James Cole fd53047dbc Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-09-02 06:03:17 +02:00
James Cole 5f6fc1bab4 Fix #10846 2025-09-02 06:03:11 +02:00
github-actions[bot] cd0b64bd24 Merge pull request #10845 from firefly-iii/release-1756752249
🤖 Automatically merge the PR into the develop branch.
2025-09-01 20:44:18 +02:00
JC5 91b26bce0e 🤖 Auto commit for release 'develop' on 2025-09-01 2025-09-01 20:44:09 +02:00
James Cole 26a8bd921d Fix columns, improve views. 2025-09-01 20:39:40 +02:00
github-actions[bot] ad77d55c16 Merge pull request #10844 from firefly-iii/release-1756729274
🤖 Automatically merge the PR into the develop branch.
2025-09-01 14:21:21 +02:00
JC5 445a383dd0 🤖 Auto commit for release 'develop' on 2025-09-01 2025-09-01 14:21:14 +02:00
Sander Dorigo 1666af939e Fix null 2025-09-01 14:03:21 +02:00
github-actions[bot] 35447f5eee Merge pull request #10843 from firefly-iii/release-1756727799
🤖 Automatically merge the PR into the develop branch.
2025-09-01 13:56:46 +02:00
JC5 7c6fcb5731 🤖 Auto commit for release 'develop' on 2025-09-01 2025-09-01 13:56:39 +02:00
Sander Dorigo fabd9bf765 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-09-01 13:38:39 +02:00
Sander Dorigo 6352d26633 fix argument 2025-09-01 13:38:32 +02:00
github-actions[bot] ebef145bd6 Merge pull request #10842 from firefly-iii/release-1756723300
🤖 Automatically merge the PR into the develop branch.
2025-09-01 12:41:48 +02:00
JC5 acc89eb5f9 🤖 Auto commit for release 'develop' on 2025-09-01 2025-09-01 12:41:40 +02:00
Sander Dorigo 6523596415 fix bad call 2025-09-01 12:36:36 +02:00
github-actions[bot] b6c2d23116 Merge pull request #10838 from firefly-iii/release-1756697534
🤖 Automatically merge the PR into the develop branch.
2025-09-01 05:32:22 +02:00
JC5 2a123354f9 🤖 Auto commit for release 'develop' on 2025-09-01 2025-09-01 05:32:14 +02:00
James Cole 1e7ea4b76c Improve account list and view. 2025-08-31 19:20:02 +02:00
James Cole d959526eb3 Fix #10837 2025-08-31 19:07:45 +02:00
James Cole 8846ee9091 Fix #10827 2025-08-30 07:51:28 +02:00
github-actions[bot] 6eb8d0fc8c Merge pull request #10826 from firefly-iii/release-1756445011
🤖 Automatically merge the PR into the develop branch.
2025-08-29 07:23:42 +02:00
JC5 1b0e16b6a5 🤖 Auto commit for release 'develop' on 2025-08-29 2025-08-29 07:23:32 +02:00
James Cole 2e4df28288 Less logging. 2025-08-29 06:51:20 +02:00
James Cole f3b7a3015d Fix #10824 2025-08-27 19:00:12 +02:00
James Cole 5de5e08b1d Fix #10820 2025-08-26 16:05:36 +02:00
James Cole 0a116cd04c Add API autocomplete tests. 2025-08-25 17:17:51 +02:00
James Cole fd32a692c1 Add some API tests. 2025-08-25 15:31:51 +02:00
James Cole 1ac762aba8 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-25 15:31:15 +02:00
James Cole 315dc532b6 Fix #10819 2025-08-25 15:31:07 +02:00
github-actions[bot] e19ed1be15 Merge pull request #10817 from firefly-iii/release-1756092462
🤖 Automatically merge the PR into the develop branch.
2025-08-25 05:27:50 +02:00
JC5 cbb0621fd9 🤖 Auto commit for release 'develop' on 2025-08-25 2025-08-25 05:27:42 +02:00
James Cole 049cbab861 Remove superfluous logging. 2025-08-24 20:31:12 +02:00
James Cole 28b620fb5c Remove superfluous logging. 2025-08-24 20:30:40 +02:00
James Cole c183f91ff6 Add issue to changelog 2025-08-24 20:29:39 +02:00
github-actions[bot] 172efae41c Merge pull request #10816 from firefly-iii/release-1756060004
🤖 Automatically merge the PR into the develop branch.
2025-08-24 20:26:54 +02:00
JC5 756e857ba0 🤖 Auto commit for release 'develop' on 2025-08-24 2025-08-24 20:26:44 +02:00
James Cole 1cde7aab0c Fix #10815 2025-08-24 20:14:02 +02:00
James Cole 2d67eece5d Various code cleanup. 2025-08-24 17:14:07 +02:00
James Cole b1f79c4c0f Fix #10814 2025-08-24 13:31:00 +02:00
James Cole 33bd2ceae8 Fix amounts in transaction show. 2025-08-24 13:30:41 +02:00
James Cole e68850f192 Fix changelog. 2025-08-24 06:51:48 +02:00
James Cole 450ac7e6ee Fix #10813 2025-08-24 06:51:28 +02:00
James Cole 91f52b5dbc Add copyright statements. 2025-08-23 11:26:04 +02:00
James Cole eed2405d76 Update changelog before I forget about it. 2025-08-23 11:17:05 +02:00
github-actions[bot] c956df7790 Merge pull request #10809 from firefly-iii/release-1755940492
🤖 Automatically merge the PR into the develop branch.
2025-08-23 11:15:02 +02:00
JC5 0fdccec6a8 🤖 Auto commit for release 'develop' on 2025-08-23 2025-08-23 11:14:52 +02:00
James Cole 8ded54d7a8 Fix #10808 2025-08-23 08:56:25 +02:00
James Cole bb1b4ca5ca Fix #10807 2025-08-23 08:54:50 +02:00
James Cole e90d60113b Extra validation and a new config variable for #10806 2025-08-23 08:47:34 +02:00
James Cole d95dada0e0 Update changelog for #10804 2025-08-22 20:20:07 +02:00
James Cole 8722456595 Fix #10804 2025-08-22 20:19:52 +02:00
James Cole b5ad226451 Remove unused headers. 2025-08-22 15:45:39 +02:00
James Cole ddb0e66651 Update changelog. 2025-08-22 15:45:05 +02:00
James Cole e802899608 Pre-filter expenses, fixes #10803 2025-08-22 11:53:08 +02:00
James Cole 0894d3bf42 Fix #10802 2025-08-22 11:09:17 +02:00
James Cole 80bcfd3bcd Small issues to fix #5532 2025-08-22 09:52:27 +02:00
James Cole 8c410f42bd Expand changelog. 2025-08-22 09:15:34 +02:00
James Cole 7a1021dffc Add spent + earned info to category chart. 2025-08-22 09:15:13 +02:00
github-actions[bot] 63883c9a84 Merge pull request #10801 from firefly-iii/release-1755840718
🤖 Automatically merge the PR into the develop branch.
2025-08-22 07:32:06 +02:00
JC5 50d7f9d1ec 🤖 Auto commit for release 'develop' on 2025-08-22 2025-08-22 07:31:58 +02:00
James Cole ebc7ea0eb6 Fix amount display 2025-08-22 07:28:09 +02:00
github-actions[bot] b905efd0aa Merge pull request #10800 from firefly-iii/release-1755839053
🤖 Automatically merge the PR into the develop branch.
2025-08-22 07:04:20 +02:00
JC5 93085599b7 🤖 Auto commit for release 'develop' on 2025-08-22 2025-08-22 07:04:13 +02:00
James Cole 8a8bbaf827 Remove test webhook, no longer necessary. 2025-08-22 06:57:25 +02:00
James Cole 96a66b894a Fix #10799 2025-08-22 06:49:16 +02:00
James Cole 1ba641c279 Prevent a loop. 2025-08-21 20:31:32 +02:00
James Cole 6c5ddfcb8a Add newsletter link. 2025-08-21 20:10:53 +02:00
James Cole 65ddc246dc Merge branch 'main' into develop 2025-08-21 20:07:32 +02:00
James Cole e4aff5ff4c Update webhook code. 2025-08-21 20:07:12 +02:00
James Cole dfece91541 Update label-actions.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-08-21 08:28:54 +02:00
James Cole 6ddda13c3a Fix #10794 2025-08-20 10:13:23 +02:00
James Cole 46219c4678 Fix #10791 2025-08-20 09:09:38 +02:00
James Cole a1595d0647 Fix #10790 2025-08-20 07:26:18 +02:00
James Cole 4ee9f9bb27 Fix collection and message generation. 2025-08-20 06:38:53 +02:00
James Cole bcaa0bddea Update message generator. 2025-08-20 06:32:25 +02:00
James Cole 01cce49070 Expand webhook API, edit and create screen. 2025-08-20 06:22:55 +02:00
James Cole 293be04d40 Expand webhooks to support multiple delivery payloads, event triggers and responses. 2025-08-19 19:35:12 +02:00
James Cole 44a00ec8eb Use 6. 2025-08-19 06:41:07 +02:00
James Cole d84e772945 Use nr. 5 2025-08-19 06:36:19 +02:00
James Cole b475f6c51d Refer to nr 4 2025-08-19 06:32:26 +02:00
James Cole 2712662510 Refer to exact version. 2025-08-19 06:30:50 +02:00
James Cole 1f2eeba862 Refer to latest 2025-08-19 06:30:15 +02:00
James Cole 46a60134f4 Refer to JC5, 6. 2025-08-19 06:28:09 +02:00
James Cole f3f7820816 Fix lock threads action. 2025-08-19 06:10:03 +02:00
github-actions[bot] a57f8076b2 Merge pull request #10788 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-08-19 06:08:27 +02:00
github-actions[bot] 517afa2273 Merge pull request #10787 from firefly-iii/release-1755576495
🤖 Automatically merge the PR into the develop branch.
2025-08-19 06:08:22 +02:00
JC5 2142b23aec 🤖 Auto commit for release 'v6.3.2' on 2025-08-19 2025-08-19 06:08:15 +02:00
James Cole 1bec43b111 Expand changelog. 2025-08-19 06:04:22 +02:00
James Cole d2978a5ee8 Remove references to deleted code. 2025-08-19 06:03:58 +02:00
github-actions[bot] 39b61c71e8 Merge pull request #10786 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-08-18 20:08:34 +02:00
github-actions[bot] fa2c964790 Merge pull request #10785 from firefly-iii/release-1755540498
🤖 Automatically merge the PR into the develop branch.
2025-08-18 20:08:29 +02:00
JC5 134aeb3a46 🤖 Auto commit for release 'v6.3.1' on 2025-08-18 2025-08-18 20:08:18 +02:00
James Cole 6f6e1a4ff4 Delete unused events. 2025-08-18 20:01:51 +02:00
James Cole b743bf3d9e Include budget events. 2025-08-18 20:01:22 +02:00
James Cole 84ee6f16c9 Replace call to log 2025-08-18 19:35:02 +02:00
James Cole 9fe39e42b3 Update views to edit webhook. 2025-08-18 19:34:49 +02:00
James Cole 4013c7e316 Refactor methods so they're static and can be called from elsewhere. 2025-08-18 19:34:29 +02:00
github-actions[bot] 0b76747531 Merge pull request #10783 from firefly-iii/release-1755530286
🤖 Automatically merge the PR into the develop branch.
2025-08-18 17:18:15 +02:00
JC5 3129756b37 🤖 Auto commit for release 'develop' on 2025-08-18 2025-08-18 17:18:06 +02:00
James Cole b0df383004 Update changelog. 2025-08-18 17:13:46 +02:00
James Cole 9c5b1df86c Fix #10782 2025-08-18 17:11:56 +02:00
James Cole 5854e24775 Merge branch 'main' into develop 2025-08-18 17:09:18 +02:00
Sander Dorigo 3f873422f2 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-08-18 13:37:46 +02:00
Sander Dorigo f898990773 Fix #10782 2025-08-18 13:11:59 +02:00
github-actions[bot] a5759ab1c6 Merge pull request #10781 from firefly-iii/release-1755509351
🤖 Automatically merge the PR into the develop branch.
2025-08-18 11:29:20 +02:00
JC5 9bd6417e02 🤖 Auto commit for release 'develop' on 2025-08-18 2025-08-18 11:29:11 +02:00
Sander Dorigo cd12a10214 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-08-18 11:15:49 +02:00
Sander Dorigo ee8cb62e04 Fix missing reference 2025-08-18 11:15:42 +02:00
github-actions[bot] 87ee95a852 Merge pull request #10780 from firefly-iii/release-1755508370
🤖 Automatically merge the PR into the develop branch.
2025-08-18 11:12:59 +02:00
JC5 10f8436885 🤖 Auto commit for release 'develop' on 2025-08-18 2025-08-18 11:12:50 +02:00
Sander Dorigo 6955846a1c Catch integer error 2025-08-18 11:05:41 +02:00
James Cole 11d2f8d471 Update release.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-08-18 10:21:37 +02:00
github-actions[bot] 99347ffff1 Merge pull request #10779 from firefly-iii/release-1755503969
🤖 Automatically merge the PR into the develop branch.
2025-08-18 09:59:37 +02:00
JC5 3ddc11a905 🤖 Auto commit for release 'develop' on 2025-08-18 2025-08-18 09:59:29 +02:00
James Cole 0a48c0c20f Update release.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-08-18 09:55:08 +02:00
James Cole 8bc764d6ef Merge pull request #10778 from firefly-iii/dependabot/github_actions/actions/checkout-5 2025-08-18 07:44:35 +02:00
dependabot[bot] 4b4f568558 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 05:24:29 +00:00
github-actions[bot] d42117281a Merge pull request #10777 from firefly-iii/release-1755488100
🤖 Automatically merge the PR into the develop branch.
2025-08-18 05:35:09 +02:00
JC5 d68ed5a713 🤖 Auto commit for release 'develop' on 2025-08-18 2025-08-18 05:35:01 +02:00
github-actions[bot] 2f6f36c3f0 Merge pull request #10776 from firefly-iii/release-1755442560
🤖 Automatically merge the PR into the develop branch.
2025-08-17 16:56:07 +02:00
JC5 984aa02e35 🤖 Auto commit for release 'develop' on 2025-08-17 2025-08-17 16:56:00 +02:00
James Cole cdadc7d533 Fix #10773 for budget limits. 2025-08-17 16:47:39 +02:00
James Cole 4d59955cc5 Fix #10773 for piggies. 2025-08-17 16:47:29 +02:00
James Cole fc547ba59a Fix #10773 for budget limits. 2025-08-17 16:47:19 +02:00
James Cole 1b2ded3167 Fix #10775 2025-08-17 16:46:31 +02:00
github-actions[bot] dcf20a472a Merge pull request #10772 from firefly-iii/release-1755424214
🤖 Automatically merge the PR into the develop branch.
2025-08-17 11:50:24 +02:00
JC5 7bd528defe 🤖 Auto commit for release 'develop' on 2025-08-17 2025-08-17 11:50:14 +02:00
James Cole 9e6d123165 Fix #10771 2025-08-17 11:46:03 +02:00
James Cole c592f51c83 Fix bad call. 2025-08-17 11:37:58 +02:00
James Cole fbb6f30366 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-17 11:37:07 +02:00
James Cole 4546c721fb Merge branch 'main' into develop 2025-08-17 11:37:01 +02:00
github-actions[bot] 3a659c9a81 Merge pull request #10770 from firefly-iii/release-1755423290
🤖 Automatically merge the PR into the develop branch.
2025-08-17 11:34:58 +02:00
JC5 e28a988eb3 🤖 Auto commit for release 'develop' on 2025-08-17 2025-08-17 11:34:50 +02:00
James Cole a29742fe1f Never mind lol. 2025-08-17 11:31:03 +02:00
James Cole dd06838eec Reshuffle dependencies. 2025-08-17 11:27:36 +02:00
James Cole 5eb828bff8 Force order. But I think steps need dependencies, not jobs. 2025-08-17 11:24:16 +02:00
James Cole c7f3701053 Add command to see where we end up. 2025-08-17 11:22:51 +02:00
James Cole ab6799442c Fix job again. 2025-08-17 11:19:20 +02:00
James Cole 1fe9bf7d76 Clean up job. 2025-08-17 11:18:48 +02:00
James Cole bd14797da6 Fix dependencies. 2025-08-17 11:16:55 +02:00
James Cole 93b4e6a8d0 Update build job. 2025-08-17 11:15:18 +02:00
github-actions[bot] 5566671971 Merge pull request #10769 from firefly-iii/release-1755421680
🤖 Automatically merge the PR into the develop branch.
2025-08-17 11:08:07 +02:00
JC5 defcc7a00c 🤖 Auto commit for release 'develop' on 2025-08-17 2025-08-17 11:08:00 +02:00
James Cole 5183de634b Fix #10768 2025-08-17 11:03:20 +02:00
James Cole 7771b0311c Expand webhook options, allow for budgets. 2025-08-17 07:40:19 +02:00
github-actions[bot] 52abe3bbc2 Merge pull request #10765 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-08-16 19:54:36 +02:00
github-actions[bot] 34db9f41c2 Merge pull request #10764 from firefly-iii/release-1755366862
🤖 Automatically merge the PR into the develop branch.
2025-08-16 19:54:31 +02:00
JC5 72c31fbe6a 🤖 Auto commit for release 'v6.3.0' on 2025-08-16 2025-08-16 19:54:22 +02:00
github-actions[bot] 1d8dd41564 Merge pull request #10763 from firefly-iii/release-1755365805
🤖 Automatically merge the PR into the develop branch.
2025-08-16 19:36:56 +02:00
JC5 3409240a19 🤖 Auto commit for release 'develop' on 2025-08-16 2025-08-16 19:36:45 +02:00
James Cole eccc58e75a Add piggy bank tests. 2025-08-16 19:31:59 +02:00
James Cole 24098f35bb Fix some commands. 2025-08-16 15:04:15 +02:00
James Cole e7d9dc57d8 Add some tests. 2025-08-16 14:52:29 +02:00
James Cole f04ed5b8f0 Restore and fix API tests 2025-08-16 14:10:24 +02:00
James Cole 8bd44f429b Merge pull request #10762 from firefly-iii/JC5-patch-1
Update lock.yml
2025-08-16 10:26:21 +02:00
James Cole fb7866b165 Update lock.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-08-16 10:26:09 +02:00
James Cole 98db6db1eb Fix references to charts. 2025-08-16 08:28:10 +02:00
James Cole 0a235ec523 Optimize category chart. 2025-08-16 06:34:28 +02:00
github-actions[bot] cb4f7ad0a8 Merge pull request #10761 from firefly-iii/release-1755317595
🤖 Automatically merge the PR into the develop branch.
2025-08-16 06:13:25 +02:00
JC5 91ce1d3b88 🤖 Auto commit for release 'develop' on 2025-08-16 2025-08-16 06:13:15 +02:00
James Cole 8f9ab150ee Add command to reset rate limit for error emails. 2025-08-16 06:08:01 +02:00
James Cole 8d52f83b4f Fix nulls. 2025-08-16 06:02:26 +02:00
James Cole fb19739b54 Fix missing enrichment. 2025-08-16 05:58:58 +02:00
James Cole acd4f28ae3 Restore "default" API endpoint so data importer does not fail. 2025-08-15 21:37:49 +02:00
James Cole e4d443db50 Remove some unused comments. 2025-08-15 21:10:30 +02:00
James Cole fe9d36cd27 Clean up a variety of end points. 2025-08-15 20:06:28 +02:00
James Cole a916cc7e78 Rename command. 2025-08-15 20:00:29 +02:00
James Cole 77d15f884b Extend acceptedRoles to chart controllers. 2025-08-15 19:57:32 +02:00
James Cole ab773c9052 Extend acceptedRoles array in AC controllers. 2025-08-15 19:50:12 +02:00
James Cole 87d292ca27 Rename method from default to primary. 2025-08-15 14:33:14 +02:00
James Cole 946e272d1c Update changelog and templates. 2025-08-15 13:46:41 +02:00
github-actions[bot] ffe2e310aa Merge pull request #10760 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-08-15 13:43:40 +02:00
github-actions[bot] 9fc6af0f2d Merge pull request #10759 from firefly-iii/release-1755258209
🤖 Automatically merge the PR into the develop branch.
2025-08-15 13:43:35 +02:00
JC5 71807b67fc 🤖 Auto commit for release 'v6.3.0-beta.2' on 2025-08-15 2025-08-15 13:43:29 +02:00
github-actions[bot] ab61d0ce21 Merge pull request #10758 from firefly-iii/release-1755257846
🤖 Automatically merge the PR into the develop branch.
2025-08-15 13:37:34 +02:00
JC5 f2dc0d234b 🤖 Auto commit for release 'develop' on 2025-08-15 2025-08-15 13:37:27 +02:00
James Cole 4885dbc78e Fix currency exchange rate UI. 2025-08-15 13:33:22 +02:00
James Cole 0e29e282df Fix translations. 2025-08-15 11:38:25 +02:00
James Cole 0b3fd335ad Fix other endpoint. 2025-08-15 11:35:16 +02:00
James Cole 9b2263c7bb Match exchange rate API with API docs. 2025-08-15 11:28:23 +02:00
James Cole 1305fafd38 Add multi-currency for budget chart 2025-08-15 07:50:13 +02:00
James Cole 844b8d48c4 Update category overview to be multi-currency aware. 2025-08-15 07:44:14 +02:00
James Cole fc9ef290f1 Clean up API endpoints. 2025-08-15 07:11:34 +02:00
James Cole 020c8ad933 Clean up and expand templates. 2025-08-13 10:15:36 +02:00
James Cole 33ea27b411 Fix template 2025-08-13 08:03:59 +02:00
James Cole b39e3e5965 Expand template. 2025-08-13 07:56:31 +02:00
James Cole ba7e504f12 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-13 07:54:53 +02:00
James Cole a732ce2a20 Merge branch 'main' into develop
# Conflicts:
#	.github/workflows/release.yml
2025-08-13 07:54:44 +02:00
James Cole 2b76c4801f Remove steps no longer necessary. 2025-08-13 07:54:15 +02:00
github-actions[bot] dd09dd59e9 Merge pull request #10752 from firefly-iii/release-1755064372
🤖 Automatically merge the PR into the develop branch.
2025-08-13 07:53:05 +02:00
JC5 d56088d086 🤖 Auto commit for release 'develop' on 2025-08-13 2025-08-13 07:52:52 +02:00
James Cole f27f00cfa0 Change command. 2025-08-13 07:48:29 +02:00
James Cole d762136e0b Clean up action. 2025-08-13 07:46:02 +02:00
James Cole 536cd78e29 Templates for new releases. 2025-08-13 07:43:11 +02:00
James Cole 5ef0889f50 Lol lets remove this file. 2025-08-12 20:45:42 +02:00
James Cole c2ffedb506 Remove link. 2025-08-12 20:44:58 +02:00
github-actions[bot] fe702a3030 Merge pull request #10751 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-08-12 20:27:03 +02:00
github-actions[bot] 2244d366bd Merge pull request #10750 from firefly-iii/release-1755023209
🤖 Automatically merge the PR into the develop branch.
2025-08-12 20:26:57 +02:00
JC5 ac16e0294e 🤖 Auto commit for release 'v6.3.0-beta.1' on 2025-08-12 2025-08-12 20:26:49 +02:00
github-actions[bot] bf1b0ee3c2 Merge pull request #10749 from firefly-iii/release-1755022724
🤖 Automatically merge the PR into the develop branch.
2025-08-12 20:18:52 +02:00
JC5 ffec4bbfba 🤖 Auto commit for release 'develop' on 2025-08-12 2025-08-12 20:18:44 +02:00
James Cole ae6e103c09 Fix translation. 2025-08-12 20:13:48 +02:00
James Cole 99d4471f75 Merge branch 'main' into develop 2025-08-11 19:19:22 +02:00
James Cole 7f1fb72298 Merge pull request #10744 from firefly-iii/dependabot/github_actions/github/command-2.0.2
Bump github/command from 2.0.1 to 2.0.2
2025-08-11 09:43:28 +02:00
dependabot[bot] 009c2ed5d9 Bump github/command from 2.0.1 to 2.0.2
Bumps [github/command](https://github.com/github/command) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/github/command/releases)
- [Commits](https://github.com/github/command/compare/v2.0.1...v2.0.2)

---
updated-dependencies:
- dependency-name: github/command
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 05:23:27 +00:00
github-actions[bot] 44fc00299c Merge pull request #10742 from firefly-iii/release-1754883400
🤖 Automatically merge the PR into the develop branch.
2025-08-11 05:36:47 +02:00
JC5 774fc4281c 🤖 Auto commit for release 'develop' on 2025-08-11 2025-08-11 05:36:40 +02:00
github-actions[bot] c47955c069 Merge pull request #10741 from firefly-iii/release-1754821000
🤖 Automatically merge the PR into the develop branch.
2025-08-10 12:16:47 +02:00
JC5 e7569644f7 🤖 Auto commit for release 'develop' on 2025-08-10 2025-08-10 12:16:41 +02:00
James Cole c567474043 Optimize balance collection. 2025-08-10 12:12:30 +02:00
github-actions[bot] 9f394e92fe Merge pull request #10740 from firefly-iii/release-1754804137
🤖 Automatically merge the PR into the develop branch.
2025-08-10 07:35:46 +02:00
JC5 66befc7e44 🤖 Auto commit for release 'develop' on 2025-08-10 2025-08-10 07:35:37 +02:00
James Cole c3a28fc698 Fix three years ago. 2025-08-10 07:31:10 +02:00
github-actions[bot] ef317d5b3c Merge pull request #10739 from firefly-iii/release-1754802161
🤖 Automatically merge the PR into the develop branch.
2025-08-10 07:02:58 +02:00
JC5 152301f9ee 🤖 Auto commit for release 'develop' on 2025-08-10 2025-08-10 07:02:41 +02:00
James Cole 645e9ba1f7 Go back 3 years max. 2025-08-10 06:58:06 +02:00
James Cole 56487c3a33 Fix equation. 2025-08-10 06:54:04 +02:00
James Cole b8062a915c Fix equation. 2025-08-10 06:53:21 +02:00
James Cole 5780c9512a Optimize convert all balances. 2025-08-10 06:53:08 +02:00
github-actions[bot] 71d39707d9 Merge pull request #10738 from firefly-iii/release-1754800979
🤖 Automatically merge the PR into the develop branch.
2025-08-10 06:43:10 +02:00
JC5 9ccb8ae692 🤖 Auto commit for release 'develop' on 2025-08-10 2025-08-10 06:42:59 +02:00
James Cole 8cd50bb5bd Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-10 06:38:34 +02:00
James Cole ae9e1278e5 Expand some timers, fix reports. 2025-08-10 06:38:23 +02:00
github-actions[bot] 58c03797b2 Merge pull request #10737 from firefly-iii/release-1754766186
🤖 Automatically merge the PR into the develop branch.
2025-08-09 21:03:19 +02:00
JC5 7db38b4c6c 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 21:03:06 +02:00
James Cole da6b447e64 Add some extra debug info. 2025-08-09 20:42:49 +02:00
github-actions[bot] c19ac2b0f3 Merge pull request #10736 from firefly-iii/release-1754764141
🤖 Automatically merge the PR into the develop branch.
2025-08-09 20:29:09 +02:00
JC5 d5ca2171b3 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 20:29:01 +02:00
James Cole 20972cb29f Merge errors. 2025-08-09 20:24:45 +02:00
James Cole 7b714d0866 Add some time logs. 2025-08-09 20:24:15 +02:00
github-actions[bot] 240ae8fa57 Merge pull request #10735 from firefly-iii/release-1754763336
🤖 Automatically merge the PR into the develop branch.
2025-08-09 20:16:11 +02:00
JC5 5a2f6b2652 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 20:15:36 +02:00
James Cole 4196ce31f0 Fix account thing overview. 2025-08-09 20:10:40 +02:00
James Cole be8ca5db50 Update changelog. 2025-08-09 19:58:59 +02:00
github-actions[bot] 30a417ea3c Merge pull request #10734 from firefly-iii/release-1754750646
🤖 Automatically merge the PR into the develop branch.
2025-08-09 16:44:16 +02:00
JC5 695ed940e0 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 16:44:06 +02:00
James Cole 1353554cf8 Remove expensive call from loop. 2025-08-09 16:38:32 +02:00
James Cole e1ba2732af Remove non-optimized method. 2025-08-09 16:34:25 +02:00
James Cole 42b57c0e0e Migrate to optimized method. 2025-08-09 16:31:11 +02:00
James Cole a6072753b2 Remove PR 2025-08-09 16:01:44 +02:00
github-actions[bot] e92c224c39 Merge pull request #10733 from firefly-iii/release-1754748022
🤖 Automatically merge the PR into the develop branch.
2025-08-09 16:00:30 +02:00
JC5 a3ed7ec8f6 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 16:00:22 +02:00
James Cole 17a2f99dff Order and palce in changelog. 2025-08-09 15:55:29 +02:00
James Cole c14971543c Update changelog. 2025-08-09 15:43:36 +02:00
James Cole 55f899608d Add multi currency to piggy overview. 2025-08-09 15:33:03 +02:00
github-actions[bot] 83be63f27e Merge pull request #10731 from firefly-iii/release-1754731244
🤖 Automatically merge the PR into the develop branch.
2025-08-09 11:20:53 +02:00
JC5 ed48d190e5 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 11:20:44 +02:00
James Cole 3c3b6615e6 Make message singular / plural 2025-08-09 11:16:46 +02:00
James Cole e71e5a877b Fix count for overdue bills. 2025-08-09 11:13:03 +02:00
James Cole b2a65dc660 Small change in text. 2025-08-09 08:48:25 +02:00
James Cole d66dccd076 Fix bad slack URL 2025-08-09 08:47:22 +02:00
github-actions[bot] c1128b28f2 Merge pull request #10730 from firefly-iii/release-1754721510
🤖 Automatically merge the PR into the develop branch.
2025-08-09 08:38:39 +02:00
JC5 da8e78c28d 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 08:38:30 +02:00
James Cole f50aa6b0ce Fix spam whoopsie. 2025-08-09 08:34:18 +02:00
github-actions[bot] 661e4e53e6 Merge pull request #10729 from firefly-iii/release-1754719442
🤖 Automatically merge the PR into the develop branch.
2025-08-09 08:04:11 +02:00
JC5 3eeda4a6aa 🤖 Auto commit for release 'develop' on 2025-08-09 2025-08-09 08:04:02 +02:00
James Cole 4dba9cea21 Fire warnings for bills and expand webhook message cron job (#10696 and #10703 and #6836) 2025-08-09 07:59:38 +02:00
James Cole 6aab5fab05 Fix #9650 2025-08-09 06:59:55 +02:00
github-actions[bot] 4b0597d19a Merge pull request #10728 from firefly-iii/release-1754679825
🤖 Automatically merge the PR into the develop branch.
2025-08-08 21:03:55 +02:00
JC5 92f534bcb3 🤖 Auto commit for release 'develop' on 2025-08-08 2025-08-08 21:03:45 +02:00
James Cole 76e91be4dc Optimize array. 2025-08-08 20:59:24 +02:00
James Cole deca4fed56 Clean up API and display of transactions. 2025-08-08 20:18:04 +02:00
James Cole 73512b0365 Add a basic singleton to save on queries. 2025-08-08 15:44:15 +02:00
github-actions[bot] aaffc125e7 Merge pull request #10724 from firefly-iii/release-1754630264
🤖 Automatically merge the PR into the develop branch.
2025-08-08 07:17:53 +02:00
JC5 41a48c39a0 🤖 Auto commit for release 'develop' on 2025-08-08 2025-08-08 07:17:44 +02:00
James Cole 2d96bd84b5 Fix #9640 2025-08-08 06:43:05 +02:00
James Cole ad1c1d2254 Fix #10071 2025-08-08 06:42:54 +02:00
github-actions[bot] 813206766d Merge pull request #10723 from firefly-iii/release-1754591858
🤖 Automatically merge the PR into the develop branch.
2025-08-07 20:37:46 +02:00
JC5 bb25d4a82a 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 20:37:38 +02:00
James Cole f3b78beecc Fix another null 2025-08-07 20:33:24 +02:00
github-actions[bot] 64073768fe Merge pull request #10722 from firefly-iii/release-1754590638
🤖 Automatically merge the PR into the develop branch.
2025-08-07 20:17:25 +02:00
JC5 fe6dd0f901 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 20:17:19 +02:00
James Cole aac8d11ff6 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-07 20:13:35 +02:00
James Cole afa99a35b5 Fix NULLs 2025-08-07 20:13:29 +02:00
James Cole e9cb0a51d7 Catch NULL. 2025-08-07 20:11:46 +02:00
github-actions[bot] 9fbcccfd02 Merge pull request #10721 from firefly-iii/release-1754589876
🤖 Automatically merge the PR into the develop branch.
2025-08-07 20:04:43 +02:00
JC5 468c9c9d56 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 20:04:36 +02:00
James Cole f76b27a73d Fix #10565 and fix #10600 2025-08-07 19:59:02 +02:00
James Cole 579fe81616 Fix #10656 2025-08-07 19:52:12 +02:00
James Cole ec9ba53690 Fix #10678 2025-08-07 19:48:00 +02:00
James Cole 85337c53d4 Fix currency collection. 2025-08-07 19:37:36 +02:00
James Cole eb6d585bb2 Fix a variety of code. 2025-08-07 19:09:25 +02:00
James Cole 378ffbc609 Fix #10720 2025-08-07 17:55:25 +02:00
James Cole 3b3c8e5bcd Add object group to various items. 2025-08-07 07:46:49 +02:00
github-actions[bot] 75cbdb6a57 Merge pull request #10719 from firefly-iii/release-1754540665
🤖 Automatically merge the PR into the develop branch.
2025-08-07 06:24:32 +02:00
JC5 cdaff0d983 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 06:24:25 +02:00
James Cole dda3863889 Fix account_id key. 2025-08-07 06:20:36 +02:00
github-actions[bot] 57dc423b3f Merge pull request #10718 from firefly-iii/release-1754540258
🤖 Automatically merge the PR into the develop branch.
2025-08-07 06:17:51 +02:00
JC5 c0570bc3b2 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 06:17:38 +02:00
James Cole 65110d1666 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-07 06:12:02 +02:00
James Cole 5a10b29402 Set to zero instead of null. 2025-08-07 06:11:56 +02:00
github-actions[bot] 028544ca2e Merge pull request #10717 from firefly-iii/release-1754539541
🤖 Automatically merge the PR into the develop branch.
2025-08-07 06:05:53 +02:00
JC5 af46729372 🤖 Auto commit for release 'develop' on 2025-08-07 2025-08-07 06:05:41 +02:00
James Cole 4c7789a668 Add missing access rights. 2025-08-07 06:01:14 +02:00
James Cole 292908048c Add enrichment to recurring 2025-08-07 05:59:26 +02:00
James Cole e300314e05 Catch NULL. 2025-08-07 05:56:31 +02:00
James Cole 4f1f360346 Add primary to array. 2025-08-07 05:55:15 +02:00
James Cole bff856aeff Rename method, remove 0. 2025-08-07 05:52:56 +02:00
James Cole 7f5a1bda8d Catch null 2025-08-06 20:53:30 +02:00
github-actions[bot] b506281bd6 Merge pull request #10716 from firefly-iii/release-1754505595
🤖 Automatically merge the PR into the develop branch.
2025-08-06 20:40:02 +02:00
JC5 dfe9b3e787 🤖 Auto commit for release 'develop' on 2025-08-06 2025-08-06 20:39:55 +02:00
James Cole 2428a2a7c5 Expand API test code. 2025-08-06 20:27:59 +02:00
James Cole 0e8f608e00 Optimize available budgets. 2025-08-06 20:23:58 +02:00
James Cole 70071767ab Collect account balances, optimized. 2025-08-06 20:15:02 +02:00
James Cole 0ad6beb66c Optimize recurrence enrichment. 2025-08-06 15:35:29 +02:00
James Cole 1197f65589 Start work on recurring transaction enrichment. 2025-08-06 10:46:23 +02:00
James Cole 7bbf2dcc6f Add enrichment. 2025-08-06 09:18:29 +02:00
James Cole d4ab69ebe6 Expand piggy bank enrichment. 2025-08-06 09:15:54 +02:00
James Cole c8c552602e Expand piggy bank events. 2025-08-05 19:49:13 +02:00
James Cole 1921a8050b Fix #10709 2025-08-05 18:56:31 +02:00
James Cole f488feda93 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-05 17:57:57 +02:00
James Cole d90c033b83 Fix #10708 2025-08-05 17:57:52 +02:00
github-actions[bot] 9f256253f2 Merge pull request #10707 from firefly-iii/release-1754394813
🤖 Automatically merge the PR into the develop branch.
2025-08-05 13:53:39 +02:00
JC5 489b7c12e5 🤖 Auto commit for release 'develop' on 2025-08-05 2025-08-05 13:53:33 +02:00
Sander Dorigo 1049a8314d Fix lang 2025-08-05 13:48:58 +02:00
Sander Dorigo 48301b6b9c Add missing classes 2025-08-05 13:40:46 +02:00
Sander Dorigo 5a92215921 Fix #10706 2025-08-05 12:50:05 +02:00
Sander Dorigo ccfc75852a Fix #10702 2025-08-05 11:02:26 +02:00
Sander Dorigo 9804cffff3 Fix #10704 2025-08-05 10:41:54 +02:00
James Cole 901e113fef Fix #10700 2025-08-05 05:55:45 +02:00
James Cole a4021ff056 Enrich categories. 2025-08-04 20:55:31 +02:00
James Cole 902d91ad29 Add moment JS 2025-08-04 20:19:09 +02:00
James Cole fa2cf22e73 Add locale files 2025-08-04 20:17:11 +02:00
James Cole 970dad4c49 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-04 20:11:57 +02:00
James Cole 9d01c7bdb8 Add language 2025-08-04 20:11:51 +02:00
github-actions[bot] dc7d4fb258 Merge pull request #10698 from firefly-iii/release-1754331101
🤖 Automatically merge the PR into the develop branch.
2025-08-04 20:11:50 +02:00
JC5 a807ca5002 🤖 Auto commit for release 'develop' on 2025-08-04 2025-08-04 20:11:41 +02:00
github-actions[bot] d59d326841 Merge pull request #10693 from firefly-iii/release-1754278961
🤖 Automatically merge the PR into the develop branch.
2025-08-04 05:42:50 +02:00
JC5 b915548e82 🤖 Auto commit for release 'develop' on 2025-08-04 2025-08-04 05:42:41 +02:00
James Cole 8200a81840 Add enrichment. 2025-08-03 20:19:07 +02:00
James Cole 6a49918707 Add budget transformer and enrichment. 2025-08-03 20:17:50 +02:00
James Cole e55fc483bd Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-08-03 17:42:13 +02:00
James Cole 4ff5f5883d Improve budget limit. 2025-08-03 17:42:07 +02:00
github-actions[bot] eda2eae04a Merge pull request #10689 from firefly-iii/release-1754232349
🤖 Automatically merge the PR into the develop branch.
2025-08-03 16:45:56 +02:00
JC5 c07c30ea17 🤖 Auto commit for release 'develop' on 2025-08-03 2025-08-03 16:45:49 +02:00
James Cole 56f1eb03e0 Add missing field. 2025-08-03 10:24:49 +02:00
James Cole d4e14dd262 Move account balance logic to enrichment. 2025-08-03 10:22:12 +02:00
James Cole 0c7f04fb17 Expand bill transformer. 2025-08-03 08:12:19 +02:00
James Cole 061c01da53 Remove unnecessary setters. 2025-08-03 08:02:13 +02:00
James Cole 716d72d8af Optimize available budgets. 2025-08-03 07:53:36 +02:00
James Cole 3233ca4a4c Fix badly named field. 2025-08-03 07:13:57 +02:00
James Cole 1041030b1e First start on optimized available balance enrichment. 2025-08-03 07:12:06 +02:00
James Cole bb3b06cf08 Fix #10687 2025-08-02 19:17:37 +02:00
James Cole f35e361915 Match fields for 6.3.0 2025-08-02 14:21:22 +02:00
James Cole 47d697c7dc Remove references to "balances". 2025-08-02 11:07:35 +02:00
James Cole 3745d79f1f Clean up account transformer. 2025-08-02 07:16:30 +02:00
github-actions[bot] 04cbff4b9a Merge pull request #10684 from firefly-iii/release-1754070963
🤖 Automatically merge the PR into the develop branch.
2025-08-01 19:56:12 +02:00
JC5 0c2ca4b97c 🤖 Auto commit for release 'develop' on 2025-08-01 2025-08-01 19:56:03 +02:00
James Cole 3918665cd1 Move all endpoints to v1. 2025-08-01 19:41:36 +02:00
James Cole 9eb8869649 Fix files. 2025-08-01 19:33:30 +02:00
github-actions[bot] 62221af591 Merge pull request #10683 from firefly-iii/release-1754069211
🤖 Automatically merge the PR into the develop branch.
2025-08-01 19:26:58 +02:00
JC5 4d013a44ce 🤖 Auto commit for release 'develop' on 2025-08-01 2025-08-01 19:26:51 +02:00
Sander Dorigo c55cfd1acf Rename file 2025-08-01 15:30:45 +02:00
github-actions[bot] b2652b83ce Merge pull request #10682 from firefly-iii/release-1754049870
🤖 Automatically merge the PR into the develop branch.
2025-08-01 14:04:37 +02:00
JC5 3d28932216 🤖 Auto commit for release 'develop' on 2025-08-01 2025-08-01 14:04:30 +02:00
Sander Dorigo 87567d5a31 Rename default to primary 2025-08-01 13:48:32 +02:00
github-actions[bot] 37d45f4f87 Merge pull request #10681 from firefly-iii/release-1754047488
🤖 Automatically merge the PR into the develop branch.
2025-08-01 13:24:57 +02:00
JC5 4acf0828e4 🤖 Auto commit for release 'develop' on 2025-08-01 2025-08-01 13:24:48 +02:00
Sander Dorigo b5bab53e7a Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-08-01 13:08:41 +02:00
github-actions[bot] 60b0dc6279 Merge pull request #10680 from firefly-iii/release-1754046611
🤖 Automatically merge the PR into the develop branch.
2025-08-01 13:10:21 +02:00
JC5 883994de19 🤖 Auto commit for release 'develop' on 2025-08-01 2025-08-01 13:10:11 +02:00
Sander Dorigo 62d72516ba Fix calls 2025-08-01 13:08:37 +02:00
Sander Dorigo cfb86c683e Replace native with primary 2025-08-01 12:40:54 +02:00
Sander Dorigo 6278662014 Replace native with primary where possible 2025-08-01 12:31:01 +02:00
Sander Dorigo 65dcad6898 remove a quote 2025-08-01 07:42:45 +02:00
Sander Dorigo 8e7bcbdd7b Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-08-01 07:41:28 +02:00
James Cole 084ce02c21 Rename "native" to "primary". 2025-08-01 06:12:36 +02:00
James Cole ea6addafe6 Rename references to native amounts 2025-07-31 20:55:30 +02:00
James Cole da36d84b79 Rename "native" references to "primary" or "pc". 2025-07-31 20:47:20 +02:00
James Cole d6d9f665c7 Rename references to "native". 2025-07-31 20:38:57 +02:00
James Cole 73d2621255 Remove v2 api 2025-07-31 20:36:16 +02:00
James Cole 4299ba033c Remove v2 transformers. 2025-07-31 20:36:06 +02:00
James Cole 6007687bcc Rename from "native" to "primary". 2025-07-31 20:35:44 +02:00
James Cole 6d3f2bd5e7 Rename many references from native to primary. 2025-07-31 20:24:19 +02:00
James Cole 210bd83bd4 Rename method. 2025-07-31 20:17:46 +02:00
James Cole 65a926874b Rename "native" to "primary". 2025-07-31 20:16:16 +02:00
James Cole d0e7681e56 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-07-31 18:17:02 +02:00
James Cole 33bde854ec Add conversion 2025-07-31 18:16:54 +02:00
github-actions[bot] da874c97f4 Merge pull request #10677 from firefly-iii/release-1753977340
🤖 Automatically merge the PR into the develop branch.
2025-07-31 17:55:52 +02:00
JC5 aa7ec95a59 🤖 Auto commit for release 'develop' on 2025-07-31 2025-07-31 17:55:40 +02:00
James Cole 4dd77303f7 Fix filtered list. 2025-07-31 17:51:07 +02:00
Sander Dorigo 166d4bd842 Add quote 2025-07-31 15:55:43 +02:00
github-actions[bot] 54bf56bbb0 Merge pull request #10676 from firefly-iii/release-1753963346
🤖 Automatically merge the PR into the develop branch.
2025-07-31 14:02:37 +02:00
JC5 3d8c6671f4 🤖 Auto commit for release 'develop' on 2025-07-31 2025-07-31 14:02:26 +02:00
Sander Dorigo 4e33de9c29 Fix missing filter 2025-07-31 13:54:12 +02:00
Sander Dorigo 27d46eb3fa Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-07-31 11:32:36 +02:00
Sander Dorigo e1e7a2e497 Update file 2025-07-31 11:32:31 +02:00
github-actions[bot] a476b4259c Merge pull request #10675 from firefly-iii/release-1753950988
🤖 Automatically merge the PR into the develop branch.
2025-07-31 10:36:37 +02:00
JC5 0c03ec5ddd 🤖 Auto commit for release 'develop' on 2025-07-31 2025-07-31 10:36:28 +02:00
Sander Dorigo 2d95b7f8ef Update bill transformers with enrichments 2025-07-31 10:00:05 +02:00
github-actions[bot] 34cc79ce4f Merge pull request #10674 from firefly-iii/release-1753940049
🤖 Automatically merge the PR into the develop branch.
2025-07-31 07:34:18 +02:00
JC5 6ff9943fe0 🤖 Auto commit for release 'develop' on 2025-07-31 2025-07-31 07:34:09 +02:00
James Cole a0166b45e4 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Api/V1/Controllers/Models/Bill/ShowController.php
#	app/Support/JsonApi/Enrichments/SubscriptionEnrichment.php
#	app/Transformers/BillTransformer.php
2025-07-31 07:30:25 +02:00
James Cole d27b035b20 Clean up transformer. 2025-07-31 07:28:25 +02:00
github-actions[bot] f3b387fc22 Merge pull request #10673 from firefly-iii/release-1753936796
🤖 Automatically merge the PR into the develop branch.
2025-07-31 06:40:05 +02:00
JC5 03904ffcde 🤖 Auto commit for release 'develop' on 2025-07-31 2025-07-31 06:39:56 +02:00
James Cole a7973190c2 Start improving bill overview. 2025-07-30 20:35:28 +02:00
James Cole 671ff95f22 Improved subscription overview 2025-07-30 18:57:32 +02:00
github-actions[bot] 01181ceea9 Merge pull request #10672 from firefly-iii/release-1753879077
🤖 Automatically merge the PR into the develop branch.
2025-07-30 14:38:08 +02:00
JC5 97643639d1 🤖 Auto commit for release 'develop' on 2025-07-30 2025-07-30 14:37:57 +02:00
James Cole 424783c47b Add convertToNative to cache key. 2025-07-30 14:33:26 +02:00
James Cole ea0ced70b2 Clean up sankey. 2025-07-30 11:24:00 +02:00
James Cole 1a633e64ef Category chart will also convert. 2025-07-30 10:20:35 +02:00
James Cole 30da3f4399 Also include budget in currency conversion. 2025-07-30 09:59:52 +02:00
github-actions[bot] 6bdff95d87 Merge pull request #10671 from firefly-iii/release-1753858574
🤖 Automatically merge the PR into the develop branch.
2025-07-30 08:56:22 +02:00
JC5 895ae279d5 🤖 Auto commit for release 'develop' on 2025-07-30 2025-07-30 08:56:14 +02:00
James Cole 8b57f45963 Return the promise. 2025-07-30 08:37:19 +02:00
James Cole a2d2b7edd3 Add warning to translations. 2025-07-30 07:27:00 +02:00
James Cole 3d65f00c6e Correct tag date and add warning. 2025-07-30 07:26:50 +02:00
James Cole 333004c4d9 Upgrade to font awesome 7, make sure chart includes currencies outside of limits. 2025-07-30 06:59:58 +02:00
James Cole 7451659824 Merge pull request #10661 from firefly-iii/dependabot/npm_and_yarn/develop/cross-env-10.0.0
Bump cross-env from 7.0.3 to 10.0.0
2025-07-28 20:44:31 +02:00
mergify[bot] ec89c23ace Merge branch 'develop' into dependabot/npm_and_yarn/develop/cross-env-10.0.0 2025-07-28 05:08:38 +00:00
James Cole 92d07d346f Merge pull request #10660 from firefly-iii/dependabot/npm_and_yarn/develop/fortawesome/fontawesome-free-7.0.0
Bump @fortawesome/fontawesome-free from 6.7.2 to 7.0.0
2025-07-28 07:08:02 +02:00
mergify[bot] a7ac894af2 Merge branch 'develop' into dependabot/npm_and_yarn/develop/cross-env-10.0.0 2025-07-28 04:39:49 +00:00
dependabot[bot] 20f89e3a7c Bump cross-env from 7.0.3 to 10.0.0
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.3 to 10.0.0.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.3...v10.0.0)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-version: 10.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:39:15 +00:00
mergify[bot] 5d2f11c3c7 Merge branch 'develop' into dependabot/npm_and_yarn/develop/fortawesome/fontawesome-free-7.0.0 2025-07-28 04:38:58 +00:00
dependabot[bot] 1eea79e431 Bump @fortawesome/fontawesome-free from 6.7.2 to 7.0.0
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.7.2 to 7.0.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.2...7.0.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:38:22 +00:00
James Cole 1aaaac67ca Merge pull request #10659 from firefly-iii/dependabot/composer/develop/phpstan/phpstan-2.1.20
Bump phpstan/phpstan from 2.1.19 to 2.1.20
2025-07-28 06:38:11 +02:00
mergify[bot] 1eb86639c9 Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.20 2025-07-28 04:31:47 +00:00
dependabot[bot] 28b911c4ee Bump phpstan/phpstan from 2.1.19 to 2.1.20
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 2.1.19 to 2.1.20.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/2.1.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/2.1.19...2.1.20)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-version: 2.1.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:31:06 +00:00
github-actions[bot] c525c70ec0 Merge pull request #10657 from firefly-iii/release-1753673814
🤖 Automatically merge the PR into the develop branch.
2025-07-28 05:37:03 +02:00
JC5 1f7d6e218b 🤖 Auto commit for release 'develop' on 2025-07-28 2025-07-28 05:36:54 +02:00
James Cole a69b6d9ce2 Respond to "convert to native". 2025-07-27 20:45:08 +02:00
James Cole 28b2ddde18 Account chart can do live update 2025-07-27 07:36:23 +02:00
James Cole a16cc73c77 Sync "convert to native" 2025-07-26 19:17:26 +02:00
James Cole 46395e350a Improved budget chart. 2025-07-26 06:47:21 +02:00
Sander Dorigo f62e49090c Merge branch 'main' into develop 2025-07-25 11:18:24 +02:00
James Cole af3b40a314 Delete .github/workflows/sonarcloud.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-07-25 11:10:05 +02:00
James Cole c3cea0fa9e Update cleanup.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-07-25 11:09:55 +02:00
James Cole 6cbdb2ce70 Update index.js
Fix thnigie

Signed-off-by: James Cole <james@firefly-iii.org>
2025-07-25 10:56:42 +02:00
James Cole b78460100d Fix #10646 2025-07-25 05:44:03 +02:00
github-actions[bot] bf6e1cb0e1 Merge pull request #10642 from firefly-iii/release-1753333227
🤖 Automatically merge the PR into the develop branch.
2025-07-24 07:00:35 +02:00
JC5 6a53f5031c 🤖 Auto commit for release 'develop' on 2025-07-24 2025-07-24 07:00:27 +02:00
James Cole ae15ec01e8 Merge branch 'main' into develop 2025-07-24 06:56:07 +02:00
James Cole fe3c7c47c4 Filter list of bills. 2025-07-24 06:55:53 +02:00
James Cole 68b934010c Merge pull request #10640 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-25988072ba
Bump the npm_and_yarn group across 1 directory with 2 updates
2025-07-23 19:37:09 +02:00
dependabot[bot] 22852bd238 Bump the npm_and_yarn group across 1 directory with 2 updates
Bumps the npm_and_yarn group with 1 update in the / directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

Updates `form-data` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 16:51:30 +00:00
github-actions[bot] 5b3b1804f3 Merge pull request #10638 from firefly-iii/release-1753247140
🤖 Automatically merge the PR into the develop branch.
2025-07-23 07:05:49 +02:00
JC5 f2588eb343 🤖 Auto commit for release 'develop' on 2025-07-23 2025-07-23 07:05:40 +02:00
James Cole 64a643ceec Expand balances. 2025-07-23 07:01:10 +02:00
github-actions[bot] 1add505644 Merge pull request #10634 from firefly-iii/release-1753068994
🤖 Automatically merge the PR into the develop branch.
2025-07-21 05:36:42 +02:00
JC5 9663eb6a19 🤖 Auto commit for release 'develop' on 2025-07-21 2025-07-21 05:36:34 +02:00
github-actions[bot] f30a24a02f Merge pull request #10629 from firefly-iii/release-1753029916
🤖 Automatically merge the PR into the develop branch.
2025-07-20 18:45:22 +02:00
JC5 68655d60a6 🤖 Auto commit for release 'develop' on 2025-07-20 2025-07-20 18:45:16 +02:00
James Cole 63b0efcd81 Remove sonarcloud flow. 2025-07-20 18:41:05 +02:00
James Cole 93284682c8 Improve bill overview. 2025-07-20 14:02:53 +02:00
github-actions[bot] 3bafcb6ad2 Merge pull request #10625 from firefly-iii/release-1753007822
🤖 Automatically merge the PR into the develop branch.
2025-07-20 12:37:09 +02:00
JC5 942d027556 🤖 Auto commit for release 'develop' on 2025-07-20 2025-07-20 12:37:02 +02:00
James Cole a60882d5f5 Clean up v2. 2025-07-20 12:32:53 +02:00
James Cole 680f554981 Fix #10618 2025-07-19 21:08:37 +02:00
James Cole 20e4dc07ce Bad quote in html 2025-07-18 19:53:22 +02:00
James Cole 184d8eb027 Use new settings for php cs fixer. 2025-07-17 06:54:20 +02:00
github-actions[bot] 59725b088a Merge pull request #10608 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-07-17 06:46:17 +02:00
github-actions[bot] 32fca4a9f5 Merge pull request #10607 from firefly-iii/release-1752727561
🤖 Automatically merge the PR into the develop branch.
2025-07-17 06:46:12 +02:00
JC5 7dccf6ec48 🤖 Auto commit for release 'v6.2.21' on 2025-07-17 2025-07-17 06:46:01 +02:00
github-actions[bot] 917665feac Merge pull request #10606 from firefly-iii/release-1752727317
🤖 Automatically merge the PR into the develop branch.
2025-07-17 06:42:04 +02:00
JC5 06c50b68c2 🤖 Auto commit for release 'develop' on 2025-07-17 2025-07-17 06:41:57 +02:00
James Cole 7035c399d8 Update changelog. 2025-07-17 06:36:37 +02:00
James Cole 7c0ac5805c Fix #10601 2025-07-16 17:09:37 +02:00
James Cole 3424741583 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-07-14 07:00:16 +02:00
James Cole baf0297994 Update vite 2025-07-14 07:00:10 +02:00
github-actions[bot] 31d06752fa Merge pull request #10591 from firefly-iii/release-1752464168
🤖 Automatically merge the PR into the develop branch.
2025-07-14 05:36:14 +02:00
JC5 8a27154798 🤖 Auto commit for release 'develop' on 2025-07-14 2025-07-14 05:36:08 +02:00
github-actions[bot] 6d87e38ec0 Merge pull request #10583 from firefly-iii/release-1752300569
🤖 Automatically merge the PR into the develop branch.
2025-07-12 08:09:37 +02:00
JC5 ccdc30a6fb 🤖 Auto commit for release 'develop' on 2025-07-12 2025-07-12 08:09:29 +02:00
James Cole 90005538d3 Fix one tiny date thing. 2025-07-12 08:05:30 +02:00
James Cole f4e0428ebc Limit date ranges to fix #10581 2025-07-12 06:18:25 +02:00
github-actions[bot] bd1326eca9 Merge pull request #10577 from firefly-iii/release-1752124263
🤖 Automatically merge the PR into the develop branch.
2025-07-10 07:11:12 +02:00
JC5 bdfa834251 🤖 Auto commit for release 'develop' on 2025-07-10 2025-07-10 07:11:04 +02:00
James Cole 4a9aeb4e44 Rename tagMode to tag_mode. 2025-07-10 07:04:20 +02:00
github-actions[bot] 3886c0fbde Merge pull request #10563 from firefly-iii/release-1751859243
🤖 Automatically merge the PR into the develop branch.
2025-07-07 05:34:17 +02:00
JC5 d998eff56e 🤖 Auto commit for release 'develop' on 2025-07-07 2025-07-07 05:34:03 +02:00
github-actions[bot] d73df9bf0a Merge pull request #10559 from firefly-iii/release-1751823330
🤖 Automatically merge the PR into the develop branch.
2025-07-06 19:35:38 +02:00
JC5 754f2f3a34 🤖 Auto commit for release 'develop' on 2025-07-06 2025-07-06 19:35:30 +02:00
James Cole 43fd7c928a Add build_time 2025-07-06 19:32:01 +02:00
github-actions[bot] 05768c2e73 Merge pull request #10548 from firefly-iii/release-1751477916
🤖 Automatically merge the PR into the develop branch.
2025-07-02 19:38:43 +02:00
JC5 3feb2c9955 🤖 Auto commit for release 'develop' on 2025-07-02 2025-07-02 19:38:36 +02:00
James Cole 7d9f3ac473 Fix logs. 2025-07-02 19:35:01 +02:00
James Cole 8a5755c8f1 Add debug information. 2025-07-02 19:34:05 +02:00
github-actions[bot] a75a760019 Merge pull request #10547 from firefly-iii/release-1751476883
🤖 Automatically merge the PR into the develop branch.
2025-07-02 19:21:31 +02:00
JC5 78d1a130d2 🤖 Auto commit for release 'develop' on 2025-07-02 2025-07-02 19:21:23 +02:00
github-actions[bot] 79fd43f32b Merge pull request #10538 from firefly-iii/release-1751429580
🤖 Automatically merge the PR into the develop branch.
2025-07-02 06:13:10 +02:00
JC5 7a7bd65a27 🤖 Auto commit for release 'develop' on 2025-07-02 2025-07-02 06:13:00 +02:00
github-actions[bot] 01a9ecccac Merge pull request #10537 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-07-02 06:03:28 +02:00
github-actions[bot] c1b3c71090 Merge pull request #10536 from firefly-iii/release-1751428997
🤖 Automatically merge the PR into the develop branch.
2025-07-02 06:03:24 +02:00
JC5 323d04fe6c 🤖 Auto commit for release 'v6.2.20' on 2025-07-02 2025-07-02 06:03:17 +02:00
James Cole 80c2f1ea3f Update changelog. 2025-07-02 05:59:25 +02:00
James Cole 784494871d Fix #10530 2025-07-01 19:33:43 +02:00
James Cole 8e93af5cc7 Fix #10535 2025-07-01 19:31:27 +02:00
James Cole ebfdeeedaa Fix #10517 2025-06-30 20:28:29 +02:00
github-actions[bot] 1d02ed6a56 Merge pull request #10525 from firefly-iii/release-1751254389
🤖 Automatically merge the PR into the develop branch.
2025-06-30 05:33:15 +02:00
JC5 cca53cb0e8 🤖 Auto commit for release 'develop' on 2025-06-30 2025-06-30 05:33:09 +02:00
github-actions[bot] ab33aee4b1 Merge pull request #10521 from firefly-iii/release-1751208250
🤖 Automatically merge the PR into the develop branch.
2025-06-29 16:44:18 +02:00
JC5 41d4fab071 🤖 Auto commit for release 'develop' on 2025-06-29 2025-06-29 16:44:10 +02:00
James Cole f0a1913dc6 Enable new query parser by default. 2025-06-29 06:46:40 +02:00
github-actions[bot] b956b463c2 Merge pull request #10515 from firefly-iii/release-1751095523
🤖 Automatically merge the PR into the develop branch.
2025-06-28 09:25:30 +02:00
JC5 43603c4990 🤖 Auto commit for release 'develop' on 2025-06-28 2025-06-28 09:25:23 +02:00
github-actions[bot] 196e738f60 Merge pull request #10514 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-06-28 08:53:36 +02:00
github-actions[bot] 59e2ea357a Merge pull request #10513 from firefly-iii/release-1751093606
🤖 Automatically merge the PR into the develop branch.
2025-06-28 08:53:32 +02:00
JC5 5e9d942069 🤖 Auto commit for release 'v6.2.19' on 2025-06-28 2025-06-28 08:53:26 +02:00
James Cole 53d5bedd85 Update changelog and config. 2025-06-28 08:48:53 +02:00
James Cole 49c68af07b Fix #10510 2025-06-27 20:59:47 +02:00
James Cole c84c8e1aef Fix #10507 2025-06-27 11:10:41 +02:00
James Cole a8d43d7174 Add donation text. 2025-06-26 17:32:06 +02:00
James Cole 1087278890 Make sure phpcs and rector agree on styles. 2025-06-26 11:57:15 +02:00
James Cole ae5912ab52 Remove some logs. 2025-06-26 11:45:31 +02:00
github-actions[bot] 035bd96ae5 Merge pull request #10501 from firefly-iii/release-1750913017
🤖 Automatically merge the PR into the develop branch.
2025-06-26 06:43:46 +02:00
JC5 7283c616a0 🤖 Auto commit for release 'develop' on 2025-06-26 2025-06-26 06:43:37 +02:00
James Cole 5706666bb6 Fewer loops. 2025-06-26 06:40:00 +02:00
James Cole 4607466fb6 Remove some debug logging. 2025-06-26 06:36:15 +02:00
James Cole 34bcfcfe9b Fix #10499 2025-06-25 21:35:52 +02:00
github-actions[bot] 05986cb6a6 Merge pull request #10495 from firefly-iii/release-1750873643
🤖 Automatically merge the PR into the develop branch.
2025-06-25 19:47:30 +02:00
JC5 0c4ee9f043 🤖 Auto commit for release 'develop' on 2025-06-25 2025-06-25 19:47:23 +02:00
James Cole ff222795cf Add date to compare hash. 2025-06-25 19:43:03 +02:00
James Cole e0c76695ee Fix tests 2025-06-24 13:25:03 +02:00
James Cole ae126e8322 Fix #10493 2025-06-24 13:14:31 +02:00
James Cole 8f9c35fbe8 Experimental fix for #10489 2025-06-23 20:45:00 +02:00
github-actions[bot] 84efd6e2ee Merge pull request #10487 from firefly-iii/release-1750649637
🤖 Automatically merge the PR into the develop branch.
2025-06-23 05:34:05 +02:00
JC5 b1fbe4e909 🤖 Auto commit for release 'develop' on 2025-06-23 2025-06-23 05:33:57 +02:00
James Cole 8576877072 Reverse currency change. 2025-06-20 07:45:41 +02:00
github-actions[bot] c298aced01 Merge pull request #10479 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-06-20 06:45:28 +02:00
github-actions[bot] ac61a78d8d Merge pull request #10478 from firefly-iii/release-1750394715
🤖 Automatically merge the PR into the develop branch.
2025-06-20 06:45:22 +02:00
JC5 fce90a94c4 🤖 Auto commit for release 'v6.2.18' on 2025-06-20 2025-06-20 06:45:15 +02:00
github-actions[bot] 023a4f178d Merge pull request #10477 from firefly-iii/release-1750393987
🤖 Automatically merge the PR into the develop branch.
2025-06-20 06:33:14 +02:00
JC5 ef254995ad 🤖 Auto commit for release 'develop' on 2025-06-20 2025-06-20 06:33:07 +02:00
James Cole faeb74634b Merge branch 'main' into develop 2025-06-20 06:28:53 +02:00
James Cole b5baae373f Move changelog. 2025-06-20 06:28:42 +02:00
James Cole 63de711cda Update changelog. 2025-06-20 06:24:19 +02:00
James Cole bd28d116cb Fix currency seeder, add some debug logs. 2025-06-20 05:59:44 +02:00
github-actions[bot] 7efc2861bc Merge pull request #10468 from firefly-iii/release-1750044727
🤖 Automatically merge the PR into the develop branch.
2025-06-16 05:32:16 +02:00
JC5 5c689a2ca2 🤖 Auto commit for release 'develop' on 2025-06-16 2025-06-16 05:32:08 +02:00
github-actions[bot] d5d65df76f Merge pull request #10459 from firefly-iii/release-1749897382
🤖 Automatically merge the PR into the develop branch.
2025-06-14 12:36:32 +02:00
JC5 df7d4f700c 🤖 Auto commit for release 'develop' on 2025-06-14 2025-06-14 12:36:22 +02:00
James Cole efebe3cb41 Remove debug letters. 2025-06-14 12:31:54 +02:00
James Cole 2ba5b6ae49 Fix #10454 2025-06-14 10:18:58 +02:00
github-actions[bot] 31d93efab2 Merge pull request #10451 from firefly-iii/release-1749735701
🤖 Automatically merge the PR into the develop branch.
2025-06-12 15:41:49 +02:00
JC5 657b95485c 🤖 Auto commit for release 'develop' on 2025-06-12 2025-06-12 15:41:41 +02:00
Sander Dorigo 3bfc12f93b Try to be more clear about OAuth errors 2025-06-12 15:36:38 +02:00
James Cole ccfd2f2ac3 Update fr.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-06-12 13:12:50 +02:00
James Cole fb3fe0d87b Update bug.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-06-12 13:11:55 +02:00
James Cole c80c6d52fe Update config.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-06-12 13:02:14 +02:00
Sander Dorigo 0fb3c0c7bf Add missing variable name 2025-06-11 15:51:39 +02:00
github-actions[bot] 43c625bee2 Merge pull request #10444 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-06-11 14:07:28 +02:00
github-actions[bot] 967a5dd256 Merge pull request #10443 from firefly-iii/release-1749643634
🤖 Automatically merge the PR into the develop branch.
2025-06-11 14:07:22 +02:00
JC5 3c9d1bcaa1 🤖 Auto commit for release 'v6.2.17' on 2025-06-11 2025-06-11 14:07:14 +02:00
github-actions[bot] 8cd2de14a9 Merge pull request #10442 from firefly-iii/release-1749642296
🤖 Automatically merge the PR into the develop branch.
2025-06-11 13:45:03 +02:00
JC5 7728a35e04 🤖 Auto commit for release 'develop' on 2025-06-11 2025-06-11 13:44:56 +02:00
Sander Dorigo 49000da123 Update changelog. 2025-06-11 13:40:11 +02:00
Sander Dorigo 32a8f89875 Fix #10419 2025-06-11 13:29:36 +02:00
Sander Dorigo 49e5a81bd3 Fix 10382 2025-06-11 13:23:51 +02:00
Sander Dorigo a8efe86af0 Fix #10229 2025-06-11 13:19:53 +02:00
Sander Dorigo 4f07b089d2 Fix #10441 2025-06-11 09:28:56 +02:00
James Cole e786bf47c2 Small code quality things. 2025-06-09 07:06:42 +02:00
github-actions[bot] be11778c53 Merge pull request #10438 from firefly-iii/release-1749444033
🤖 Automatically merge the PR into the develop branch.
2025-06-09 06:40:42 +02:00
JC5 3d7325424c 🤖 Auto commit for release 'develop' on 2025-06-09 2025-06-09 06:40:34 +02:00
James Cole f4ffed99ef Change some code. 2025-06-09 06:35:58 +02:00
github-actions[bot] 52dfe9a738 Merge pull request #10437 from firefly-iii/release-1749442144
🤖 Automatically merge the PR into the develop branch.
2025-06-09 06:09:10 +02:00
JC5 a0bc8b2ba2 🤖 Auto commit for release 'develop' on 2025-06-09 2025-06-09 06:09:04 +02:00
James Cole 4ffca9e2ca Some fixable code. 2025-06-09 06:05:18 +02:00
James Cole a6afec9afa Merge branch 'main' into develop 2025-06-09 06:04:58 +02:00
James Cole 5d859222f8 Add debug info to release script. 2025-06-09 06:04:50 +02:00
github-actions[bot] 0e3ba14666 Merge pull request #10436 from firefly-iii/release-1749441527
🤖 Automatically merge the PR into the develop branch.
2025-06-09 05:58:55 +02:00
JC5 860767fe5a 🤖 Auto commit for release 'develop' on 2025-06-09 2025-06-09 05:58:47 +02:00
James Cole 91b0ad625c Fix #10433 2025-06-09 05:53:11 +02:00
James Cole 67bab2561a Fix https://github.com/firefly-iii/firefly-iii/issues/10432 2025-06-09 05:50:23 +02:00
github-actions[bot] b7908ebcb4 Merge pull request #10434 from firefly-iii/release-1749439923
🤖 Automatically merge the PR into the develop branch.
2025-06-09 05:32:12 +02:00
JC5 a20601ea85 🤖 Auto commit for release 'develop' on 2025-06-09 2025-06-09 05:32:04 +02:00
James Cole 14622329a8 Replace app calls with static calls. 2025-06-08 15:20:22 +02:00
github-actions[bot] 5577be7b08 Merge pull request #10428 from firefly-iii/release-1749383237
🤖 Automatically merge the PR into the develop branch.
2025-06-08 13:47:27 +02:00
JC5 e3bab9d7d8 🤖 Auto commit for release 'develop' on 2025-06-08 2025-06-08 13:47:17 +02:00
James Cole e0512bee3d Fix #10427 2025-06-08 13:17:01 +02:00
James Cole 20827a5fd1 Fix #10426 2025-06-08 05:55:22 +02:00
James Cole 8819dac1e1 Merge branches 'develop' and 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-06-07 06:31:19 +02:00
James Cole da0a07262c Fix # 2025-06-07 06:31:14 +02:00
github-actions[bot] 9c195dcc66 Merge pull request #10416 from firefly-iii/release-1749057506
🤖 Automatically merge the PR into the develop branch.
2025-06-04 19:18:33 +02:00
JC5 0b45506e52 🤖 Auto commit for release 'develop' on 2025-06-04 2025-06-04 19:18:26 +02:00
James Cole 51e58f8d88 Fix #10413 2025-06-04 15:40:29 +02:00
James Cole d0c658e79a Update message to include IP 2025-06-03 20:00:13 +02:00
github-actions[bot] 35e0791a9f Merge pull request #10411 from firefly-iii/release-1748971941
🤖 Automatically merge the PR into the develop branch.
2025-06-03 19:32:29 +02:00
JC5 637ecc66d2 🤖 Auto commit for release 'develop' on 2025-06-03 2025-06-03 19:32:21 +02:00
James Cole 3a38175b2a Fix renamed variable. 2025-06-03 19:26:07 +02:00
James Cole d78fd86d7a Catch already linked transactions. 2025-06-02 20:46:09 +02:00
James Cole 395332d6dd Fix #10403 2025-06-02 20:32:58 +02:00
James Cole c5cbceb81a Fix #10399 2025-06-02 05:39:43 +02:00
github-actions[bot] ec94f1bcf1 Merge pull request #10401 from firefly-iii/release-1748835078
🤖 Automatically merge the PR into the develop branch.
2025-06-02 05:31:25 +02:00
JC5 ee3d18a8ea 🤖 Auto commit for release 'develop' on 2025-06-02 2025-06-02 05:31:18 +02:00
James Cole a9cd8b6512 Better fit for run recalculations. 2025-06-01 14:00:35 +02:00
James Cole 5bd87036b0 Config works now. Does not feel solved yet, but still. 2025-06-01 13:32:18 +02:00
github-actions[bot] 0e7d72023d Merge pull request #10398 from firefly-iii/release-1748774144
🤖 Automatically merge the PR into the develop branch.
2025-06-01 12:35:50 +02:00
JC5 314f91ff24 🤖 Auto commit for release 'develop' on 2025-06-01 2025-06-01 12:35:44 +02:00
James Cole ed54a5c9a4 Fix cache issue in recurring cron job report. 2025-06-01 12:24:02 +02:00
github-actions[bot] 5d35edb126 Merge pull request #10397 from firefly-iii/release-1748670980
🤖 Automatically merge the PR into the develop branch.
2025-05-31 07:56:29 +02:00
JC5 8bdfdc39cb 🤖 Auto commit for release 'develop' on 2025-05-31 2025-05-31 07:56:20 +02:00
James Cole d465b51da8 Only trigger running balance when amount actually changes. 2025-05-31 07:22:42 +02:00
James Cole 3344d2e5f3 Expand and pick up layout. 2025-05-30 08:11:12 +02:00
James Cole 0521da124e Add new fields to API. 2025-05-30 08:10:51 +02:00
James Cole 7e9c5a668f Remove spaces from account numbers. 2025-05-29 22:04:42 +02:00
github-actions[bot] 08e2c1684f Merge pull request #10388 from firefly-iii/release-1748541535
🤖 Automatically merge the PR into the develop branch.
2025-05-29 19:59:02 +02:00
JC5 36ab188ad1 🤖 Auto commit for release 'develop' on 2025-05-29 2025-05-29 19:58:55 +02:00
James Cole 2e69e09808 Catch error 2025-05-29 19:55:13 +02:00
James Cole adba360466 Update some code with rector. 2025-05-29 15:22:55 +02:00
James Cole 5be6bb755d Update files using Rector. 2025-05-29 15:01:06 +02:00
James Cole 189a323f3c Catch a nullpointer. 2025-05-29 13:38:40 +02:00
github-actions[bot] adbf785aba Merge pull request #10381 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-05-27 18:27:32 +02:00
github-actions[bot] b1258d0b43 Merge pull request #10380 from firefly-iii/release-1748363232
🤖 Automatically merge the PR into the develop branch.
2025-05-27 18:27:26 +02:00
JC5 f33ec58e7c 🤖 Auto commit for release 'v6.2.16' on 2025-05-27 2025-05-27 18:27:12 +02:00
github-actions[bot] 58bd818539 Merge pull request #10379 from firefly-iii/release-1748362919
🤖 Automatically merge the PR into the develop branch.
2025-05-27 18:22:05 +02:00
JC5 b875e67fe0 🤖 Auto commit for release 'develop' on 2025-05-27 2025-05-27 18:21:59 +02:00
James Cole b9528c05a0 Add language 2025-05-27 18:18:08 +02:00
James Cole bc98100401 Remove comments. 2025-05-27 17:35:22 +02:00
James Cole 26bbb21520 Add Afrikaans to config 2025-05-27 17:28:41 +02:00
github-actions[bot] 86a51b5caa Merge pull request #10378 from firefly-iii/release-1748359419
🤖 Automatically merge the PR into the develop branch.
2025-05-27 17:23:46 +02:00
JC5 c3e039a757 🤖 Auto commit for release 'develop' on 2025-05-27 2025-05-27 17:23:39 +02:00
James Cole 7762f555c5 Merge pull request #10377 from firefly-iii/rector-fixes
Rector fixes
2025-05-27 17:13:21 +02:00
James Cole e412e23c87 Final fixes. 2025-05-27 17:09:35 +02:00
James Cole 2cb14f6b72 Fix various code. 2025-05-27 17:06:15 +02:00
James Cole d8f512ca3a Update configuration and fix some files. 2025-05-27 17:02:18 +02:00
James Cole c074fec0a7 Import statements and update configuration. 2025-05-27 16:57:36 +02:00
James Cole 7c04c4c2bc Fix a bunch of rector issues. 2025-05-27 16:53:48 +02:00
github-actions[bot] df82252c95 Merge pull request #10371 from firefly-iii/release-1748282618
🤖 Automatically merge the PR into the develop branch.
2025-05-26 20:03:51 +02:00
JC5 c747f4afd8 🤖 Auto commit for release 'develop' on 2025-05-26 2025-05-26 20:03:38 +02:00
James Cole bcd7db0256 Fix nullpointer in groups.twig. 2025-05-26 19:59:15 +02:00
James Cole 469acce76d Merge pull request #10369 from firefly-iii/fix-10367
Fix 10367
2025-05-26 06:08:14 +02:00
James Cole 568f71ce63 Update changelog. 2025-05-26 06:07:52 +02:00
James Cole f6fbcf54aa Fix #10367 2025-05-26 06:07:21 +02:00
github-actions[bot] c194a1ae20 Merge pull request #10368 from firefly-iii/release-1748230057
🤖 Automatically merge the PR into the develop branch.
2025-05-26 05:27:43 +02:00
JC5 7df3728394 🤖 Auto commit for release 'develop' on 2025-05-26 2025-05-26 05:27:37 +02:00
James Cole acad0b5b55 Actual changelog 2025-05-25 07:13:06 +02:00
github-actions[bot] 1fae39a49d Merge pull request #10366 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-05-25 07:11:22 +02:00
github-actions[bot] 605ab38660 Merge pull request #10365 from firefly-iii/release-1748149867
🤖 Automatically merge the PR into the develop branch.
2025-05-25 07:11:18 +02:00
JC5 75b21b20d8 🤖 Auto commit for release 'v6.2.15' on 2025-05-25 2025-05-25 07:11:07 +02:00
github-actions[bot] e82459cd29 Merge pull request #10364 from firefly-iii/release-1748149540
🤖 Automatically merge the PR into the develop branch.
2025-05-25 07:05:46 +02:00
JC5 6dcf80967e 🤖 Auto commit for release 'develop' on 2025-05-25 2025-05-25 07:05:40 +02:00
James Cole 3d9edaeaac Restore missing facades. Whoops. 2025-05-25 07:01:31 +02:00
github-actions[bot] 659240a98b Merge pull request #10363 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-05-25 06:49:54 +02:00
github-actions[bot] 4a5a31bf69 Merge pull request #10362 from firefly-iii/release-1748148584
🤖 Automatically merge the PR into the develop branch.
2025-05-25 06:49:50 +02:00
JC5 5f73e37657 🤖 Auto commit for release 'v6.2.14' on 2025-05-25 2025-05-25 06:49:44 +02:00
github-actions[bot] 7a9c0a8172 Merge pull request #10361 from firefly-iii/release-1748147782
🤖 Automatically merge the PR into the develop branch.
2025-05-25 06:36:31 +02:00
JC5 39914e2380 🤖 Auto commit for release 'develop' on 2025-05-25 2025-05-25 06:36:22 +02:00
James Cole 5a3240f69d Update changelog. 2025-05-25 06:27:05 +02:00
James Cole 19e5fd6277 Back to passport 12 for the time being. 2025-05-25 06:24:01 +02:00
James Cole e9844dc2f5 Fix #10353 2025-05-24 19:48:09 +02:00
James Cole c9f07c093a Fix tests and migrations 2025-05-24 17:30:08 +02:00
James Cole 6a986d8119 Merge pull request #10352 from firefly-iii/rector-cleanup-2
Rector cleanup 2
2025-05-24 17:20:07 +02:00
James Cole f780de9e71 Replace magic facades 2025-05-24 17:19:18 +02:00
James Cole b830bd2732 Replace magic facades 2025-05-24 17:15:46 +02:00
James Cole e333dedeec Replace magic facades. 2025-05-24 17:07:12 +02:00
James Cole 6e5a08245c Rector code cleanup 2025-05-24 16:39:20 +02:00
James Cole 6a82a813e0 Fix version, I guess. 2025-05-24 07:24:28 +02:00
James Cole 7992ecf7f6 Use other workflow thing. 2025-05-24 07:22:18 +02:00
James Cole 967f7cb015 Move fix around 2025-05-24 06:37:19 +02:00
James Cole 7ca5e03752 Fix access rights in Sonar test 2025-05-24 06:36:06 +02:00
github-actions[bot] e9644c9679 Merge pull request #10345 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-05-24 06:31:42 +02:00
github-actions[bot] abc6c611fa Merge pull request #10344 from firefly-iii/release-1748061087
🤖 Automatically merge the PR into the develop branch.
2025-05-24 06:31:36 +02:00
JC5 7673b939a1 🤖 Auto commit for release 'v6.2.13' on 2025-05-24 2025-05-24 06:31:28 +02:00
github-actions[bot] c029bd42a7 Merge pull request #10343 from firefly-iii/release-1748060657
🤖 Automatically merge the PR into the develop branch.
2025-05-24 06:24:24 +02:00
JC5 63d051d9ba 🤖 Auto commit for release 'develop' on 2025-05-24 2025-05-24 06:24:17 +02:00
James Cole 1ec5ee08aa Update changelog and some final fixes. 2025-05-24 06:19:07 +02:00
James Cole 66be8ee80e Merge pull request #10342 from firefly-iii/fix-phpunit
Fix phpunit tests
2025-05-24 06:09:47 +02:00
James Cole d26d1b4b87 Fix phpunit tests 2025-05-24 06:07:59 +02:00
James Cole 3716b50616 Merge pull request #10341 from firefly-iii/fix-10320
Fix #10320
2025-05-24 05:53:39 +02:00
James Cole 5e398bd07a Merge pull request #10340 from firefly-iii/nestor
Nestor
2025-05-24 05:53:10 +02:00
James Cole 2ee000debb Fix #10320 2025-05-24 05:52:46 +02:00
James Cole b8e33201bd Not sure why I keep calling this tool nestor, it's called rector 2025-05-24 05:52:31 +02:00
James Cole 1c33be4828 Various nestor-related fixes. 2025-05-24 05:46:39 +02:00
James Cole c40229e9fa Various nestor-related fixes. 2025-05-24 05:40:20 +02:00
James Cole b7ec7625c0 Merge pull request #10339 from firefly-iii/fix-10336
Fix #10336
2025-05-24 05:36:04 +02:00
James Cole 64170d4957 Fix #10336 2025-05-24 05:35:31 +02:00
James Cole d82c3b55e0 Merge pull request #10331 from firefly-iii/fix-10308
Fix #10308
2025-05-22 06:41:46 +02:00
James Cole 01800a3534 Fix #10308 2025-05-22 06:41:17 +02:00
James Cole 01404bf9cd Merge pull request #10330 from firefly-iii/fix-10305
Fix #10305
2025-05-22 06:11:22 +02:00
James Cole 2f9d73c0b3 Fix #10305 2025-05-22 06:10:54 +02:00
James Cole 670c2e4872 Merge pull request #10329 from firefly-iii/fix-10302
Fix #10302
2025-05-22 06:07:02 +02:00
James Cole 1261122a57 Fix #10302 2025-05-22 06:06:30 +02:00
James Cole 2a17ec9280 Merge pull request #10328 from firefly-iii/fix-10290
Fix #10290
2025-05-22 06:03:05 +02:00
James Cole 1424410115 Fix #10290 2025-05-22 06:02:32 +02:00
James Cole f20eccf279 Update static cron token 2025-05-19 19:45:19 +02:00
github-actions[bot] c18cbe1d26 Merge pull request #10319 from firefly-iii/release-1747670547
🤖 Automatically merge the PR into the develop branch.
2025-05-19 18:02:33 +02:00
JC5 d5a3ae43e0 🤖 Auto commit for release 'develop' on 2025-05-19 2025-05-19 18:02:27 +02:00
James Cole 767abacd27 Add spaces. 2025-05-19 17:58:37 +02:00
James Cole 2b3172ba8e Update packcages 2025-05-19 17:53:33 +02:00
github-actions[bot] 1ff8a48ca3 Merge pull request #10317 from firefly-iii/release-1747668888
🤖 Automatically merge the PR into the develop branch.
2025-05-19 17:34:55 +02:00
JC5 5b7645b6d5 🤖 Auto commit for release 'develop' on 2025-05-19 2025-05-19 17:34:48 +02:00
James Cole ae82474b19 Update packages. 2025-05-19 17:30:53 +02:00
github-actions[bot] d38c59c5b1 Merge pull request #10313 from firefly-iii/release-1747625288
🤖 Automatically merge the PR into the develop branch.
2025-05-19 05:28:15 +02:00
JC5 a4205afb7b 🤖 Auto commit for release 'develop' on 2025-05-19 2025-05-19 05:28:08 +02:00
github-actions[bot] 75e187ee34 Merge pull request #10303 from firefly-iii/release-1747228276
🤖 Automatically merge the PR into the develop branch.
2025-05-14 15:11:26 +02:00
JC5 a37ed82bb4 🤖 Auto commit for release 'develop' on 2025-05-14 2025-05-14 15:11:16 +02:00
Sander Dorigo a7233de561 Downgrade 2025-05-14 15:06:10 +02:00
github-actions[bot] e87c5eee6b Merge pull request #10301 from firefly-iii/release-1747184469
🤖 Automatically merge the PR into the develop branch.
2025-05-14 03:01:16 +02:00
JC5 7a75290709 🤖 Auto commit for release 'develop' on 2025-05-14 2025-05-14 03:01:10 +02:00
James Cole 981f6df9ee Merge branch 'main' into develop 2025-05-14 02:57:20 +02:00
James Cole c4572c66d3 Restore and update packages. 2025-05-14 02:56:53 +02:00
github-actions[bot] 8e7d750a5a Merge pull request #10298 from firefly-iii/release-1747132859
🤖 Automatically merge the PR into the develop branch.
2025-05-13 12:41:07 +02:00
JC5 94961466f9 🤖 Auto commit for release 'develop' on 2025-05-13 2025-05-13 12:40:59 +02:00
Sander Dorigo 0f3fe45b06 Make parameter optional 2025-05-13 12:36:26 +02:00
Sander Dorigo 0650457ea5 Experimental extra fix for #10265 2025-05-12 13:25:01 +02:00
github-actions[bot] 2e1ce03f13 Merge pull request #10296 from firefly-iii/release-1747034656
🤖 Automatically merge the PR into the develop branch.
2025-05-12 09:24:22 +02:00
JC5 9b345db623 🤖 Auto commit for release 'develop' on 2025-05-12 2025-05-12 09:24:16 +02:00
Sander Dorigo c1afcc5219 add code improvement 2025-05-12 09:20:38 +02:00
Sander Dorigo fb394b7f45 Fix nullpointer 2025-05-12 09:19:42 +02:00
Sander Dorigo 381598f1bb Fix optional web routes 2025-05-12 08:39:21 +02:00
James Cole 25b7a76da9 Merge pull request #10294 from firefly-iii/dependabot/github_actions/github/command-2.0.1 2025-05-12 06:37:59 +02:00
dependabot[bot] 4b03ebe3cb Bump github/command from 2.0.0 to 2.0.1
Bumps [github/command](https://github.com/github/command) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/github/command/releases)
- [Commits](https://github.com/github/command/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: github/command
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:26:53 +00:00
github-actions[bot] 664c59136a Merge pull request #10293 from firefly-iii/release-1747020359
🤖 Automatically merge the PR into the develop branch.
2025-05-12 05:26:07 +02:00
JC5 27b61aae73 🤖 Auto commit for release 'develop' on 2025-05-12 2025-05-12 05:26:00 +02:00
github-actions[bot] d90fcd1889 Merge pull request #10288 from firefly-iii/release-1746966536
🤖 Automatically merge the PR into the develop branch.
2025-05-11 14:29:03 +02:00
JC5 979d5c579b 🤖 Auto commit for release 'develop' on 2025-05-11 2025-05-11 14:28:56 +02:00
James Cole 5124ca1738 Introduce change for CI to catch. 2025-05-11 14:24:59 +02:00
James Cole ac5d9b656a Merge pull request #10287 from firefly-iii/add-safe
Include safe methods and require the correct package.
2025-05-11 14:19:33 +02:00
James Cole 9a02739251 Include safe methods and require the correct package. 2025-05-11 14:19:07 +02:00
James Cole 4af2aadc48 Merge pull request #10286 from firefly-iii/remove-safe-methods
Remove safe methods.
2025-05-11 14:09:02 +02:00
James Cole 84779b8d02 Remove safe methods. 2025-05-11 14:08:32 +02:00
github-actions[bot] 145e8d23f0 Merge pull request #10285 from firefly-iii/release-1746964861
🤖 Automatically merge the PR into the develop branch.
2025-05-11 14:01:08 +02:00
JC5 d0ba0583a5 🤖 Auto commit for release 'develop' on 2025-05-11 2025-05-11 14:01:01 +02:00
James Cole 17d8b54280 Merge pull request #10284 from firefly-iii/fix-missing-import-2
Temp commit because the build fails otherwise and I haven't fixed tha…
2025-05-11 13:56:41 +02:00
James Cole 2cf0bfe3c4 Temp commit because the build fails otherwise and I haven't fixed that yet. 2025-05-11 13:56:07 +02:00
James Cole 070a8cf148 Remove safe functions 2025-05-11 13:16:09 +02:00
github-actions[bot] f94c21446a Merge pull request #10283 from firefly-iii/release-1746961946
🤖 Automatically merge the PR into the develop branch.
2025-05-11 13:12:33 +02:00
JC5 1ef1873016 🤖 Auto commit for release 'develop' on 2025-05-11 2025-05-11 13:12:26 +02:00
James Cole 32e4e29e7c Merge pull request #10282 from firefly-iii/fix-missing-import
Fix missing import.
2025-05-11 13:08:28 +02:00
James Cole 65ca0dd9e0 Fix missing import. 2025-05-11 13:07:37 +02:00
github-actions[bot] 3385e12c01 Merge pull request #10281 from firefly-iii/release-1746961196
🤖 Automatically merge the PR into the develop branch.
2025-05-11 13:00:03 +02:00
JC5 3566a4afa3 🤖 Auto commit for release 'develop' on 2025-05-11 2025-05-11 12:59:56 +02:00
James Cole 68ff033342 Merge pull request #10279 from firefly-iii/fix-10265-addendum
Fix 10265 addendum
2025-05-11 08:33:52 +02:00
James Cole f141b0be5c Merge branch 'develop' into fix-10265-addendum
# Conflicts:
#	app/Factory/TransactionJournalFactory.php
2025-05-11 08:33:35 +02:00
James Cole d399dd160f Merge pull request #10278 from firefly-iii/fix-10265
Fix #10265
2025-05-11 08:31:10 +02:00
James Cole 4c8ed784cd Final check for transaction types 2025-05-11 08:29:31 +02:00
James Cole fb3402acd4 Fix storage issue with transactions. 2025-05-11 08:00:38 +02:00
James Cole 8cad430816 Fix validation error in transaction processing. 2025-05-11 07:35:20 +02:00
James Cole 01502b456e Disable fix for the moment. 2025-05-11 07:29:18 +02:00
James Cole 9b6314066b Clean up logs. 2025-05-11 07:23:35 +02:00
James Cole e61dadcbc6 Implement correction method. 2025-05-11 07:20:17 +02:00
James Cole f7baf5b2fd Better debug info 2025-05-11 07:11:00 +02:00
James Cole 0545826d57 Do not try to correct transactions between asset / liability with foreign amount info. 2025-05-11 07:09:48 +02:00
James Cole a29904704c Fix #10265 2025-05-11 07:01:36 +02:00
James Cole 899d374222 Merge pull request #10271 from firefly-iii/various-updates
Fix account list and remove sanctum
2025-05-08 20:22:24 +02:00
James Cole 07ff2305fd Fix account list and remove sanctum 2025-05-08 20:22:01 +02:00
James Cole ee96dd3ab6 Merge pull request #10270 from firefly-iii/main
Update packages
2025-05-08 20:21:12 +02:00
James Cole a766d3a133 Merge pull request #10263 from firefly-iii/dependabot/composer/composer-761f56e718 2025-05-06 07:22:08 +02:00
dependabot[bot] 67545b0371 Bump league/commonmark in the composer group across 1 directory
Bumps the composer group with 1 update in the / directory: [league/commonmark](https://github.com/thephpleague/commonmark).


Updates `league/commonmark` from 2.6.2 to 2.7.0
- [Release notes](https://github.com/thephpleague/commonmark/releases)
- [Changelog](https://github.com/thephpleague/commonmark/blob/2.7/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/commonmark/compare/2.6.2...2.7.0)

---
updated-dependencies:
- dependency-name: league/commonmark
  dependency-version: 2.7.0
  dependency-type: direct:production
  dependency-group: composer
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-06 01:59:56 +00:00
James Cole 6b86d825ea Merge pull request #10261 from firefly-iii/update-packages
Update packages
2025-05-05 07:48:50 +02:00
James Cole 31dbc57e8b Update packages 2025-05-05 07:48:13 +02:00
github-actions[bot] 00050f629c Merge pull request #10259 from firefly-iii/release-1746415513
🤖 Automatically merge the PR into the develop branch.
2025-05-05 05:25:21 +02:00
JC5 3760aabf13 🤖 Auto commit for release 'develop' on 2025-05-05 2025-05-05 05:25:13 +02:00
James Cole 22e092b513 Merge pull request #10255 from firefly-iii/fix-v2
Fix back and forth between v1 and v2
2025-05-04 21:26:52 +02:00
James Cole a4f7c90e09 Fix back and forth between v1 and v2 2025-05-04 21:24:50 +02:00
James Cole 4b92ab46a3 Merge pull request #10253 from firefly-iii/cleanup-code
Clean up code.
2025-05-04 17:41:52 +02:00
James Cole 0573bf2402 Clean up code. 2025-05-04 17:41:26 +02:00
github-actions[bot] e28e538272 Merge pull request #10252 from firefly-iii/release-1746372029
🤖 Automatically merge the PR into the develop branch.
2025-05-04 17:20:36 +02:00
JC5 6f8f175890 🤖 Auto commit for release 'develop' on 2025-05-04 2025-05-04 17:20:29 +02:00
James Cole fbf9ab6c5f Merge pull request #10251 from firefly-iii/branch-function
Import function.
2025-05-04 17:16:30 +02:00
James Cole 3c67175e68 Import function. 2025-05-04 17:16:07 +02:00
James Cole b0d25a1d33 Merge pull request #10250 from firefly-iii/fix-nulls
Fix nullpointers.
2025-05-04 17:09:16 +02:00
James Cole 9ea8709835 Fix nullpointers. 2025-05-04 17:08:42 +02:00
James Cole ae22c59f21 Merge pull request #10249 from firefly-iii/add-rector
Add rector
2025-05-04 17:05:23 +02:00
James Cole 12b8ba68b3 Add script to run rector.sh 2025-05-04 17:01:04 +02:00
James Cole 6b086c9bff Add config for rector. 2025-05-04 16:57:38 +02:00
github-actions[bot] 546a1198a1 Merge pull request #10248 from firefly-iii/release-1746359742
🤖 Automatically merge the PR into the develop branch.
2025-05-04 13:55:49 +02:00
JC5 1001e04b63 🤖 Auto commit for release 'develop' on 2025-05-04 2025-05-04 13:55:42 +02:00
James Cole 2c96729d76 Merge pull request #10247 from firefly-iii/to-php-8.4
To php 8.4
2025-05-04 13:51:43 +02:00
James Cole 194d22ad90 Final set of php8.4 changes. 2025-05-04 13:50:20 +02:00
James Cole 51e86448c7 More PHP8.4 updates 2025-05-04 13:47:00 +02:00
James Cole e42107c03c Update more code. 2025-05-04 13:04:33 +02:00
James Cole abd9260193 Update code to use php 8.4 code, using Nestor. 2025-05-04 12:57:14 +02:00
James Cole 042e2ba97d Merge pull request #10243 from firefly-iii/split-strings
Replace string operators.
2025-05-04 12:21:14 +02:00
James Cole d5240f7afd Replace string operators. 2025-05-04 12:20:54 +02:00
James Cole cda90df995 Merge pull request #10242 from firefly-iii/safe-methods
Replace methods with safe variants. Let's see how this works out.
2025-05-04 12:18:24 +02:00
James Cole 446e855b74 Replace methods with safe variants. Let's see how this works out. 2025-05-04 12:11:25 +02:00
James Cole fb31f25d71 Merge pull request #10241 from firefly-iii/type-error
Fix type error.
2025-05-04 06:17:23 +02:00
James Cole ba43d8c3f5 Fix type error. 2025-05-04 06:15:49 +02:00
James Cole 3924781797 Make sure running balance also updates when transactions are removed. 2025-05-02 06:45:34 +02:00
James Cole b99a6a9fc9 Merge branch 'main' into develop
# Conflicts:
#	package-lock.json
2025-05-02 05:47:08 +02:00
James Cole 2967f4d4c7 Update PR template 2025-05-02 05:46:35 +02:00
James Cole 285eeb1d12 Merge pull request #10222 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-de653eece3 2025-05-01 06:31:58 +02:00
dependabot[bot] 6374215ebc Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.3.2 to 6.3.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.4
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 17:41:40 +00:00
github-actions[bot] 8f0c0f215c Merge pull request #10215 from firefly-iii/release-1745810633
🤖 Automatically merge the PR into the develop branch.
2025-04-28 05:24:02 +02:00
JC5 5fc764e72b 🤖 Auto commit for release 'develop' on 2025-04-28 2025-04-28 05:23:53 +02:00
github-actions[bot] b330313c55 Merge pull request #10213 from firefly-iii/release-1745742741
🤖 Automatically merge the PR into the develop branch.
2025-04-27 10:32:28 +02:00
JC5 aa9ce73758 🤖 Auto commit for release 'develop' on 2025-04-27 2025-04-27 10:32:21 +02:00
github-actions[bot] d97fda41b2 Merge pull request #10210 from firefly-iii/release-1745681629
🤖 Automatically merge the PR into the develop branch.
2025-04-26 17:33:56 +02:00
JC5 945ad79c03 🤖 Auto commit for release 'develop' on 2025-04-26 2025-04-26 17:33:49 +02:00
James Cole 6273807525 Merge pull request #10209 from firefly-iii/add-transfer-type
Add transfer type
2025-04-26 17:29:31 +02:00
James Cole 50803a2c24 Add transfer type 2025-04-26 17:29:10 +02:00
github-actions[bot] a0e9b05680 Merge pull request #10208 from firefly-iii/release-1745674111
🤖 Automatically merge the PR into the develop branch.
2025-04-26 15:28:37 +02:00
JC5 41e74cd816 🤖 Auto commit for release 'develop' on 2025-04-26 2025-04-26 15:28:31 +02:00
James Cole b379c8e36b Merge pull request #10207 from firefly-iii/fix-running-balance
Fix running balance
2025-04-26 15:24:36 +02:00
James Cole 76e893f86e Fix running balance 2025-04-26 15:24:14 +02:00
github-actions[bot] 5da1599959 Merge pull request #10206 from firefly-iii/release-1745670593
🤖 Automatically merge the PR into the develop branch.
2025-04-26 14:30:02 +02:00
JC5 1d997e7c86 🤖 Auto commit for release 'develop' on 2025-04-26 2025-04-26 14:29:53 +02:00
James Cole 35e2eba303 Merge pull request #10205 from firefly-iii/fix-10197
Fix #10197
2025-04-26 14:24:37 +02:00
James Cole b50f8f8ecd Fix #10197 2025-04-26 14:24:13 +02:00
James Cole c16d3be85f Merge pull request #10204 from firefly-iii/running-balance
Add running balance column.
2025-04-26 14:20:23 +02:00
James Cole bd1232644f Add running balance column. 2025-04-26 14:20:00 +02:00
James Cole 37ca460ff2 Merge pull request #10203 from den-is/develop
Fix Ukrainian language names
2025-04-26 13:52:47 +02:00
Denis Iskandarov 478acdc847 Fix Ukrainian language names
Signed-off-by: Denis Iskandarov <d.iskandarov@gmail.com>
2025-04-25 18:41:22 +04:00
James Cole f9ec94ea97 Merge pull request #10184 from firefly-iii/fix-10180
Fix #10180
2025-04-22 20:42:04 +02:00
James Cole 576c5f242c Fix #10180 2025-04-22 20:41:08 +02:00
github-actions[bot] dba8bba41a Merge pull request #10177 from firefly-iii/release-1745301598
🤖 Automatically merge the PR into the develop branch.
2025-04-22 08:00:06 +02:00
JC5 55a00aa6fe 🤖 Auto commit for release 'develop' on 2025-04-22 2025-04-22 07:59:58 +02:00
James Cole 22133f64cf Merge pull request #10176 from firefly-iii/fix-null
Fix nullpointer
2025-04-22 07:56:01 +02:00
Sander Dorigo 2efb2377b6 Fix nullpointer 2025-04-22 07:55:14 +02:00
James Cole 9f75a96ad6 Merge pull request #10172 from firefly-iii/dependabot/npm_and_yarn/develop/i18next-25.0.1
Bump i18next from 24.2.3 to 25.0.1
2025-04-21 08:04:29 +02:00
James Cole d0be9bb957 Merge pull request #10174 from firefly-iii/fix-10114
Fix #10114
2025-04-21 08:04:16 +02:00
James Cole c25adf0a56 Fix #10114 2025-04-21 08:03:32 +02:00
mergify[bot] 0ca79fd843 Merge branch 'develop' into dependabot/npm_and_yarn/develop/i18next-25.0.1 2025-04-21 05:17:23 +00:00
James Cole efc516eb3b Merge pull request #10173 from firefly-iii/main
Merge pull request #10170 from firefly-iii/develop
2025-04-21 07:16:48 +02:00
dependabot[bot] dca3ac9250 Bump i18next from 24.2.3 to 25.0.1
Bumps [i18next](https://github.com/i18next/i18next) from 24.2.3 to 25.0.1.
- [Release notes](https://github.com/i18next/i18next/releases)
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/i18next/i18next/compare/v24.2.3...v25.0.1)

---
updated-dependencies:
- dependency-name: i18next
  dependency-version: 25.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 04:07:28 +00:00
github-actions[bot] 33668a3688 Merge pull request #10171 from firefly-iii/release-1745205809
🤖 Automatically merge the PR into the develop branch.
2025-04-21 05:23:36 +02:00
JC5 5414a70abb 🤖 Auto commit for release 'develop' on 2025-04-21 2025-04-21 05:23:29 +02:00
github-actions[bot] 85aee63d1e Merge pull request #10170 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-04-20 21:22:09 +02:00
github-actions[bot] ad09c851f6 Merge pull request #10169 from firefly-iii/release-1745176916
🤖 Automatically merge the PR into the develop branch.
2025-04-20 21:22:04 +02:00
JC5 c57f36820b 🤖 Auto commit for release 'v6.2.12' on 2025-04-20 2025-04-20 21:21:56 +02:00
github-actions[bot] 6bb2702e07 Merge pull request #10168 from firefly-iii/release-1745176354
🤖 Automatically merge the PR into the develop branch.
2025-04-20 21:12:43 +02:00
JC5 b1dbd3ee17 🤖 Auto commit for release 'develop' on 2025-04-20 2025-04-20 21:12:34 +02:00
James Cole 2d41db349a Merge pull request #10167 from firefly-iii/update-changelog2
Update changelog
2025-04-20 21:07:06 +02:00
James Cole 6b73b9327a Update changelog 2025-04-20 21:06:27 +02:00
James Cole e3ea54329d Merge pull request #10166 from firefly-iii/add-events
Add some piggy bank events.
2025-04-20 21:04:27 +02:00
James Cole 686a76f32c Merge pull request #10165 from firefly-iii/fix-10162
Fix #10162
2025-04-20 21:04:07 +02:00
James Cole cdafb82a49 Merge pull request #10164 from firefly-iii/fix-10068-2
Fix #10068
2025-04-20 21:03:52 +02:00
James Cole 0075f10f98 Fix #10162 2025-04-20 21:02:54 +02:00
James Cole b70c0e4ab3 Add some piggy bank events. 2025-04-20 21:01:23 +02:00
James Cole 01aca092a1 Fix #10068 2025-04-20 21:00:43 +02:00
James Cole 8e6449ec12 Merge pull request #10161 from firefly-iii/fix-9755
Fix #9755
2025-04-20 12:59:11 +02:00
James Cole 984c4e2449 Fix #9755 2025-04-20 12:58:45 +02:00
James Cole 002c5485f5 Merge pull request #10160 from firefly-iii/fix-9867
Fix #9867
2025-04-20 12:47:35 +02:00
James Cole 12d74f15c0 Fix #9867 2025-04-20 12:47:13 +02:00
James Cole 2e87e179f0 Merge pull request #10159 from firefly-iii/fix-9878
Fix #9878
2025-04-20 12:42:20 +02:00
James Cole a861126c0f Fix #9878 2025-04-20 12:41:46 +02:00
github-actions[bot] 8f5e58e8ad Merge pull request #10158 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-04-20 08:28:36 +02:00
github-actions[bot] 6c26f1f677 Merge pull request #10157 from firefly-iii/release-1745130504
🤖 Automatically merge the PR into the develop branch.
2025-04-20 08:28:32 +02:00
JC5 d7caaca5e4 🤖 Auto commit for release 'v6.2.11' on 2025-04-20 2025-04-20 08:28:25 +02:00
James Cole 835c81f329 Merge pull request #10156 from firefly-iii/jumble
Intentional code jumbling. This needs improvement in the action.
2025-04-20 08:24:36 +02:00
James Cole 1615b0cb29 Intentional code jumbling. This needs improvement in the action. 2025-04-20 08:24:16 +02:00
github-actions[bot] c07a279c81 Merge pull request #10154 from firefly-iii/release-1745129634
🤖 Automatically merge the PR into the develop branch.
2025-04-20 08:14:00 +02:00
JC5 1478dae316 🤖 Auto commit for release 'v6.2.11' on 2025-04-20 2025-04-20 08:13:54 +02:00
github-actions[bot] 83a1e6616a Merge pull request #10153 from firefly-iii/release-1745129251
🤖 Automatically merge the PR into the develop branch.
2025-04-20 08:07:38 +02:00
JC5 66bd786842 🤖 Auto commit for release 'develop' on 2025-04-20 2025-04-20 08:07:31 +02:00
James Cole 33d73d8be8 Merge pull request #10152 from firefly-iii/update-changelog
Update changelog
2025-04-20 08:02:55 +02:00
James Cole 75e190ba64 Update changelog 2025-04-20 08:02:22 +02:00
James Cole 820569a52b Merge pull request #10151 from firefly-iii/fix-10150
Fix #10150
2025-04-20 07:57:17 +02:00
James Cole 05005eac32 Fix #10150 2025-04-20 07:56:50 +02:00
James Cole 5aa677c6fb Merge pull request #10146 from firefly-iii/fix-empty-amount
Fix empty amount
2025-04-19 10:16:05 +02:00
James Cole 456a3a9216 Fix empty amount 2025-04-19 10:15:50 +02:00
James Cole be25a7596f Merge pull request #10145 from firefly-iii/fix-10015
Fix #10015
2025-04-19 10:08:27 +02:00
James Cole 59a07e5dde Fix #10015 2025-04-19 10:08:03 +02:00
github-actions[bot] 6946a815e2 Merge pull request #10143 from firefly-iii/release-1745034848
🤖 Automatically merge the PR into the develop branch.
2025-04-19 05:54:14 +02:00
JC5 4a84e94022 🤖 Auto commit for release 'develop' on 2025-04-19 2025-04-19 05:54:08 +02:00
James Cole 5ba5d1f90e Merge pull request #10142 from firefly-iii/add-expires
Add expiry details to tokens.
2025-04-19 05:49:09 +02:00
James Cole beb2bbcdc9 Merge pull request #10141 from firefly-iii/fix-nullpointer
Fix nullpointer in bill chart controller.
2025-04-19 05:48:37 +02:00
James Cole 805fd5ae08 Add expiry details to tokens. 2025-04-19 05:48:11 +02:00
James Cole 96093e313a Fix nullpointer in bill chart controller. 2025-04-19 05:47:43 +02:00
James Cole afe9e88f9a Merge pull request #10133 from firefly-iii/new-currencies
Add new currencies and update exchange rates.
2025-04-15 04:59:49 +02:00
James Cole b43048c674 Add new currencies and update exchange rates. 2025-04-15 04:54:36 +02:00
github-actions[bot] 11c38a599b Merge pull request #10127 from firefly-iii/release-1744600947
🤖 Automatically merge the PR into the develop branch.
2025-04-14 05:22:37 +02:00
JC5 0ce245f480 🤖 Auto commit for release 'develop' on 2025-04-14 2025-04-14 05:22:27 +02:00
github-actions[bot] aef15cf3d3 Merge pull request #10119 from firefly-iii/release-1744394417
🤖 Automatically merge the PR into the develop branch.
2025-04-11 20:00:28 +02:00
JC5 d1880de30e 🤖 Auto commit for release 'develop' on 2025-04-11 2025-04-11 20:00:17 +02:00
James Cole 9d900a69ed Merge pull request #10118 from firefly-iii/main
Merge security improvements.
2025-04-11 19:45:15 +02:00
James Cole 1653f77b15 Merge pull request #10117 from firefly-iii/fix-10114
Possible fix for #10114
2025-04-11 19:40:36 +02:00
James Cole 9418436d51 Possible fix for #10114 2025-04-11 19:38:48 +02:00
James Cole 1c9a6a194a Merge pull request #10115 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-b7c6efa8f1 2025-04-11 18:59:39 +02:00
dependabot[bot] 11cfb5a962 Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.5 to 6.2.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.6
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-11 15:37:30 +00:00
James Cole 7d21467447 Merge pull request #10110 from firefly-iii/add-ip
Add IP to failed login message.
2025-04-09 21:28:34 +02:00
James Cole 5ce9f32deb Add IP to failed login message. 2025-04-09 21:26:29 +02:00
James Cole 337440259f Merge pull request #10109 from firefly-iii/fix-9398
Fix #9398
2025-04-07 20:43:37 +02:00
James Cole c483e0768f Fix #9398 2025-04-07 20:42:52 +02:00
James Cole fd9b0d9417 Merge pull request #10108 from firefly-iii/fix-9858
Whoops
2025-04-07 19:48:52 +02:00
James Cole c3165f4937 Whoops 2025-04-07 19:48:30 +02:00
James Cole a5c9adc872 Merge pull request #10107 from firefly-iii/fix-9858
Fix #9858
2025-04-07 19:45:33 +02:00
James Cole 59cc007931 Fix #9858 2025-04-07 19:44:22 +02:00
github-actions[bot] 8b0b12b521 Merge pull request #10103 from firefly-iii/release-1743996054
🤖 Automatically merge the PR into the develop branch.
2025-04-07 05:21:01 +02:00
JC5 6ae1cfd82e 🤖 Auto commit for release 'develop' on 2025-04-07 2025-04-07 05:20:54 +02:00
github-actions[bot] 4d7eb27fd0 Merge pull request #10102 from firefly-iii/release-1743913710
🤖 Automatically merge the PR into the develop branch.
2025-04-06 06:28:37 +02:00
JC5 fe0b8d0128 🤖 Auto commit for release 'develop' on 2025-04-06 2025-04-06 06:28:30 +02:00
James Cole 04f0fcfbf7 Merge pull request #10101 from firefly-iii/fix-null-pointer
Fix nullpointer.
2025-04-06 06:24:02 +02:00
James Cole 7e182cf070 Fix nullpointer. 2025-04-06 06:22:32 +02:00
James Cole ad78c302ef Merge branch 'main' into develop
# Conflicts:
#	package-lock.json
2025-04-06 06:22:04 +02:00
James Cole 36b4c69491 Merge pull request #10097 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-2bd33993d4
Bump vite from 6.2.4 to 6.2.5 in the npm_and_yarn group across 1 directory
2025-04-05 07:23:09 +02:00
dependabot[bot] 30bd0711f4 Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.4 to 6.2.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.5
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-04 15:59:25 +00:00
github-actions[bot] d847827584 Merge pull request #10095 from firefly-iii/release-1743669036
🤖 Automatically merge the PR into the develop branch.
2025-04-03 10:30:45 +02:00
JC5 786c1fcd58 🤖 Auto commit for release 'develop' on 2025-04-03 2025-04-03 10:30:36 +02:00
James Cole 90e7f0c0f7 Merge pull request #10094 from firefly-iii/fix-more
Fix lint errors
2025-04-03 10:26:17 +02:00
Sander Dorigo 63f334abe5 Fix lint errors 2025-04-03 10:25:24 +02:00
James Cole 2466cd942f Update release.yml
Signed-off-by: James Cole <james@firefly-iii.org>
2025-04-03 10:22:09 +02:00
James Cole ea37db87f4 Merge pull request #10093 from firefly-iii/fix-php-error
Fix dumb error
2025-04-03 10:13:52 +02:00
Sander Dorigo c168fb6960 Fix dumb error 2025-04-03 10:13:06 +02:00
github-actions[bot] 03fb707b93 Merge pull request #10092 from firefly-iii/release-1743665835
🤖 Automatically merge the PR into the develop branch.
2025-04-03 09:37:23 +02:00
JC5 db226c2584 🤖 Auto commit for release 'develop' on 2025-04-03 2025-04-03 09:37:15 +02:00
James Cole 1c6ec82c91 Merge pull request #10091 from firefly-iii/better-mute
Better mute
2025-04-03 09:33:26 +02:00
Sander Dorigo 40eb77ffde Better mute 2025-04-03 09:32:41 +02:00
github-actions[bot] 17ddb01cd1 Merge pull request #10089 from firefly-iii/release-1743601357
🤖 Automatically merge the PR into the develop branch.
2025-04-02 15:42:46 +02:00
JC5 ca56c7af70 🤖 Auto commit for release 'develop' on 2025-04-02 2025-04-02 15:42:37 +02:00
James Cole 55c428070f Merge pull request #10087 from firefly-iii/fix-10025
Fix #10025
2025-04-02 12:13:28 +02:00
Sander Dorigo 574eec1c08 Fix #10025 2025-04-02 12:12:18 +02:00
James Cole 15cde8173e Merge pull request #10081 from firefly-iii/debug-10068
Add debug for #10068
2025-04-01 11:29:23 +02:00
Sander Dorigo ccb581b4ee Add debug for #10068 2025-04-01 11:28:12 +02:00
James Cole c5f8db5b50 Merge pull request #10080 from firefly-iii/fix-10069-2
fix #10069
2025-04-01 10:54:54 +02:00
Sander Dorigo 611748fbaf fix #10069 2025-04-01 10:54:08 +02:00
James Cole b57dfa9432 Merge pull request #10078 from firefly-iii/fix-10069
Fix #10069
2025-04-01 10:35:22 +02:00
Sander Dorigo 253982d579 Fix #10069 2025-04-01 10:33:58 +02:00
James Cole 94c7a19aa0 Merge pull request #10076 from firefly-iii/mute-notifications
Fix #10069
2025-04-01 07:27:31 +02:00
Sander Dorigo e9b360a721 Fix #10069 2025-04-01 07:26:29 +02:00
github-actions[bot] ebf7f5932a Merge pull request #10075 from firefly-iii/release-1743484026
🤖 Automatically merge the PR into the develop branch.
2025-04-01 07:07:14 +02:00
JC5 4427f2fb99 🤖 Auto commit for release 'develop' on 2025-04-01 2025-04-01 07:07:06 +02:00
James Cole 6626dfbac3 Merge pull request #10074 from firefly-iii/mute-notifications
Mute notifications for demo site.
2025-04-01 07:02:58 +02:00
Sander Dorigo 093a6387a2 Mute notifications for demo site. 2025-04-01 06:59:55 +02:00
James Cole 21ddde9e0d Merge pull request #10072 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-8ec3883370 2025-03-31 21:07:21 +02:00
dependabot[bot] 44d4e4e6da Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 18:43:22 +00:00
James Cole e34e53eeb3 Merge pull request #10055 from firefly-iii/dependabot/composer/develop/guzzlehttp/guzzle-7.9.3
Bump guzzlehttp/guzzle from 7.9.2 to 7.9.3
2025-03-31 11:04:47 +02:00
James Cole 07fb45bb34 Merge pull request #10056 from firefly-iii/dependabot/composer/develop/phpstan/phpstan-2.1.11
Bump phpstan/phpstan from 2.1.10 to 2.1.11
2025-03-31 11:04:34 +02:00
mergify[bot] d381669733 Merge branch 'develop' into dependabot/composer/develop/guzzlehttp/guzzle-7.9.3 2025-03-31 07:20:41 +00:00
mergify[bot] fb9eb15ae1 Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.11 2025-03-31 07:20:36 +00:00
github-actions[bot] a2127c382b Merge pull request #10061 from firefly-iii/release-1743405544
🤖 Automatically merge the PR into the develop branch.
2025-03-31 09:19:58 +02:00
JC5 e10d39c093 🤖 Auto commit for release 'develop' on 2025-03-31 2025-03-31 09:19:04 +02:00
mergify[bot] a933b49e7c Merge branch 'develop' into dependabot/composer/develop/guzzlehttp/guzzle-7.9.3 2025-03-31 07:15:55 +00:00
mergify[bot] 38bcd610df Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.11 2025-03-31 07:15:49 +00:00
James Cole 5beb476a28 Merge pull request #10060 from firefly-iii/add-missing-files
ok final one
2025-03-31 09:15:44 +02:00
Sander Dorigo 3a43ce6546 ok final one 2025-03-31 09:15:03 +02:00
mergify[bot] c11fddb097 Merge branch 'develop' into dependabot/composer/develop/guzzlehttp/guzzle-7.9.3 2025-03-31 07:13:06 +00:00
mergify[bot] 98f79cd9bf Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.11 2025-03-31 07:13:03 +00:00
James Cole a3d3fe758b Merge pull request #10059 from firefly-iii/add-missing-files
add missing files
2025-03-31 09:12:25 +02:00
Sander Dorigo 93587cf1b6 add missing files 2025-03-31 09:11:17 +02:00
mergify[bot] 361e95f102 Merge branch 'develop' into dependabot/composer/develop/guzzlehttp/guzzle-7.9.3 2025-03-31 07:07:16 +00:00
mergify[bot] be212e7d1d Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.11 2025-03-31 07:07:13 +00:00
James Cole 003a30727f Merge pull request #10058 from firefly-iii/add-missing-files
Add new files
2025-03-31 09:06:39 +02:00
Sander Dorigo 27b662e2dc Add new files 2025-03-31 09:05:58 +02:00
mergify[bot] 0b4d7ad95e Merge branch 'develop' into dependabot/composer/develop/guzzlehttp/guzzle-7.9.3 2025-03-31 07:03:39 +00:00
mergify[bot] 7acbfb230a Merge branch 'develop' into dependabot/composer/develop/phpstan/phpstan-2.1.11 2025-03-31 07:03:36 +00:00
James Cole b974310798 Merge pull request #10057 from firefly-iii/add-missing-files
Add missing files
2025-03-31 09:02:58 +02:00
Sander Dorigo e391725eed Add missing files 2025-03-31 09:01:29 +02:00
dependabot[bot] f505580b33 Bump phpstan/phpstan from 2.1.10 to 2.1.11
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 2.1.10 to 2.1.11.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/2.1.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/2.1.10...2.1.11)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 03:10:51 +00:00
dependabot[bot] 270f932a48 Bump guzzlehttp/guzzle from 7.9.2 to 7.9.3
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.9.2 to 7.9.3.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.9.2...7.9.3)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 03:10:43 +00:00
James Cole b9afa908e3 Merge pull request #10045 from firefly-iii/v2-additions
Small additions
2025-03-29 07:58:56 +01:00
James Cole 6dcc78b9e5 Small additions 2025-03-29 07:58:45 +01:00
James Cole 7b0e7e8612 Merge pull request #10039 from ovv/ovv/cron-update-check
update check: consider cron succesfull when disabled or too frequent
2025-03-26 14:34:56 +01:00
= 1ece4abd9d update check: consider cron succesfull when disabled or too frequent
If the update check cron is disabled or run more often than once a week
consider the cron run succesfull.
2025-03-26 13:57:23 +01:00
James Cole 07c03b672b Merge pull request #10035 from firefly-iii/resurrect-v2
Resurrect v2
2025-03-25 17:31:50 +01:00
James Cole 27ea50ec16 Merge pull request #10034 from firefly-iii/main
Merge back into develop.
2025-03-25 17:29:52 +01:00
James Cole e1195e6663 Fix JS views. 2025-03-25 17:28:12 +01:00
James Cole faeb17f319 Recreate API endpoints. 2025-03-25 17:27:59 +01:00
James Cole db91b1b127 Merge pull request #10033 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-14f44f5325
Bump vite from 6.2.2 to 6.2.3 in the npm_and_yarn group across 1 directory
2025-03-25 16:35:57 +01:00
dependabot[bot] b5b511c86b Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.2 to 6.2.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-25 14:58:51 +00:00
github-actions[bot] 8c805fe0c9 Merge pull request #10028 from firefly-iii/release-1742786410
🤖 Automatically merge the PR into the develop branch.
2025-03-24 04:20:16 +01:00
JC5 b0672eb294 🤖 Auto commit for release 'develop' on 2025-03-24 2025-03-24 04:20:10 +01:00
James Cole 750019808c Finalise boxes. 2025-03-23 15:19:40 +01:00
James Cole 7f4510467f Convert subscription information to native. 2025-03-23 15:14:20 +01:00
James Cole a46f8430df Account for renamed variable. 2025-03-23 15:04:38 +01:00
James Cole 5e1ecb2b11 Make sure the balance box converts to native. 2025-03-23 15:04:29 +01:00
James Cole 4fff59f16b Merge pull request #10024 from firefly-iii/fix-release-flow
Expand releases.md and add extra text to release docs.
2025-03-23 09:06:05 +01:00
James Cole eea8f5e07e Expand releases.md and add extra text to release docs. 2025-03-23 09:05:33 +01:00
James Cole a3fcd636e7 Get v2 up and running (sort of) 2025-03-23 09:05:06 +01:00
James Cole de6dc19077 Merge pull request #10023 from firefly-iii/enable-persian
Enable persian
2025-03-23 09:04:15 +01:00
James Cole 7a8e3aca03 Enable persion 2025-03-23 09:03:44 +01:00
James Cole 076047ad24 Enable Persian 2025-03-23 09:03:33 +01:00
James Cole a4e1c8c24f Merge pull request #10019 from firefly-iii/main
Merge job changes back into develop
2025-03-22 14:09:22 +01:00
github-actions[bot] 3bf1c0075e Merge pull request #10018 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-03-22 14:02:18 +01:00
github-actions[bot] 1821ade319 Merge pull request #10017 from firefly-iii/release-1742648527
🤖 Automatically merge the PR into the develop branch.
2025-03-22 14:02:13 +01:00
JC5 dcd4f072d5 🤖 Auto commit for release 'v6.2.10' on 2025-03-22 2025-03-22 14:02:07 +01:00
James Cole 1734c7f545 Fix output.txt routine. 2025-03-22 13:58:40 +01:00
James Cole aef3d340ae Escalate to sudo. 2025-03-22 13:53:56 +01:00
James Cole e39d4bc288 Correct access rights. 2025-03-22 13:50:04 +01:00
James Cole ed35b0f81a Debug run. 2025-03-22 09:54:25 +01:00
James Cole 4805c9e1c9 Merge branch 'main' into develop 2025-03-22 09:48:37 +01:00
James Cole eebcbe0f67 Merge pull request #10016 from firefly-iii/move-action
Move action until after commits.
2025-03-22 09:48:14 +01:00
James Cole 61e2b79357 Move action until after commits. 2025-03-22 09:47:43 +01:00
github-actions[bot] fd3b03d3de Merge pull request #10013 from firefly-iii/release-1742584829
🤖 Automatically merge the PR into the develop branch.
2025-03-21 20:20:34 +01:00
JC5 9423a28158 🤖 Auto commit for release 'develop' on 2025-03-21 2025-03-21 20:20:29 +01:00
James Cole 55062068fd Merge pull request #10012 from firefly-iii/update-changelog
Update changelog.
2025-03-21 20:15:39 +01:00
James Cole 542b6f670d Update changelog. 2025-03-21 20:15:10 +01:00
James Cole 5b163b42b4 Merge pull request #10010 from firefly-iii/debug-timer-10005
Add debug for #10005
2025-03-21 05:51:52 +01:00
James Cole 613dce51fb Add debug for #10005 2025-03-21 05:51:24 +01:00
James Cole 40adb5b203 Merge pull request #10009 from firefly-iii/fix-10007
Fix #10007
2025-03-21 05:49:50 +01:00
James Cole fba796fa84 Fix #10007 2025-03-21 05:48:51 +01:00
James Cole db4c3f9bfa Merge pull request #10008 from firefly-iii/fix-missing-init
Fix missing initialisation
2025-03-21 05:37:26 +01:00
James Cole d960cc6ad7 Fix missing initialisation 2025-03-21 05:36:58 +01:00
github-actions[bot] c620ec1f24 Merge pull request #9991 from firefly-iii/release-1742181403
🤖 Automatically merge the PR into the develop branch.
2025-03-17 04:16:47 +01:00
JC5 2d78bba6f4 🤖 Auto commit for release 'develop' on 2025-03-17 2025-03-17 04:16:43 +01:00
James Cole b7a3f5d740 Merge branch 'main' into develop
# Conflicts:
#	package-lock.json
2025-03-16 17:54:09 +01:00
James Cole 96def3c5d4 Merge branch 'main' of github.com:firefly-iii/firefly-iii 2025-03-16 17:53:01 +01:00
James Cole e1941d9d87 Remove test commit. 2025-03-16 17:52:47 +01:00
github-actions[bot] a30cf03678 Merge pull request #9987 from firefly-iii/release-1742143821
🤖 Automatically merge the PR into the develop branch.
2025-03-16 17:50:27 +01:00
JC5 aa0dcd3b7e 🤖 Auto commit for release 'develop' on 2025-03-16 2025-03-16 17:50:22 +01:00
James Cole 810e92f7a3 Merge pull request #9977 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-4692130362
Bump axios from 1.7.9 to 1.8.2 in the npm_and_yarn group across 1 directory
2025-03-16 17:46:41 +01:00
mergify[bot] 5dd49fc1e1 Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-4692130362 2025-03-16 16:44:48 +00:00
James Cole 8517af105d Fancy new release job. 2025-03-16 17:44:09 +01:00
mergify[bot] 442cf7f9b3 Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-4692130362 2025-03-16 06:19:29 +00:00
James Cole 82878b5214 Merge branch 'main' into develop 2025-03-16 07:19:02 +01:00
James Cole b0f1102540 Ignore file. 2025-03-16 07:18:50 +01:00
dependabot[bot] 2efee7e6de Bump axios in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.7.9 to 1.8.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.9...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-15 10:05:12 +00:00
James Cole abcecc7476 Can develop be merged through a PR and not a push? 2025-03-15 11:03:56 +01:00
github-actions c28005f649 Auto commit for release 'develop' on 2025-03-14 2025-03-14 19:28:44 +01:00
James Cole a369e61f18 Add changelog. 2025-03-14 19:24:54 +01:00
James Cole 05d82b6c05 Fix missing method. 2025-03-14 19:19:33 +01:00
James Cole 68ca8fd250 Merge pull request #9975 from firefly-iii/remove-transformers
Remove references to old transformers.
2025-03-14 19:18:50 +01:00
James Cole b55b565ee5 Remove references to old transformers. 2025-03-14 19:18:17 +01:00
github-actions fc98d66ef4 Auto commit for release 'develop' on 2025-03-14 2025-03-14 17:45:16 +01:00
James Cole f6642c075d Merge pull request #9969 from firefly-iii/fix-9770
Fix #9770
2025-03-13 20:24:50 +01:00
James Cole 458a337521 Fix #9770 2025-03-13 20:23:53 +01:00
James Cole 37d2299a1d Merge pull request #9957 from firefly-iii/dependabot/composer/develop/phpstan/phpstan-2.1.8
Bump phpstan/phpstan from 2.1.7 to 2.1.8
2025-03-10 05:51:33 +01:00
James Cole f69cffc50b Merge pull request #9958 from firefly-iii/dependabot/npm_and_yarn/develop/axios-1.8.2
Bump axios from 1.8.1 to 1.8.2
2025-03-10 05:51:22 +01:00
James Cole fd77a17ba5 Merge pull request #9959 from firefly-iii/dependabot/npm_and_yarn/develop/vite-6.2.1
Bump vite from 6.2.0 to 6.2.1
2025-03-10 05:51:11 +01:00
dependabot[bot] b481cf53e7 Bump vite from 6.2.0 to 6.2.1
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.2.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 03:41:58 +00:00
dependabot[bot] a4a4590c45 Bump axios from 1.8.1 to 1.8.2
Bumps [axios](https://github.com/axios/axios) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 03:41:42 +00:00
dependabot[bot] 9e398beb07 Bump phpstan/phpstan from 2.1.7 to 2.1.8
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 2.1.7 to 2.1.8.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/2.1.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/2.1.7...2.1.8)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 03:19:15 +00:00
James Cole 38ae3df423 Merge pull request #9955 from firefly-iii/fix-9954
Fix #9954
2025-03-09 18:45:04 +01:00
James Cole 2f17701b68 Fix #9954 2025-03-09 18:44:39 +01:00
James Cole 4c797c1d4c Merge pull request #9953 from firefly-iii/fix-9876
Fix #9876
2025-03-09 10:35:38 +01:00
James Cole a8e1c22c93 Fix #9876 2025-03-09 10:35:12 +01:00
James Cole b60021e0ce Merge pull request #9952 from firefly-iii/speed-up-account-show
Speed up account show
2025-03-09 09:57:24 +01:00
James Cole 453ccd3271 Clean up overview. 2025-03-09 09:54:14 +01:00
James Cole 08f13aebe3 Fix period overview for account 2025-03-09 09:54:06 +01:00
James Cole 26df1be871 Remove debug 2025-03-09 09:53:52 +01:00
James Cole fe2def9684 Fix nullpointer. 2025-03-09 09:53:36 +01:00
James Cole db2cab3cef Add custom method. 2025-03-09 09:53:27 +01:00
James Cole d84405191f Add debug timers. 2025-03-09 09:53:19 +01:00
James Cole 349d32a268 Merge pull request #9951 from firefly-iii/fix-phpstan-issues
Various code cleanup and sorting.
2025-03-08 19:55:51 +01:00
James Cole 30b7e17b6f Various code cleanup and sorting. 2025-03-08 19:55:21 +01:00
James Cole 2d3d3bc0a4 Merge pull request #9950 from firefly-iii/fix-9948
Fix #9948
2025-03-08 19:35:03 +01:00
James Cole a4f887921a Fix #9948 2025-03-08 19:34:18 +01:00
James Cole 710732d7f5 Merge pull request #9949 from firefly-iii/missing-phpstan-methods
Missing phpstan methods
2025-03-08 15:58:27 +01:00
James Cole cd08c16dee Replace missing methods. 2025-03-08 15:57:59 +01:00
James Cole a8f36a2490 Add missing methods so phpstan stops complaining. 2025-03-08 15:52:50 +01:00
James Cole 7f12d06989 Merge pull request #9947 from firefly-iii/remove-usergroup-repositories
Remove references to user group specific repositories and instead use…
2025-03-08 15:12:13 +01:00
James Cole 8eb0313841 Remove references to user group specific repositories and instead use the normal ones. 2025-03-08 15:10:24 +01:00
James Cole 113eb84461 Merge pull request #9946 from firefly-iii/fix-currency-autocomplete
Add missing method to repository.
2025-03-08 05:57:19 +01:00
mergify[bot] cdf42e50f0 Merge branch 'develop' into fix-currency-autocomplete 2025-03-08 04:56:06 +00:00
James Cole e59cf03d80 Merge branch 'main' into develop
# Conflicts:
#	composer.lock
2025-03-08 05:55:45 +01:00
James Cole 0bd0e6caeb Add missing method to repository. 2025-03-08 05:51:50 +01:00
James Cole 605623a7af Merge pull request #9944 from firefly-iii/add-validation-command
Add command to validate various settings.
2025-03-08 05:50:47 +01:00
James Cole 042d055d85 Merge pull request #9945 from firefly-iii/mergify/JC5/config-update
ci(Mergify): configuration update
2025-03-08 05:45:27 +01:00
James Cole cc29d0a850 ci(Mergify): configuration update
Signed-off-by: James Cole <james@firefly-iii.org>
2025-03-08 05:45:00 +01:00
James Cole 7dede49aee Add command to validate various settings. 2025-03-08 05:38:51 +01:00
James Cole 775282ae02 Fix #9941 2025-03-07 05:25:43 +01:00
James Cole e49806078a Merge pull request #9935 from firefly-iii/dependabot/composer/composer-e6d0169aed 2025-03-06 05:28:45 +01:00
dependabot[bot] 71d8c0d219 Bump laravel/framework in the composer group across 1 directory
Bumps the composer group with 1 update in the / directory: [laravel/framework](https://github.com/laravel/framework).


Updates `laravel/framework` from 11.43.2 to 11.44.1
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/12.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/framework/compare/v11.43.2...v11.44.1)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  dependency-group: composer
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 23:45:21 +00:00
James Cole 0031c5a5ad Fix #9914 2025-03-05 20:12:44 +01:00
James Cole 3ce111550e Merge branch 'main' into develop 2025-03-05 19:53:29 +01:00
James Cole 58af83cc8c Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	.ci/php-cs-fixer/composer.lock
2025-03-05 19:52:36 +01:00
github-actions 422a23e700 Auto commit for release 'develop' on 2025-03-05 2025-03-05 15:50:17 +01:00
Sander Dorigo 8c2672cdf8 Fix #9895 2025-03-05 15:02:40 +01:00
Sander Dorigo 764e49985b add default values 2025-03-05 14:58:10 +01:00
Sander Dorigo 84251f8f10 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-03-05 14:42:34 +01:00
James Cole 3d878cb5dd Merge pull request #9899 from firefly-iii/dependabot/github_actions/github/command-2.0.0
Bump github/command from 1.3.0 to 2.0.0
2025-03-05 12:28:06 +01:00
Sander Dorigo 8b4740d28c fix #9902 2025-03-05 12:27:08 +01:00
James Cole 0845e265c2 Merge pull request #9903 from lompi/add_support_for_strpos_in_expressions
Add support for PHP function `strpos` in expressions
2025-03-05 12:25:50 +01:00
Sander Dorigo b4455a3802 Fix #9906 2025-03-05 12:18:14 +01:00
Sander Dorigo 8d12d47691 fix #9908 2025-03-05 12:13:56 +01:00
James Cole 3dc01b0d5c Merge pull request #9918 from firefly-iii/dependabot/composer/develop/diglactic/laravel-breadcrumbs-10.0.0
Bump diglactic/laravel-breadcrumbs from 9.0.0 to 10.0.0
2025-03-05 11:44:32 +01:00
dependabot[bot] b442645280 Bump diglactic/laravel-breadcrumbs from 9.0.0 to 10.0.0
Bumps [diglactic/laravel-breadcrumbs](https://github.com/diglactic/laravel-breadcrumbs) from 9.0.0 to 10.0.0.
- [Release notes](https://github.com/diglactic/laravel-breadcrumbs/releases)
- [Upgrade guide](https://github.com/diglactic/laravel-breadcrumbs/blob/main/UPGRADE.md)
- [Commits](https://github.com/diglactic/laravel-breadcrumbs/compare/v9.0.0...v10.0.0)

---
updated-dependencies:
- dependency-name: diglactic/laravel-breadcrumbs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 03:20:25 +00:00
github-actions eda2b5f822 Auto commit for release 'develop' on 2025-03-03 2025-03-03 04:14:36 +01:00
Lompi d9593db5e2 Add support for PHP function strpos in expressions
Signed-off-by: Lompi <lompi91+github_com@gmail.com>
2025-02-24 16:55:00 +01:00
dependabot[bot] 9dcb8e2680 Bump github/command from 1.3.0 to 2.0.0
Bumps [github/command](https://github.com/github/command) from 1.3.0 to 2.0.0.
- [Release notes](https://github.com/github/command/releases)
- [Commits](https://github.com/github/command/compare/v1.3.0...v2.0.0)

---
updated-dependencies:
- dependency-name: github/command
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 03:51:39 +00:00
github-actions 56bac9fc97 Auto commit for release 'develop' on 2025-02-24 2025-02-24 04:13:39 +01:00
James Cole f7ad9c56c8 Add imports for facades 2025-02-23 12:47:04 +01:00
James Cole 0086a0ddc8 Fix namespace. 2025-02-23 12:35:13 +01:00
James Cole 25ebfd6978 php cs cleanup 2025-02-23 12:28:43 +01:00
James Cole de8149137a Use trait and interface. 2025-02-23 12:28:27 +01:00
James Cole 79ae110368 Update php cs fixer 2025-02-23 12:27:49 +01:00
James Cole 60aef0de1a Mark as deprecated. 2025-02-23 12:27:34 +01:00
James Cole 8d464962a8 Remove methods, point to interface. 2025-02-23 12:27:07 +01:00
github-actions b93cfc5de2 Auto commit for release 'develop' on 2025-02-22 2025-02-22 17:26:08 +01:00
github-actions d41f5b1090 Auto commit for release 'v6.2.9' on 2025-02-22 2025-02-22 17:20:52 +01:00
James Cole 40322813c9 Also include user group 2025-02-22 17:17:28 +01:00
James Cole 4a98927e32 Update changelog. 2025-02-22 17:16:30 +01:00
James Cole 193e529803 Fix #9887 2025-02-22 17:16:20 +01:00
github-actions fbf20ef2c2 Auto commit for release 'v6.2.8' on 2025-02-22 2025-02-22 12:30:53 +01:00
github-actions 54de829c8a Merge branch 'develop' 2025-02-22 11:28:39 +00:00
James Cole 131b987561 Remove TZ 2025-02-22 12:27:22 +01:00
James Cole dce6754c62 Merge branch 'main' into develop 2025-02-22 10:27:58 +01:00
James Cole f4bca90080 Add time and time zone perhaps? 2025-02-22 10:25:31 +01:00
James Cole b2960b1ed9 Remove docker ignore, not useful in this context. 2025-02-22 10:20:55 +01:00
James Cole 33f87bce23 Merge branch 'main' into develop 2025-02-22 10:20:31 +01:00
James Cole 23aa45609b Remove files from zip. 2025-02-22 10:20:23 +01:00
github-actions b098952f82 Auto commit for release 'develop' on 2025-02-22 2025-02-22 10:16:15 +01:00
James Cole 68c3e14b0c Update changelog. 2025-02-22 10:12:30 +01:00
James Cole 19d08137a5 Fix #9887 2025-02-22 10:06:59 +01:00
James Cole 73776e7869 Fix #9887 2025-02-22 10:05:44 +01:00
github-actions bf04ca12c1 Auto commit for release 'develop' on 2025-02-22 2025-02-22 08:18:27 +01:00
James Cole a4637debe9 Update changelog, fix log reference. 2025-02-22 08:07:52 +01:00
James Cole 48c1b525be Fix #9874 2025-02-22 08:03:42 +01:00
github-actions 56470bfbba Auto commit for release 'develop' on 2025-02-21 2025-02-21 08:32:55 +01:00
James Cole 0f732ca874 Merge pull request #9880 from josegonzalez/patch-1
fix: ignore the Procfile when building the docker image
2025-02-21 08:06:04 +01:00
James Cole e452ba938d Update changelog. 2025-02-21 06:20:17 +01:00
James Cole 9921c5a925 Fix #9882 2025-02-21 06:18:11 +01:00
Jose Diaz-Gonzalez 58fab75681 fix: ignore the Procfile when building the docker image
The Procfile is heroku-specific, causing issues on platforms which respect it when specifying processes to run for docker image or dockerfile based deploys.

Closes #9833

Signed-off-by: Jose Diaz-Gonzalez <email@josediazgonzalez.com>
2025-02-20 14:51:04 -05:00
Sander Dorigo 54990308f6 fix type error 2025-02-20 12:58:38 +01:00
github-actions f95758ff47 Auto commit for release 'develop' on 2025-02-20 2025-02-20 08:11:36 +01:00
James Cole 8d830e178f Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-02-20 08:08:18 +01:00
James Cole 334a521ca1 Better fix for nullpointer. 2025-02-20 08:08:07 +01:00
github-actions 12629a1955 Auto commit for release 'develop' on 2025-02-20 2025-02-20 08:00:12 +01:00
James Cole 2e3669a32f Fix #9871 2025-02-20 07:43:32 +01:00
James Cole ea337607c4 Fix #9868 2025-02-20 07:30:30 +01:00
James Cole f7f317a3b2 Fix #9863 2025-02-20 07:28:24 +01:00
James Cole adbf6defe5 Catch nullpointer. 2025-02-20 06:21:29 +01:00
github-actions e0709f2975 Auto commit for release 'develop' on 2025-02-19 2025-02-19 09:14:18 +01:00
James Cole 30007b05cb Fix #9861 2025-02-19 06:37:40 +01:00
James Cole 13fc7f0d8d Fix #9862 2025-02-19 06:21:27 +01:00
github-actions 7c85138115 Auto commit for release 'v6.2.7' on 2025-02-18 2025-02-18 19:52:25 +01:00
James Cole 2c25f65f7f Expand changelog. 2025-02-18 19:46:01 +01:00
github-actions 7eaba962e8 Auto commit for release 'develop' on 2025-02-18 2025-02-18 15:17:06 +01:00
Sander Dorigo 7c38393cde merge 2025-02-18 15:12:42 +01:00
Sander Dorigo 153fd2ae74 fix missing var 2025-02-18 15:06:51 +01:00
github-actions c0204c810c Auto commit for release 'develop' on 2025-02-18 2025-02-18 10:31:05 +01:00
Sander Dorigo 944c107e26 Add enrichment 2025-02-18 10:26:36 +01:00
Sander Dorigo 18e05c06fd Catch nullpointer 2025-02-18 10:24:23 +01:00
Sander Dorigo fb79dbf17c Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-02-18 10:22:42 +01:00
github-actions 31a8163c61 Auto commit for release 'develop' on 2025-02-17 2025-02-17 16:52:58 +01:00
Sander Dorigo 8bcd729250 remove unused script 2025-02-17 16:49:00 +01:00
Sander Dorigo 80c4e69528 Fix #9848 2025-02-17 13:43:43 +01:00
github-actions 7f6d8fdb87 Auto commit for release 'develop' on 2025-02-17 2025-02-17 13:37:44 +01:00
Sander Dorigo c8e301326e Fix #9855 2025-02-17 13:32:07 +01:00
github-actions 4820ef6580 Auto commit for release 'develop' on 2025-02-17 2025-02-17 04:11:50 +01:00
James Cole 4cb775cf4b Various code cleanup. 2025-02-16 19:45:31 +01:00
James Cole c371662c51 Fix missing method. 2025-02-16 19:38:07 +01:00
James Cole ffaa164aa5 Replace facade 2025-02-16 19:32:50 +01:00
James Cole 344bfbe059 Various includes fixed, optimize account deletion. 2025-02-16 19:30:40 +01:00
James Cole 6c38b87ec5 Fix #9842 2025-02-16 07:23:03 +01:00
James Cole dfcd5d79be Fix preferences. 2025-02-16 06:33:53 +01:00
James Cole 07631eea28 Add some debug logging. 2025-02-15 20:51:43 +01:00
James Cole 26c4fe36cc Fix #9803 2025-02-15 19:19:23 +01:00
James Cole 90fc4b44f2 A lot less queries for the account transformer. 2025-02-15 16:51:13 +01:00
James Cole f755dd2d48 Fix nullpointer 2025-02-15 16:46:25 +01:00
James Cole d2647f96e7 Fix type error. 2025-02-15 15:44:21 +01:00
James Cole 9f94ec067a Greatly reduce number of queries in transaction transformer. 2025-02-15 14:10:54 +01:00
James Cole a795755618 Fix #9835 2025-02-15 07:24:31 +01:00
James Cole 8457a1c881 Add cron routine for update. 2025-02-15 06:12:02 +01:00
James Cole fc9429bf3e Fix #9835 2025-02-15 05:39:21 +01:00
James Cole b6e8b66035 Make sure user_group_id is rendered as int where relevant. 2025-02-15 05:38:40 +01:00
github-actions 7504b21c3e Auto commit for release 'develop' on 2025-02-12 2025-02-12 20:11:21 +01:00
github-actions b7dad8166d Auto commit for release 'v6.2.6' on 2025-02-12 2025-02-12 20:06:45 +01:00
James Cole 2da1b43c37 Expand changelog. 2025-02-12 20:01:45 +01:00
James Cole a606315884 Fix balance display #9826 2025-02-12 11:53:51 +01:00
github-actions 295feedd77 Auto commit for release 'develop' on 2025-02-12 2025-02-12 10:50:48 +01:00
James Cole d3b2748c8f Ok this fix for #9797 goes out to @nebster9k who is delightfully stubborn and absolutely correct. 2025-02-12 06:38:21 +01:00
James Cole 1b4655fd70 Fix #9821 2025-02-12 06:06:28 +01:00
Sander Dorigo 05f67ef584 Fix #9810 2025-02-11 16:27:18 +01:00
Sander Dorigo 04ab7ba07d qMerge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop 2025-02-11 16:10:48 +01:00
Sander Dorigo 5806323970 Add some notes 2025-02-11 16:10:16 +01:00
github-actions ee260a3df7 Auto commit for release 'develop' on 2025-02-11 2025-02-11 10:47:28 +01:00
Sander Dorigo 7cb41fb333 fix a null pointer 2025-02-11 10:41:32 +01:00
Sander Dorigo d38adbfdc2 Fix #9808 2025-02-11 08:39:44 +01:00
Sander Dorigo e6a6766ef1 update instructions 2025-02-11 08:36:24 +01:00
James Cole a1e596491c Add debug logging. 2025-02-11 06:13:28 +01:00
James Cole 9c920908a6 Fix type errors 2025-02-11 06:06:30 +01:00
James Cole 0014bffeb8 Fix #9807 2025-02-11 06:06:09 +01:00
James Cole 63c17f99b2 Fix parse error 2025-02-11 06:05:47 +01:00
James Cole ec1e0e2807 New notifications controller (not yet used) 2025-02-11 05:53:34 +01:00
Sander Dorigo 2f16419a7b Add debug logging to finalAccountBalance. 2025-02-10 16:47:59 +01:00
James Cole 02c13859e7 Update ValidatesUserGroupTrait.php
Signed-off-by: James Cole <james@firefly-iii.org>
2025-02-10 10:28:50 +01:00
github-actions 57ec9b8e36 Auto commit for release 'develop' on 2025-02-10 2025-02-10 04:10:23 +01:00
James Cole 41ad35880d Fix #9797 2025-02-09 17:39:18 +01:00
James Cole 3aa946e028 Fix nullpointer. 2025-02-09 09:35:26 +01:00
James Cole 53e46895aa Expand a few repositories to support user groups. 2025-02-09 09:30:44 +01:00
James Cole c61389037d Small code cleanup. 2025-02-09 07:10:05 +01:00
James Cole 6172d60e00 Fix phpstan issues (or ignore them). 2025-02-09 07:02:12 +01:00
github-actions f909f1d9ff Auto commit for release 'develop' on 2025-02-09 2025-02-09 06:14:15 +01:00
James Cole 55018ca046 Remove duplicate copyright statement. 2025-02-09 06:10:46 +01:00
github-actions 19c746a865 Auto commit for release 'v6.2.5' on 2025-02-09 2025-02-09 06:08:12 +01:00
James Cole 503d2aa786 Rename class to stop phpunit complaining. 2025-02-09 05:57:47 +01:00
James Cole 70d83ab501 Fix #9784 2025-02-09 05:52:18 +01:00
James Cole edab602bb7 Fix #9784 2025-02-09 05:26:37 +01:00
James Cole f9bcc4b1fa Extra code for #9747 2025-02-08 10:51:52 +01:00
github-actions f3fe86167c Auto commit for release 'develop' on 2025-02-08 2025-02-08 08:18:18 +01:00
James Cole 2189fb46a2 Disble tests 2025-02-08 08:11:15 +01:00
James Cole 7ff4178c8b Add some basic feature tests. 2025-02-08 08:11:01 +01:00
James Cole fffd695ef8 Expand changelog. 2025-02-08 07:18:50 +01:00
James Cole ee592de035 Fix #9769 2025-02-08 07:16:56 +01:00
James Cole 7394e50ae2 Method should be public. 2025-02-08 06:57:26 +01:00
James Cole f42fcff04a Fix #9783 2025-02-08 06:42:12 +01:00
James Cole 4eb3ce7c14 Fix #9789 2025-02-07 05:26:03 +01:00
James Cole a977c567ce Fix #9787 2025-02-06 18:28:42 +01:00
James Cole 785bd7e905 Fix #9786 2025-02-06 17:06:48 +01:00
James Cole df19f699d4 Fix tests. 2025-02-06 08:56:58 +01:00
James Cole 5e6e932e7e Add subscriptions, over bills. 2025-02-06 08:32:22 +01:00
James Cole 5bc397f01a Disable old parser tests. 2025-02-06 08:32:06 +01:00
James Cole 42209e367f Make sure this order is used. #9780 2025-02-06 05:55:46 +01:00
James Cole d53b1670d3 Fix #9781 2025-02-06 05:51:51 +01:00
James Cole a6d450ba18 Some fixes for #9747 2025-02-05 18:50:09 +01:00
James Cole e8c1a95128 Add debug logs to ntfy. 2025-02-05 18:37:00 +01:00
James Cole edb201f210 Fix #9736 2025-02-05 15:31:53 +01:00
github-actions fe57367a8c Auto commit for release 'v6.2.4' on 2025-02-05 2025-02-05 08:03:34 +01:00
James Cole 134194a95b Fix search code here too. 2025-02-05 07:46:26 +01:00
github-actions 41c0e6fe2d Auto commit for release 'develop' on 2025-02-05 2025-02-05 07:43:04 +01:00
James Cole c07914e733 Update changelog 2025-02-05 07:39:53 +01:00
James Cole 52e2302f4f Fix search code. 2025-02-05 07:37:22 +01:00
github-actions 0a6b34b4f2 Auto commit for release 'v6.2.3' on 2025-02-05 2025-02-05 07:25:30 +01:00
github-actions 1e06b4dd0b Merge branch 'develop' 2025-02-05 06:23:14 +00:00
James Cole 5701f95e0b Expand changelog 2025-02-05 07:22:00 +01:00
James Cole 60d3572d37 Expand changelog 2025-02-05 07:21:31 +01:00
github-actions ffa6e6a571 Auto commit for release 'develop' on 2025-02-05 2025-02-05 06:50:00 +01:00
James Cole d6453cd735 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-02-05 06:46:35 +01:00
James Cole fd79f9df44 Expand changelog, fix migration. 2025-02-05 06:46:27 +01:00
github-actions 4587340293 Auto commit for release 'develop' on 2025-02-05 2025-02-05 06:41:08 +01:00
James Cole 90bfdc7573 Fix #9754 2025-02-05 06:36:51 +01:00
James Cole eca12f661f Fix #9327 2025-02-05 06:31:15 +01:00
James Cole f85878b843 Final tweaks in account balance logic. 2025-02-05 06:29:07 +01:00
James Cole 6499b5eaab Rename variable for consistency. 2025-02-05 06:03:57 +01:00
James Cole 7e4fece63d add some checks and balances to migrations. 2025-02-05 05:58:53 +01:00
James Cole 512eddf8be Fix #9736 2025-02-05 05:51:22 +01:00
github-actions f0fa93a811 Auto commit for release 'develop' on 2025-02-04 2025-02-04 21:38:20 +01:00
James Cole 3c8de21709 Fix balance and native balance lists. 2025-02-04 21:34:46 +01:00
James Cole 81173e8340 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Support/Steam.php
2025-02-04 21:28:43 +01:00
James Cole 35a8fa5f02 Fix balance in range. 2025-02-04 21:27:24 +01:00
James Cole 443036936d Update changelog. 2025-02-04 21:26:53 +01:00
James Cole ac88007593 Replace steam call. 2025-02-04 21:26:40 +01:00
github-actions 2297589dca Auto commit for release 'develop' on 2025-02-04 2025-02-04 19:48:38 +01:00
James Cole 6ada5fa560 Fix #9751 2025-02-04 19:43:53 +01:00
Sander Dorigo 8f6eefb5e7 Fix #9745 2025-02-04 08:45:08 +01:00
Sander Dorigo b36a50381b Fix #9747 2025-02-04 08:42:54 +01:00
Sander Dorigo 51f84b3060 Fix #9762 2025-02-04 08:37:02 +01:00
Sander Dorigo 72132a19b0 Fix #9736 2025-02-04 08:30:27 +01:00
Sander Dorigo 065d165211 Fix #9713 2025-02-04 08:28:43 +01:00
James Cole cabedf39b2 Merge pull request #9750 from firefly-iii/dependabot/github_actions/aws-actions/closed-issue-message-2
Bump aws-actions/closed-issue-message from 1 to 2
2025-02-03 08:03:16 +01:00
dependabot[bot] 5d3806fcd4 Bump aws-actions/closed-issue-message from 1 to 2
Bumps [aws-actions/closed-issue-message](https://github.com/aws-actions/closed-issue-message) from 1 to 2.
- [Release notes](https://github.com/aws-actions/closed-issue-message/releases)
- [Commits](https://github.com/aws-actions/closed-issue-message/compare/v1...v2)

---
updated-dependencies:
- dependency-name: aws-actions/closed-issue-message
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 03:34:11 +00:00
github-actions 01695b3342 Auto commit for release 'develop' on 2025-02-03 2025-02-03 04:08:56 +01:00
James Cole 71fb5fe077 Fix changelog. 2025-02-02 16:24:10 +01:00
github-actions 3bec106840 Auto commit for release 'v6.2.2' on 2025-02-02 2025-02-02 16:20:11 +01:00
James Cole fb01c36be1 Update changelog and manifest [skip ci] 2025-02-02 16:14:32 +01:00
James Cole 26d851e69e Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-02-02 16:14:09 +01:00
James Cole 28c18c046b Fix #9744 2025-02-02 16:13:56 +01:00
github-actions 318cef7e3b Auto commit for release 'develop' on 2025-02-02 2025-02-02 16:06:22 +01:00
James Cole e8dc8f25be Update changelog [skip ci] 2025-02-02 16:02:45 +01:00
James Cole 10ccc30240 Fix #9738 2025-02-02 16:02:17 +01:00
James Cole 5adc877d5e Merge pull request #9743 from mansehr/feature-nordic-currencies
Feature nordic currencies
2025-02-02 15:23:05 +01:00
SoftBrix 30923afb2b Added ISK 2025-02-02 14:48:01 +01:00
SoftBrix 4eb6813b43 Added NOK 2025-02-02 14:46:26 +01:00
James Cole 7521a31619 Expand changelog. 2025-02-02 06:48:57 +01:00
James Cole fc05beb452 Fix #9727 2025-02-02 06:24:10 +01:00
James Cole 1103428a83 Smaller issue replies. 2025-02-02 05:41:54 +01:00
James Cole d06d521bf0 Merge branch 'main' into develop 2025-02-02 05:39:41 +01:00
James Cole 8f64f1c0eb Expand explanation. 2025-02-02 05:39:33 +01:00
James Cole d11c232171 Fix https://github.com/firefly-iii/firefly-iii/issues/9736 2025-02-02 05:38:47 +01:00
SoftBrix 93c73248de Added SEK 2025-02-02 00:03:31 +01:00
James Cole 5bed081ab9 Fix https://github.com/firefly-iii/firefly-iii/issues/9731 2025-02-01 21:14:28 +01:00
James Cole c5188c503e Fix https://github.com/firefly-iii/firefly-iii/issues/9713 2025-02-01 21:06:06 +01:00
James Cole 98ffcac7b6 Fix https://github.com/firefly-iii/firefly-iii/issues/9729 2025-02-01 20:58:35 +01:00
James Cole df1e81d611 Fix https://github.com/firefly-iii/firefly-iii/issues/9730 2025-02-01 20:52:41 +01:00
James Cole 9711170b08 Fix https://github.com/firefly-iii/firefly-iii/issues/9732 2025-02-01 20:43:20 +01:00
github-actions e43264bdce Auto commit for release 'develop' on 2025-02-01 2025-02-01 19:12:18 +01:00
github-actions e0643bed7a Auto commit for release 'v6.2.1' on 2025-02-01 2025-02-01 19:06:02 +01:00
James Cole 7f0eb3b064 Expand changelog. 2025-02-01 19:01:17 +01:00
James Cole f38e510526 Fix https://github.com/firefly-iii/firefly-iii/issues/9714 2025-02-01 18:59:55 +01:00
James Cole 25f99b23b2 Merge branch 'main' into develop 2025-02-01 18:40:00 +01:00
James Cole 44281fc8a0 Respond to "fixed" label. 2025-02-01 18:39:51 +01:00
James Cole eed3902cb7 Fix https://github.com/firefly-iii/firefly-iii/issues/9726 2025-02-01 18:37:26 +01:00
James Cole 94a3bb0443 Limit the number of recurring transactions returned. 2025-02-01 15:39:34 +01:00
James Cole 8dcc36880e Fix https://github.com/firefly-iii/firefly-iii/issues/9722 2025-02-01 13:03:19 +01:00
James Cole 695bb31894 Fix https://github.com/firefly-iii/firefly-iii/issues/9723 2025-02-01 13:01:13 +01:00
James Cole f8ded66869 Fix https://github.com/firefly-iii/firefly-iii/issues/9721 2025-02-01 12:53:34 +01:00
James Cole 8e4bdbc584 Fix https://github.com/firefly-iii/firefly-iii/issues/9720 2025-02-01 12:50:48 +01:00
James Cole f7b14b01bc Fix https://github.com/firefly-iii/firefly-iii/issues/9717 2025-02-01 12:01:50 +01:00
James Cole 705b9bf0f2 Fix https://github.com/firefly-iii/firefly-iii/issues/9719 2025-02-01 11:44:56 +01:00
James Cole f0226dbc54 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-02-01 11:29:21 +01:00
James Cole 1b1dfb0d7b Fix https://github.com/firefly-iii/firefly-iii/issues/9718 2025-02-01 11:28:39 +01:00
github-actions 8ed5092a76 Auto commit for release 'develop' on 2025-02-01 2025-02-01 06:23:31 +01:00
James Cole d609821be6 Expand debug table. 2025-02-01 06:18:58 +01:00
github-actions cd0201074c Auto commit for release 'v6.2.0' on 2025-01-31 2025-01-31 20:35:34 +01:00
James Cole 1d8feec7bc Update changelog. 2025-01-31 20:28:17 +01:00
James Cole d941472c84 Merge branch 'main' into develop 2025-01-29 20:12:19 +01:00
James Cole 674a118fac Merge pull request #9709 from firefly-iii/dependabot/composer/composer-aeff1b7291
Bump twig/twig from 3.18.0 to 3.19.0 in the composer group across 1 directory
2025-01-29 20:11:54 +01:00
dependabot[bot] 1334d793f6 Bump twig/twig in the composer group across 1 directory
Bumps the composer group with 1 update in the / directory: [twig/twig](https://github.com/twigphp/Twig).


Updates `twig/twig` from 3.18.0 to 3.19.0
- [Changelog](https://github.com/twigphp/Twig/blob/3.x/CHANGELOG)
- [Commits](https://github.com/twigphp/Twig/compare/v3.18.0...v3.19.0)

---
updated-dependencies:
- dependency-name: twig/twig
  dependency-type: indirect
  dependency-group: composer
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-29 18:44:41 +00:00
James Cole 60354c0202 Fix https://github.com/firefly-iii/firefly-iii/issues/9704 2025-01-29 08:40:16 +01:00
James Cole 22081d3f0a Add skip help text 2025-01-29 07:52:16 +01:00
James Cole 4b3f8fc78d Remove logging [skip ci] 2025-01-29 07:48:43 +01:00
github-actions 4bd1aab86d Auto commit for release 'develop' on 2025-01-27 2025-01-27 04:08:46 +01:00
James Cole 60362cb60c Remove debug header, does not work. 2025-01-26 17:07:45 +01:00
github-actions 27f740bf98 Auto commit for release 'v6.2.0-beta.1' on 2025-01-26 2025-01-26 14:41:24 +01:00
github-actions 5e15747a5b Auto commit for release 'develop' on 2025-01-26 2025-01-26 14:33:19 +01:00
James Cole 8a6eaad2bb Fix vite 2025-01-26 14:29:11 +01:00
James Cole 5ab52d9f66 Fix vite 2025-01-26 14:26:17 +01:00
James Cole 21a327bf08 Merge branch 'main' into develop 2025-01-26 14:10:30 +01:00
James Cole 15dd175394 Add date [skip ci] 2025-01-26 14:10:09 +01:00
James Cole 3f35305beb Update changelog. 2025-01-26 14:09:49 +01:00
James Cole 768d8b1515 Fix currency exchange rates 2025-01-26 10:09:09 +01:00
James Cole 1c19428a12 Catch API endpoint errors. 2025-01-26 07:44:41 +01:00
James Cole c204533195 Fix various API 500 errors. 2025-01-26 06:30:38 +01:00
James Cole 6d89485792 Fix endpoints, validate dates. 2025-01-25 09:17:21 +01:00
James Cole 949d818bad Cleanup code. 2025-01-25 04:51:09 +01:00
James Cole a12e200a0a Put query count in debug header 2025-01-25 04:50:36 +01:00
James Cole b4039b1f13 Report if the version is a dev version 2025-01-25 04:50:26 +01:00
James Cole 32921e15b1 Remove errors from handler 2025-01-25 04:50:15 +01:00
James Cole 4f7cc7d53b More strict date validation 2025-01-25 04:49:28 +01:00
James Cole 0986bfbc34 Rename warnings to notifications 2025-01-25 04:49:08 +01:00
James Cole 663202bfc6 Return correct headers 2025-01-25 04:48:51 +01:00
James Cole 6f63ddf5b0 [chore] Fix https://github.com/firefly-iii/firefly-iii/issues/9683 and rename default to native. 2025-01-22 05:24:12 +01:00
James Cole a9805b144a Merge pull request #9684 from firefly-iii/dependabot/npm_and_yarn/npm_and_yarn-545022be4d 2025-01-22 04:37:48 +01:00
dependabot[bot] e1b8b9b3ae Bump vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.0.7 to 6.0.9
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 21:02:17 +00:00
James Cole d57327fd11 [chore] various code cleanup. 2025-01-21 06:34:39 +01:00
github-actions 15ac69bfad Auto commit for release 'develop' on 2025-01-20 2025-01-20 04:08:13 +01:00
github-actions a5bd28f8d4 Auto commit for release 'develop' on 2025-01-19 2025-01-19 19:26:58 +01:00
github-actions b2516ca1b4 Auto commit for release 'v6.2.0-alpha.2' on 2025-01-19 2025-01-19 19:12:01 +01:00
James Cole 053b46ae63 [chore] fix phpstan errors. 2025-01-19 19:07:19 +01:00
James Cole 6e836aceec Expand changelog. 2025-01-19 18:55:03 +01:00
James Cole 0e8bcd2e79 [chore] cod cleanup 2025-01-19 18:53:32 +01:00
James Cole bd1f8b2497 [chore] Move to native from default. [skip ci] 2025-01-19 11:54:40 +01:00
James Cole 19dfcf7139 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Transformers/CurrencyTransformer.php
#	app/Transformers/V2/CurrencyTransformer.php
2025-01-19 11:48:18 +01:00
James Cole ef7a3287bb Add info to changelog 2025-01-19 11:47:49 +01:00
James Cole 2900049498 Add default 2025-01-19 11:47:41 +01:00
github-actions 04d1e8fd59 Auto commit for release 'develop' on 2025-01-19 2025-01-19 11:46:08 +01:00
James Cole 9d2f57e40a Fix menu 2025-01-19 11:41:24 +01:00
James Cole ae366341cc Rename default to native. 2025-01-19 11:40:07 +01:00
James Cole 3766128cb8 Add code for administrations. 2025-01-19 11:34:23 +01:00
James Cole 950c60d55c Fix https://github.com/firefly-iii/firefly-iii/issues/9667 2025-01-19 07:18:07 +01:00
James Cole 4b2807de48 rename admin to settings. 2025-01-18 17:26:31 +01:00
James Cole 649736cb31 Rename admin to settings. 2025-01-18 17:22:11 +01:00
James Cole 6a121a8a78 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop
# Conflicts:
#	app/Transformers/AccountTransformer.php
2025-01-18 17:21:34 +01:00
James Cole f69b9ac9da Commit updated transformers. 2025-01-18 17:20:39 +01:00
James Cole 23d70a2fac Rename to settings 2025-01-18 17:20:21 +01:00
James Cole d178ff9de0 Rename admin routes to settings. 2025-01-18 17:20:06 +01:00
James Cole 3ecad3457f Rename "administration" to "settings" 2025-01-18 17:10:47 +01:00
github-actions fa6c621968 Auto commit for release 'develop' on 2025-01-15 2025-01-15 20:30:00 +01:00
James Cole df863b6cff Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-01-15 18:54:56 +01:00
James Cole 9316ff3e51 Fix account api for new features. 2025-01-15 18:54:49 +01:00
James Cole bfd91f8ee6 Update default.twig
Signed-off-by: James Cole <james@firefly-iii.org>
2025-01-13 11:32:54 +01:00
github-actions 13e5d25cfe Auto commit for release 'develop' on 2025-01-13 2025-01-13 04:14:18 +01:00
James Cole b13030420b Merge branch 'main' into develop 2025-01-11 10:07:21 +01:00
github-actions 44d1e8181c Auto commit for release 'develop' on 2025-01-11 2025-01-11 10:06:32 +01:00
James Cole 63b34c1853 Remove unused step. 2025-01-11 10:05:51 +01:00
github-actions facd0144cb Auto commit for release 'develop' on 2025-01-10 2025-01-10 17:56:21 +01:00
James Cole 115e3435af Fix https://github.com/orgs/firefly-iii/discussions/9576 2025-01-10 06:26:28 +01:00
github-actions d44cd50768 Auto commit for release 'develop' on 2025-01-06 2025-01-06 07:37:27 +01:00
James Cole 1afcaea4c6 Trim quotes 2025-01-06 06:55:34 +01:00
James Cole 2bd1b37717 Move class to separate file. 2025-01-06 06:19:09 +01:00
github-actions 2d37177316 Auto commit for release 'develop' on 2025-01-06 2025-01-06 04:13:41 +01:00
James Cole abb25e2015 Fix sql query error and upgrade error. 2025-01-05 14:33:33 +01:00
James Cole d08d075e30 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-01-05 09:23:17 +01:00
github-actions b4c67c02a7 Auto commit for release 'develop' on 2025-01-05 2025-01-05 09:23:02 +01:00
James Cole 04fb6a953e This rule is no longer necessary. 2025-01-05 09:21:29 +01:00
James Cole 5dce0bec8e This is no longer necessary since translations are no longer stored in the repository. 2025-01-05 09:20:55 +01:00
James Cole 481bb3fb0a Fix a few test cases. 2025-01-05 09:18:03 +01:00
James Cole b6960dc299 Fix search result page. 2025-01-05 08:03:15 +01:00
James Cole 73104aae1f Fix data provider. 2025-01-05 07:52:23 +01:00
James Cole 10a284848b Drop else-statements, remove debug statement. 2025-01-05 07:45:29 +01:00
James Cole fd6560bdd0 Fix copyright for new files. 2025-01-05 07:40:30 +01:00
James Cole 0810f617c7 Merge pull request #9598 from Sobuno/NewQueryParserV3
New Query Parser for Search Engine and Rules
2025-01-05 07:32:55 +01:00
James Cole c3ffd39450 run phpcs 2025-01-05 07:31:26 +01:00
James Cole 0f69e0d672 Level 7 yay! 2025-01-04 19:43:58 +01:00
James Cole 1aa8ebe57f Fixed level 7! 2025-01-04 19:25:43 +01:00
James Cole 23178614d5 First fixes for level 7. 2025-01-04 19:12:04 +01:00
James Cole d2b6829574 First fixes for level 7. 2025-01-04 19:05:24 +01:00
James Cole 5602715c96 Made it to level 6! 2025-01-04 15:16:11 +01:00
James Cole 54d0433dd4 Start with level 6. [skip ci] 2025-01-04 09:34:17 +01:00
James Cole f4bc313d0b Fix level 5! Mostly by ignoring the errors lol. 2025-01-04 09:15:39 +01:00
James Cole 5617de3a79 Level 4 fixed! 2025-01-04 09:01:44 +01:00
James Cole 2d62f0ff06 Rename class [skip ci] 2025-01-04 08:44:02 +01:00
James Cole 1c79f6b1b6 Rename again [skip ci] 2025-01-04 08:42:57 +01:00
James Cole bf01153c6b Rename file [skip ci] 2025-01-04 08:42:36 +01:00
James Cole c43b37baef Various phpstan fixes [skip ci] 2025-01-04 08:42:06 +01:00
James Cole d4942efd8e Fix various level 4 issues [skip ci] 2025-01-04 08:02:05 +01:00
James Cole ea9f635b1a Improved cs fixer config [skip ci] 2025-01-04 07:39:33 +01:00
James Cole 7eaa0e16b3 Run phpcs locally to make sure phpstan stays fixed. [skip ci] 2025-01-04 07:39:16 +01:00
James Cole 1b97d8fd48 Fix phpcs things [skip ci] 2025-01-04 07:31:25 +01:00
James Cole 89a29b9b10 Disable a rule. 2025-01-04 07:25:45 +01:00
James Cole 2baac1a6d7 Fix phpstan level 3! 2025-01-04 07:10:37 +01:00
James Cole cd296aa9ac Fix test run. 2025-01-04 06:35:26 +01:00
James Cole 959d168352 Fix various phpstan issues. 2025-01-03 19:16:38 +01:00
James Cole 6cd60951ba Fix for level 2 2025-01-03 19:07:29 +01:00
James Cole 3898c0c0ef Fix phpstan issues. 2025-01-03 18:16:27 +01:00
James Cole fe4d139817 fix phpstan warnings 2025-01-03 15:53:10 +01:00
James Cole d95f3ca59f No errors on level 1. 2025-01-03 15:07:30 +01:00
James Cole 7f6c03ce17 Fix phpstan issues. 2025-01-03 15:04:15 +01:00
James Cole 394d0eabef Fix various phpstan issues. 2025-01-03 14:56:06 +01:00
James Cole a8ae496fda Replace enum 2025-01-03 09:15:52 +01:00
James Cole 1787f4421b Replace enum 2025-01-03 09:11:20 +01:00
James Cole 36351a5dd9 Replace enum 2025-01-03 09:09:15 +01:00
James Cole d009ce31ca Replace enum 2025-01-03 09:05:56 +01:00
James Cole 44eafeeae5 Replace enum 2025-01-03 09:05:19 +01:00
James Cole 21165eb3e0 Update packages. 2025-01-03 08:30:04 +01:00
James Cole 2ef3a33fbf Merge branch 'main' into develop 2025-01-03 08:17:57 +01:00
James Cole f74be0402f Add copyright statements. 2025-01-03 08:15:09 +01:00
github-actions a60cb366b2 Auto commit for release 'develop' on 2025-01-03 2025-01-03 07:12:13 +01:00
github-actions 58e2ef187d Auto commit for release 'develop' on 2025-01-03 2025-01-03 07:01:02 +01:00
James Cole ae80fd8578 Fix test cases. 2025-01-03 04:51:42 +01:00
James Cole c17f2efca6 Fix missing variables. 2025-01-03 04:36:41 +01:00
James Cole 4a185639b9 Fix removal of all piggy banks. 2025-01-03 04:32:51 +01:00
Sobuno dae7e7d507 Handle excludedWords on Rule management pages as well 2025-01-03 01:00:17 +01:00
Sobuno e33e3cc40f Tweak UI 2025-01-03 00:45:19 +01:00
Sobuno 36ec1daf3a Update UI 2025-01-03 00:29:38 +01:00
Sobuno 50aff9cfb6 Make prohibited word search work 2025-01-03 00:13:51 +01:00
Sobuno 058a0f9fb2 Show excluded words in UI 2025-01-03 00:08:11 +01:00
Sobuno 0c955efa8b Allow flipping of subqueries 2025-01-03 00:07:57 +01:00
Sobuno a62916a63d Simplify further 2025-01-02 23:36:00 +01:00
Sobuno af7a4b5d3d Renaming of classes, making true recursive structure 2025-01-02 23:19:21 +01:00
Sobuno 2ae3929dd6 Give a bit better error messages in tests 2025-01-02 22:40:50 +01:00
Sobuno ebd30f4861 Move tests to match rearranged structure + standardize tests 2025-01-02 22:18:12 +01:00
Sobuno afc9ea08f3 Rearrange structure 2025-01-02 22:17:56 +01:00
Sobuno 78f9f7e2dd Add QUERY_PARSER_IMPLEMENTATION in .env.example 2025-01-02 20:06:11 +01:00
Sobuno c44b827922 Fix environment-based selection of Query Parser 2025-01-02 20:03:39 +01:00
James Cole fb30f7ec8f Update build script. 2025-01-02 19:10:39 +01:00
James Cole e878d5ce07 Fix linking piggy banks to transactions. 2025-01-02 04:54:29 +01:00
github-actions f727a38b69 Auto commit for release 'develop' on 2025-01-01 2025-01-01 16:47:50 +01:00
James Cole c11a5384da Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2025-01-01 16:43:44 +01:00
James Cole ed92cbd4b8 Fix piggy bank rule action 2025-01-01 16:43:31 +01:00
Sobuno 92f5cca65b Add QueryParser tests to correct group 2025-01-01 14:18:56 +01:00
Sobuno 57b064f590 Remove incorrect LICENSE message at top of file 2025-01-01 14:18:19 +01:00
Sobuno 9729434926 Allow choosing QueryParser implementation 2025-01-01 05:36:22 +01:00
Sobuno 9d9dffee74 Always assert prohibited field 2025-01-01 05:32:49 +01:00
Sobuno b3f374f4ea Introduce assertion helpers to make tests more readable 2025-01-01 05:32:49 +01:00
Sobuno 50e07d422f Small QoL additions 2025-01-01 05:32:49 +01:00
Sobuno 631ed4956a Handle right parenthesis behaviour correctly 2025-01-01 05:32:49 +01:00
Sobuno 0eca1c8d03 Fix test 2025-01-01 05:32:49 +01:00
Sobuno e38e4574ad Fix warnings in tests and add some more 2025-01-01 05:32:49 +01:00
Sobuno be2d3f3637 Rename QueryParser2 to QueryParser 2025-01-01 05:32:49 +01:00
Sobuno 0e3d779e24 Remove V1 2025-01-01 05:32:49 +01:00
Sobuno 4d25336d87 More WIP 2025-01-01 05:32:49 +01:00
Sobuno 74f76a2835 Fix namespace 2025-01-01 05:32:49 +01:00
Sobuno 84560a6f44 WIP 2025-01-01 05:32:49 +01:00
1407 changed files with 43957 additions and 38443 deletions
+15 -7
View File
@@ -19,26 +19,25 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
$current = __DIR__;
$paths = [
$current . '/../../app',
$current . '/../../config',
$current . '/../../database',
$current . '/../../routes',
$current . '/../../tests',
$current . '/../../resources/lang/en_US',
];
$finder = PhpCsFixer\Finder::create()
->in($paths);
$config = new PhpCsFixer\Config();
$config->setParallelConfig(ParallelConfigFactory::detect());
$config = (new PhpCsFixer\Config())
// ->setUnsupportedPhpVersionAllowed(true) // use this when PHP 8.5 comes out.
->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect())
;
return $config->setRules(
[
// rule sets
'@PHP83Migration' => true,
@@ -62,7 +61,14 @@ return $config->setRules(
'type_declaration_spaces' => false,
'cast_spaces' => false,
// enabled rules
'global_namespace_import' => true, // matches with rector.
// complex rules
'phpdoc_to_comment' => ['ignored_tags' => ['var']],
'php_unit_test_case_static_method_calls' => [
'call_type' => 'this',
],
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => [
'default' => 'at_least_single_space',
@@ -72,5 +78,7 @@ return $config->setRules(
'??=' => 'align_single_space_minimal_by_scope',
],
],
])
]
)
->setFinder($finder);
+312 -186
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -26,9 +26,10 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd $SCRIPT_DIR/php-cs-fixer
composer update --quiet
rm -f .php-cs-fixer.cache
PHP_CS_FIXER_IGNORE_ENV=true ./vendor/bin/php-cs-fixer fix \
./vendor/bin/php-cs-fixer fix \
--config $SCRIPT_DIR/php-cs-fixer/.php-cs-fixer.php \
--format=txt \
-v \
--allow-risky=yes
EXIT_CODE=$?
+21 -52
View File
@@ -1,63 +1,32 @@
parameters:
scanFiles:
- ../_ide_helper_models.php
universalObjectCratesClasses:
- Illuminate\Database\Eloquent\Model
# TODO: slowly remove these parameters and fix the issues found.
reportUnmatchedIgnoredErrors: false
ignoreErrors:
# TODO: slowly remove these exceptions and fix the issues found.
- '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
- '#Control structures using switch should not be used.#' # switch is fine in some cases.
- '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved.
- '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved.
- '#is not allowed to extend#'
- '#does not specify its types#'
- '#switch is forbidden to use#'
- '#is neither abstract nor final#'
- '#on left side of \?\?\= always exists and is not nullable#'
- '#has a nullable return type declaration#' # perhaps throw errors instead?
- '#with a nullable type declaration#' # decide what action should be if param is null.
- '#with null as default value#'
-
message: '#Constructor in [a-zA-Z0-9\\_]+ has parameter \$[a-zA-Z0-9\\_]+ with default value#'
paths:
- ../app/Exceptions/IntervalException.php
- ../app/Support/Navigation.php
-
message: '#but containers should not be injected#'
paths:
- ../app/Support/Authentication/RemoteUserGuard.php
-
message: '#Function compact\(\) should not be used#' # too useful in template rendering.
paths:
- ../app/Generator/Report/Account/MonthReportGenerator.php
- ../app/Generator/Report/Audit/MonthReportGenerator.php
- ../app/Generator/Report/Budget/MonthReportGenerator.php
- ../app/Generator/Report/Category/MonthReportGenerator.php
- ../app/Generator/Report/Standard/MonthReportGenerator.php
- ../app/Generator/Report/Standard/MultiYearReportGenerator.php
- ../app/Generator/Report/Standard/YearReportGenerator.php
- ../app/Generator/Report/Tag/MonthReportGenerator.php
- ../app/Http/Controllers/Account/*.php
- ../app/Http/Controllers/Admin/*.php
- ../app/Http/Controllers/*.php
- ../app/Support/ExpandedForm.php
- ../app/Support/Form/AccountForm.php
- ../app/Support/Form/CurrencyForm.php
- ../app/Support/Form/FormSupport.php
-
message: '#Either catch a more specific exception#'
paths:
- ../app/Support/Form/FormSupport.php
paths:
- ../app
- ../database
- ../routes
- ../config
- ../bootstrap/app.php
universalObjectCratesClasses:
- Illuminate\Database\Eloquent\Model
reportUnmatchedIgnoredErrors: true
ignoreErrors:
# 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#"
- identifier: missingType.generics # not interesting enough to fix.
-
identifier: larastan.noEnvCallsOutsideOfConfig
path: ../app/Console/Commands/System/CreatesDatabase.php
- 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
# The level 8 is the highest level. original was 5
# 7 is more than enough, higher just leaves NULL things.
level: 7
level: 6
+82
View File
@@ -0,0 +1,82 @@
<?php
/*
* rector.php
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
declare(strict_types=1);
use Rector\Config\RectorConfig;
use Rector\EarlyReturn\Rector\If_\ChangeOrIfContinueToMultiContinueRector;
use Rector\Php80\Rector\ClassMethod\AddParamBasedOnParentClassMethodRector;
use Rector\Transform\Rector\String_\StringToClassConstantRector;
use RectorLaravel\Set\LaravelLevelSetList;
return RectorConfig::configure()
->withSkip([
ChangeOrIfContinueToMultiContinueRector::class,
AddParamBasedOnParentClassMethodRector::class,
StringToClassConstantRector::class => [
__DIR__ . '/../app/Http/Controllers/Auth/LoginController.php',
],
__DIR__.'/../bootstrap/cache/*'
])
->withPaths([
__DIR__ . '/../app',
__DIR__ . '/../bootstrap',
__DIR__ . '/../config',
__DIR__ . '/../public',
__DIR__ . '/../resources/lang/en_US',
__DIR__ . '/../routes',
__DIR__ . '/../tests',
])
->withSets([
LaravelLevelSetList::UP_TO_LARAVEL_120,
])
// ->withConfiguredRule(ReplaceServiceContainerCallArgRector::class, [
// new ReplaceServiceContainerCallArg('log', new ClassConstFetch(new Name('Illuminate\Support\Facades\Log'), 'class')),
// ])
// uncomment to reach your current PHP version
->withPhpSets()
->withPreparedSets(
codingStyle: false, // leave false
privatization: false, // leave false.
naming: false, // leave false
instanceOf: true,
earlyReturn: true,
strictBooleans: true,
carbon: true,
rectorPreset: true,
phpunitCodeQuality: true,
doctrineCodeQuality: true,
symfonyCodeQuality: true,
symfonyConfigs: true
)
->withComposerBased(
twig: true,
doctrine: true,
phpunit: true,
symfony: true)
->withTypeCoverageLevel(0)
->withDeadCodeLevel(0)
->withCodeQualityLevel(0)
->withImportNames(removeUnusedImports: true);// import statements instead of full classes.
Executable
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
#
# phpstan.sh
# Copyright (c) 2021 james@firefly-iii.org
#
# This file is part of Firefly III (https://github.com/firefly-iii).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Install composer packages
#composer install --no-scripts --no-ansi
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
echo $1
if [ "$1" == "--dry-run" ]; then
echo "Running rector in dry run."
$SCRIPT_DIR/../vendor/bin/rector --config $SCRIPT_DIR/rector.php --dry-run
exit $?
fi
$SCRIPT_DIR/../vendor/bin/rector --config $SCRIPT_DIR/rector.php
+19 -12
View File
@@ -19,7 +19,7 @@ SITE_OWNER=mail@example.com
APP_KEY=SomeRandomStringOf32CharsExactly
# Firefly III will launch using this language (for new users and unauthenticated visitors)
# For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang
# For a list of available languages: https://github.com/firefly-iii/firefly-iii/blob/main/config/firefly.php#L123
#
# If text is still in English, remember that not everything may have been translated.
DEFAULT_LANGUAGE=en_US
@@ -164,6 +164,13 @@ MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_SENDMAIL_COMMAND=
#
# If you use self-signed certificates for your STMP server, you can use the following settings.
#
MAIL_ALLOW_SELF_SIGNED=false
MAIL_VERIFY_PEER=true
MAIL_VERIFY_PEER_NAME=true
# Other mail drivers:
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
MAILGUN_DOMAIN=
@@ -189,7 +196,7 @@ SEND_REPORT_JOURNALS=true
ENABLE_EXTERNAL_MAP=false
#
# Enable or disable exchange rate conversion. This function isn't used yet by Firefly III
# Enable or disable exchange rate conversion.
#
ENABLE_EXCHANGE_RATES=false
@@ -282,20 +289,13 @@ ALLOW_WEBHOOKS=false
#
# You can set this variable from a file by appending it with _FILE
#
STATIC_CRON_TOKEN=
STATIC_CRON_TOKEN=PLEASE_REPLACE_WITH_32_CHAR_CODE
# You can fine tune the start-up of a Docker container by editing these environment variables.
# Use this at your own risk. Disabling certain checks and features may result in lots of inconsistent data.
# However if you know what you're doing you can significantly speed up container start times.
# Set each value to true to enable, or false to disable.
# Set this to true to build all locales supported by Firefly III.
# This may take quite some time (several minutes) and is generally not recommended.
# If you wish to change or alter the list of locales, start your Docker container with
# `docker run -v locale.gen:/etc/locale.gen -e DKR_BUILD_LOCALE=true`
# and make sure your preferred locales are in your own locale.gen.
DKR_BUILD_LOCALE=false
# Check if the SQLite database exists. Can be skipped if you're not using SQLite.
# Won't significantly speed up things.
DKR_CHECK_SQLITE=true
@@ -314,8 +314,9 @@ DEMO_USERNAME=
DEMO_PASSWORD=
#
# Disable or enable the running balance column data
# Please disable this. It's a very experimental feature.
# Disable or enable the running balance column data.
# If you enable this, please also run "php artisan firefly-iii:correct-database"
# This will take some time the first run.
#
USE_RUNNING_BALANCE=false
@@ -325,6 +326,12 @@ USE_RUNNING_BALANCE=false
#
FIREFLY_III_LAYOUT=v1
#
# Which Query Parser implementation to use for the search engine and rules
# 'new' is experimental, 'legacy' is the classic one
#
QUERY_PARSER_IMPLEMENTATION=new
#
# Please make sure this URL matches the external URL of your Firefly III installation.
# It is used to validate specific requests and to generate URLs in emails.
+3 -10
View File
@@ -1,4 +1,4 @@
name: Bug Report
name: Bug report
description: Report a bug in Firefly III (or associated tools)
body:
- type: checkboxes
@@ -12,7 +12,7 @@ body:
- type: checkboxes
attributes:
label: I've found a bug and checked that ...
description: Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, explain in detail why.
description: Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, please explain why.
options:
- label: ... [the documentation](https://docs.firefly-iii.org/) does not mention anything about my problem
- label: ... there are no open or closed issues that are related to my problem
@@ -33,13 +33,6 @@ body:
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
description: Please describe precisely what you'd expect to happen. Be specific.
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
@@ -54,4 +47,4 @@ body:
- type: textarea
attributes:
label: Additional info
description: Please provide any additional information that seem useful.
description: Please provide any additional information that seems useful.
+3
View File
@@ -3,3 +3,6 @@ contact_links:
- name: Ask a question
url: https://github.com/firefly-iii/firefly-iii/discussions
about: Please ask and answer questions here.
- name: I need support!
url: https://github.com/firefly-iii/firefly-iii/discussions
about: I think I broke something...
+1 -6
View File
@@ -1,4 +1,4 @@
name: Feature Request
name: Feature request
description: Request a feature or enhancement in Firefly III (or associated tools)
body:
- type: checkboxes
@@ -31,11 +31,6 @@ body:
validations:
required: true
- type: textarea
attributes:
label: What are alternatives?
description: Please describe what alternatives currently exist.
- type: textarea
attributes:
label: Additional context
+25 -12
View File
@@ -1,18 +1,31 @@
# Configuration for Label Actions - https://github.com/dessant/label-actions
# The `feature` label is added to issues
fixed:
issues:
# Post a comment, `{issue-author}` is an optional placeholder
comment: |
Hi there!
This is an automatic reply. `Share and enjoy`
This issue has been marked as fixed. Thanks for reporting! A new version will be released in due time. Unfortunately, [I cannot give an estimate](https://docs.firefly-iii.org/references/faq/firefly-iii/general/#when-will-you-release-version-the-next-version), but [the roadmap](https://roadmap.firefly-iii.org/) is available for your reading pleasure.
There is no need to close the issue. It will be closed automatically.
Thank you for your contributions.
feature:
issues:
# Post a comment, `{issue-author}` is an optional placeholder
unlabel: feature
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
This issue has been marked as a feature request. The requested (new) feature will become a part of Firefly III or the data importer in due course.
This issue has been marked as a feature request.
If you come across this issue, please be aware there is NO need to reply with "+1" or "me too" or "I need this too" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted. You can subscribe to this issue to get updates.
If you come across this issue, please be aware there is NO need to reply with "+1" or "I need this too" or "any updates?" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted. You can subscribe to this issue to get updates.
Thank you for your contributions.
@@ -20,13 +33,13 @@ epic:
issues:
# Post a comment, `{issue-author}` is an optional placeholder
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
This issue has been marked as an epic. In epics, large amounts of works are collected that will be part of a major new feature. If you have more ideas that could be a part of this epic, feel free to reply.
*However*, please be aware there is NO need to reply with "+1" or "me too" or "I need this too" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted.
*However*, please be aware there is NO need to reply with "+1" or "I need this too" or "any updates?" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted.
If you are merely interested in this epic's progress, you can subscribe to this issue to get updates.
@@ -37,13 +50,13 @@ enhancement:
issues:
# Post a comment, `{issue-author}` is an optional placeholder
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
This issue has been marked as an enhancement. The requested enhancement to an existing feature will become a part of Firefly III or the data importer in due course.
This issue has been marked as an enhancement.
If you come across this issue, please be aware there is NO need to reply with "+1" or "me too" or "I need this too" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted. You can subscribe to this issue to get updates.
If you come across this issue, please be aware there is NO need to reply with "+1" or "I need this too" or "any updates?" or whatever. Such comments are not helpful, and do not influence [the roadmap](https://roadmap.firefly-iii.org/). Your comment may be :skull: deleted. You can subscribe to this issue to get updates.
Thank you for your contributions.
@@ -51,7 +64,7 @@ triage:
issues:
# Post a comment, `{issue-author}` is an optional placeholder
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
@@ -62,7 +75,7 @@ triage:
needs-moar-debug:
issues:
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
@@ -80,7 +93,7 @@ needs-moar-debug:
needs-moar-logs:
issues:
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
@@ -96,7 +109,7 @@ needs-moar-logs:
v2-layout-issue:
issues:
comment: |
Hi there!
Hi there!
This is an automatic reply. `Share and enjoy`
+7 -54
View File
@@ -1,5 +1,11 @@
---
pull_request_rules:
- name: Make sure PR are up to date before merging
description: This automatically updates PRs when they are out-of-date with the
base branch to avoid semantic conflicts (next step is using a merge
queue).
conditions: []
actions:
update:
- name: Close all on main
conditions:
- base=main
@@ -8,56 +14,3 @@ pull_request_rules:
close:
message: Please do not open PR's on the `main` branch, but on the `develop`
branch only. Thank you!
- name: No translations
conditions:
- -author~=^dependabot(|-preview)\[bot\]$
- base=develop
- or:
- files~=^resources/lang/bg_BG
- files~=^resources/lang/ca_ES
- files~=^resources/lang/cs_CZ
- files~=^resources/lang/da_DK
- files~=^resources/lang/de_DE
- files~=^resources/lang/el_GR
- files~=^resources/lang/en_GB
- files~=^resources/lang/es_ES
- files~=^resources/lang/et_EE
- files~=^resources/lang/fa_IR
- files~=^resources/lang/fi_FI
- files~=^resources/lang/fr_FR
- files~=^resources/lang/he_IL
- files~=^resources/lang/hu_HU
- files~=^resources/lang/id_ID
- files~=^resources/lang/is_IS
- files~=^resources/lang/it_IT
- files~=^resources/lang/ja_JP
- files~=^resources/lang/ko_KR
- files~=^resources/lang/lt_LT
- files~=^resources/lang/nb_NO
- files~=^resources/lang/nl_NL
- files~=^resources/lang/pl_PL
- files~=^resources/lang/pt_BR
- files~=^resources/lang/pt_PT
- files~=^resources/lang/ro_RO
- files~=^resources/lang/ru_RU
- files~=^resources/lang/si_LK
- files~=^resources/lang/sk_SK
- files~=^resources/lang/sl_SI
- files~=^resources/lang/sr_CS
- files~=^resources/lang/sv_SE
- files~=^resources/lang/th_TH
- files~=^resources/lang/tlh_AA
- files~=^resources/lang/tr_TR
- files~=^resources/lang/uk_UA
- files~=^resources/lang/vi_VN
- files~=^resources/lang/zh_CN
- files~=^resources/lang/zh_TW
actions:
comment:
message: >
Please do not submit translated strings in your PR. If you need new
sentences to be translated, add them to the `en_US` language strings.
New or changed translations for other languages can be submitted at
https://crowdin.com/project/firefly-iii
Thank you!
-2
View File
@@ -21,5 +21,3 @@ Changes in this pull request:
-
-
-
@JC5
+25
View File
@@ -0,0 +1,25 @@
Welcome to release %version of Firefly III. This **alpha** release contains the latest fixes, translations and features. It is probably buggy and may not work as expected. You can download the release below, and adventurous Docker users can find this release under the `alpha` tag.
> [!WARNING]
> Please be careful with this alpha release, as it may not work as expected.
Alpha releases are created to test new features and fixes before they are included in a stable release. They are not recommended for production use. This release was created on %date and may contain unexpected bugs. Data loss is rare but possible.
## Changelog (not final)
%changelog
## Installation and upgrade instructions
* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
* Alternatively, read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)
The release files are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/).
## Develop with Firefly III
Are you interested in (future) API changes to Firefly III, or other interesting dev-related updates? Sign up to the [Firefly III developer newsletter](https://firefly-iii.kit.com/dev) to receive low-frequency updates about the development of Firefly III.
## Support Firefly III
Did you know you can support the development of Firefly III? You can donate in many ways, like GitHub Sponsors or Patreon. Please [follow this link](https://bit.ly/donate-to-Firefly-III) for more information. Thank you for your consideration.
+25
View File
@@ -0,0 +1,25 @@
Welcome to release %version of Firefly III. This **beta** release contains the latest fixes, translations and features. It may be buggy, nor work as expected. You can download the release below, and adventurous Docker users can find this release under the `beta` tag.
> [!WARNING]
> Please be careful with this beta release, as it may not work as expected.
Alpha releases are created to test new features and fixes before they are included in a stable release. They are not recommended for production use. This release was created on %date and may contain unexpected bugs. Data loss is rare but possible.
## Changelog (not final)
%changelog
## Installation and upgrade instructions
* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
* Alternatively, read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)
The release files are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/).
## Develop with Firefly III
Are you interested in (future) API changes to Firefly III, or other interesting dev-related updates? Sign up to the [Firefly III developer newsletter](https://firefly-iii.kit.com/dev) to receive low-frequency updates about the development of Firefly III.
## Support Firefly III
Did you know you can support the development of Firefly III? You can donate in many ways, like GitHub Sponsors or Patreon. Please [follow this link](https://bit.ly/donate-to-Firefly-III) for more information. Thank you for your consideration.
+25
View File
@@ -0,0 +1,25 @@
Welcome to release %version of Firefly III. This branch-related release contains the latest fixes, translations and features. It is probably buggy and may not work as expected. You can download the release below, and adventurous Docker users can find this release under the `branch-*` tag.
> [!WARNING]
> Please be careful with this branch release, as it may not work as expected.
Branch releases are created to test large new features that are developed alongside the normal release flow. They are not recommended for production use. This release was created on %date and may contain unexpected bugs. Data loss is rare but possible.
## Changelog
There is no changelog for this release, as it is not final. However, [changelog.md](https://github.com/firefly-iii/firefly-iii/blob/develop/changelog.md) may already contain entries for the future release that this branch will be a part of.
## Installation and upgrade instructions
* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
* Alternatively, read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)
The release files are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/).
## Develop with Firefly III
Are you interested in (future) API changes to Firefly III, or other interesting dev-related updates? Sign up to the [Firefly III developer newsletter](https://firefly-iii.kit.com/dev) to receive low-frequency updates about the development of Firefly III.
## Support Firefly III
Did you know you can support the development of Firefly III? You can donate in many ways, like GitHub Sponsors or Patreon. Please [follow this link](https://bit.ly/donate-to-Firefly-III) for more information. Thank you for your consideration.
+25
View File
@@ -0,0 +1,25 @@
Welcome to the latest development release of Firefly III. This test release contains the absolute latest fixes, translations and features. It is probably buggy and may not work as expected. You can download the release below, and adventurous Docker users can find this release under the `develop` tag.
> [!WARNING]
> Please be careful with this pre-release, as it may not work as expected.
This release was created on %date and may contain unexpected bugs. Data loss is rare but possible.
## Changelog
The changelog for this release may not be up-to-date, so it is not included. However, [changelog.md](https://github.com/firefly-iii/firefly-iii/blob/develop/changelog.md) may already contain entries for the future release.
## Installation and upgrade instructions
* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
* Alternatively, read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)
The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/).
## Develop with Firefly III
Are you interested in (future) API changes to Firefly III, or other interesting dev-related updates? Sign up to the [Firefly III developer newsletter](https://firefly-iii.kit.com/dev) to receive low-frequency updates about the development of Firefly III.
## Support Firefly III
Did you know you can support the development of Firefly III? You can donate in many ways, like GitHub Sponsors or Patreon. Please [follow this link](https://bit.ly/donate-to-Firefly-III) for more information. Thank you for your consideration.
+20
View File
@@ -0,0 +1,20 @@
Welcome to release %version of Firefly III. It contains the latest fixes, translations and features. Docker users can find this release under the `latest` tag.
## Changelog
%changelog
## Installation and upgrade instructions
* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/).
* Alternatively, read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)
The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/).
## Develop with Firefly III
Are you interested in (future) API changes to Firefly III, or other interesting dev-related updates? Sign up to the [Firefly III developer newsletter](https://firefly-iii.kit.com/dev) to receive low-frequency updates about the development of Firefly III.
## Support Firefly III
Did you know you can support the development of Firefly III? You can donate in many ways, like GitHub Sponsors or Patreon. Please [follow this link](https://bit.ly/donate-to-Firefly-III) for more information. Thank you for your consideration.
+2 -3
View File
@@ -15,7 +15,7 @@ jobs:
timeout-minutes: 10
steps:
- name: Prune cancelled/skipped runs
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -45,7 +45,7 @@ jobs:
}
- name: Prune runs older than 3 days
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -66,7 +66,6 @@ jobs:
'label-actions.yml',
'lock.yml',
'release.yml',
'sonarcloud.yml',
'stale.yml'
]
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
close_duplicates:
runs-on: ubuntu-latest
steps:
- uses: github/command@v1.3.0
- uses: github/command@v2.0.2
id: command
with:
allowed_contexts: "issue"
+1 -1
View File
@@ -8,7 +8,7 @@ jobs:
command_and_close:
runs-on: ubuntu-latest
steps:
- uses: aws-actions/closed-issue-message@v1
- uses: aws-actions/closed-issue-message@v2
with:
message: |
Hi there! This is an automatic reply. `Share and enjoy`
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Checkout repository'
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: 'Dependency review'
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
discussions: write
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
- uses: JC5/lock-threads@v6.0.6
with:
issue-inactive-days: 21
pr-inactive-days: 21
+224 -199
View File
@@ -19,35 +19,68 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Switch branch
run: |
if [[ "develop" == "$version" ]]; then
git checkout --track origin/develop
git pull
elif [[ "$version" == branch* ]]; then
PULLBRANCH=${version:7}
echo "The branch is '$PULLBRANCH' ($version)"
git checkout --track origin/$PULLBRANCH
git pull
else
git config user.name github-actions
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git checkout --track origin/develop
git pull
git checkout main
git merge develop
fi
env:
version: ${{ github.event_name == 'schedule' && 'develop' || github.event.inputs.version }}
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ github.event.inputs.phpversion }}
extensions: mbstring, intl, zip, bcmath
- name: crowdin action
- name: Switch and pull
run: |
#
# Always check out origin/develop, unless its a branch release.
#
BRANCH_TO_PULL=origin/develop
if [[ "$version" == branch* ]]; then
BRANCH_TO_PULL=origin/$version
fi
echo "Version is '$version', check out '$BRANCH_TO_PULL'-branch"
git checkout --track $BRANCH_TO_PULL
git pull
echo "Current branch is $(git branch --show-current)"
env:
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Configure Git
run: |
# do some configuration
sudo timedatectl set-timezone Europe/Amsterdam
git config user.name JC5
git config user.email release@firefly-iii.org
git config advice.addIgnoredFile false
git config push.autoSetupRemote true
- name: Lint PHP
run: |
php_lint_file()
{
local php_file="$1"
php -l "$php_file" &> /dev/null
if [ "$?" -ne 0 ]
then
echo -e "[FAIL] $php_file"
return 1
fi
}
export -f php_lint_file
find . -path ./vendor -prune -o -name '*.php' | parallel -j 4 php_lint_file {}
if [ "$?" -ne 0 ]
then
exit 1
fi
- name: Crowdin action
uses: crowdin/github-action@v2
with:
upload_sources: true
@@ -58,15 +91,6 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
CROWDIN_PROJECT_NR: ${{ secrets.CROWDIN_PROJECT_NR }}
CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }}
- name: Cleanup translations
id: cleanup-transactions
uses: JC5/firefly-iii-dev@main
with:
action: 'ff3:crowdin-warning'
output: ''
env:
FIREFLY_III_ROOT: /github/workspace
GH_TOKEN: ''
- name: Cleanup changelog
id: cleanup-changelog
uses: JC5/firefly-iii-dev@main
@@ -85,15 +109,6 @@ jobs:
env:
FIREFLY_III_ROOT: /github/workspace
GH_TOKEN: ''
- name: Extract changelog
id: extract-changelog
uses: JC5/firefly-iii-dev@main
with:
action: 'ff3:extract-changelog'
output: 'output'
env:
FIREFLY_III_ROOT: /github/workspace
GH_TOKEN: ""
- name: Replace version
id: replace-version
uses: JC5/firefly-iii-dev@main
@@ -103,7 +118,7 @@ jobs:
env:
FIREFLY_III_ROOT: /github/workspace
GH_TOKEN: ""
FF_III_VERSION: ${{ github.event_name == 'schedule' && 'develop' || github.event.inputs.version }}
FF_III_VERSION: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Generate JSON v1
id: json-v1
uses: JC5/firefly-iii-dev@main
@@ -143,18 +158,8 @@ jobs:
composer update --no-dev --no-scripts --no-plugins -q
sudo chown -R runner:docker resources/lang
.ci/phpcs.sh || true
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
- name: Release
- name: Calculate variables
run: |
# do some configuration
sudo timedatectl set-timezone Europe/Amsterdam
git config user.name github-actions
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git config advice.addIgnoredFile false
# set some variables
releaseName=$version
@@ -162,10 +167,6 @@ jobs:
zipName=FireflyIII-$version.zip
tarName=FireflyIII-$version.tar.gz
# update composer (again)
composer update --no-dev --no-scripts --no-plugins
composer dump-autoload
# if this is a develop build, slightly different variable names.
if [[ "develop" == "$version" ]]; then
#[[ -z $(git status --untracked-files=normal --porcelain) ]] && echo "this branch is clean, no need to push..." && exit 0;
@@ -200,23 +201,105 @@ jobs:
tagFound=false
fi
done
echo "Will use tag and release name $releaseName."
# set some variables
echo "Release name is $releaseName."
echo "Original name is $originalName."
echo "Zip name is $zipName."
echo "Tar name is $tarName."
# create a new branch to store the difference in.
BRANCH_NAME=release-$(date +'%s')
git checkout -b $BRANCH_NAME
echo "Temporary branch name is '$BRANCH_NAME'."
# share variables with next step.
echo "releaseName=$releaseName" >> "$GITHUB_ENV"
echo "originalName=$originalName" >> "$GITHUB_ENV"
echo "zipName=$zipName" >> "$GITHUB_ENV"
echo "tarName=$tarName" >> "$GITHUB_ENV"
echo "BRANCH_NAME=$BRANCH_NAME" >> "$GITHUB_ENV"
env:
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Commit all changes
run: |
# add all content, except output.txt (this contains the changelog and/or the download instructions)
echo 'Add all and reset output.txt'
echo 'Add all'
git add -A
if test -f "output.txt"; then
git reset output.txt
fi
git commit -m "Auto commit for release '$version' on $(date +'%Y-%m-%d')" || true
# push to a new branch.
echo "Auto commit on branch '$(git branch --show-current)'."
git commit -m "🤖 Auto commit for release '$version' on $(date +'%Y-%m-%d')" || true
git push
env:
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Generate release description
id: release-description
uses: JC5/firefly-iii-dev@main
with:
action: "ff3:generate-release-notes firefly-iii ${{ inputs.version || 'develop' }}"
output: 'output'
env:
FIREFLY_III_ROOT: /github/workspace
GH_TOKEN: ""
- name: Merge all into working branch
run: |
MERGE_INTO=develop
if [[ "$version" == branch* ]]; then
MERGE_INTO=$version
fi
# zip and tar everything
echo 'Zip and tar...'
zip -rq $zipName . -x "*.git*" "*.ci*" "*.github*" "*node_modules*" "*output.txt*"
echo "Merge all changes from $BRANCH_NAME back into '$MERGE_INTO' using a PR"
PR_URL=$(gh pr create -B $MERGE_INTO -H $BRANCH_NAME --title "🤖 Automatic PR to merge all changes into the '$MERGE_INTO' branch." --body '🤖 This PR was created automatically by a GitHub action to merge the changed files into this branch. It will be merged automatically. `Share and enjoy`')
echo "PR URL is '$PR_URL'"
IFS='/' read -ra parts <<< "$PR_URL"
PR_NR=$(printf %s\\n "${parts[@]:(-1)}")
echo "PR number is '$PR_NR'"
gh pr merge $PR_NR -b "🤖 Automatically merge the PR into the $MERGE_INTO branch." -d --merge
# pull the changes from the $MERGE_INTO branch.
git checkout $MERGE_INTO
git merge origin/$MERGE_INTO
git pull
git status
echo "Current branch '$(git branch --show-current)'."
if [[ "develop" != "$version" ]] && [[ "$version" != branch* ]]; then
git checkout main
git merge origin/main
git pull
git status
echo "Also merge everything into main since this is a release."
echo 'create PR'
PR_URL=$(gh pr create -B main -H develop --title "🤖 Automatic PR to merge all changes into the main branch." --body '🤖 This PR was created automatically by a GitHub action to merge the changed files into this branch. It will be merged automatically. `Share and enjoy`')
echo "PR URL is '$PR_URL'"
IFS='/' read -ra parts <<< "$PR_URL"
PR_NR=$(printf %s\\n "${parts[@]:(-1)}")
echo "PR number is '$PR_NR'"
echo 'Merge PR'
gh pr merge $PR_NR -b "🤖 Automatically merge the PR into the main branch." --merge
git checkout main
git merge origin/main
git pull
git status
echo "Current branch '$(git branch --show-current)'."
fi
echo "DONE!"
env:
GH_TOKEN: ${{ github.token }}
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Create archives
run: |
echo "Create zip file $zipName"
zip -rq $zipName . -x "*.git*" "*.ci*" "*.github*" "*node_modules*" "*output.txt*" "*Procfile*" "*crowdin.yml*" "*sonar-project.properties*"
touch $tarName
tar --exclude=$tarName --exclude=$zipName --exclude='./.git' --exclude='./.ci' --exclude='./.github' --exclude='./node_modules' --exclude='./output.txt' -czf $tarName .
echo "Create tar file $tarName"
tar --exclude=$tarName --exclude=$zipName --exclude='./.git' --exclude='./.ci' --exclude='./.github' --exclude='./node_modules' --exclude='./output.txt' --exclude='./Procfile' --exclude='../crowdin.yml' --exclude='./sonar-project.properties' -czf $tarName .
# add sha256 sum
echo 'Sha sum ...'
sha256sum -b $zipName > $zipName.sha256
@@ -225,165 +308,107 @@ jobs:
# add signatures:
gpg --armor --detach-sign $zipName
gpg --armor --detach-sign $tarName
# describe the development release.
if [[ "develop" == "$version" ]]; then
echo 'Develop release.'
rm -f output.txt
touch output.txt
sudo chown -R runner:docker output.txt
echo "Weekly development release of Firefly III with the latest fixes, translations and features. Docker users can find this release under the \`develop\` tag." >> output.txt
echo "" >> output.txt
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
echo "" >> output.txt
echo "* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
echo "" >> output.txt
echo ":warning: Please be careful with this pre-release, as it may not work as expected." >> output.txt
fi
# describe a branch release
if [[ "$version" == branch* ]]; then
echo 'Branch release.'
rm -f output.txt
touch output.txt
sudo chown -R runner:docker output.txt
echo "Irregular BRANCH release of Firefly III. This release contains specific features or changes. Docker users can find this release under the \`$version\` tag." >> output.txt
echo "" >> output.txt
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
echo "" >> output.txt
echo "* Please read the installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
echo "" >> output.txt
echo ":warning: Please be careful with this branch pre-release, as it may not work as expected." >> output.txt
fi
# describe the main release
if [[ "develop" != "$version" ]] && [[ "$version" != branch* ]] && [[ "$version" != *alpha* ]] && [[ "$version" != *beta* ]]; then
echo 'Main release.'
sudo chown -R runner:docker output.txt
echo '' >> output.txt
echo '### Instructions' >> output.txt
echo '' >> output.txt
echo "* Installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
echo "* The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
fi
# describe alpha release
if [[ "$version" == *alpha* ]]; then
echo 'ALPHA release.'
rm -f output.txt
touch output.txt
sudo chown -R runner:docker output.txt
echo "Very early ALPHA release of Firefly III. This release contains specific features or changes. Docker users can find this release under the \`$version\` tag." >> output.txt
echo '' >> output.txt
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
echo '' >> output.txt
echo '### Instructions' >> output.txt
echo '' >> output.txt
echo "* Installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
echo "* The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
fi
# describe beta release
if [[ "$version" == *beta* ]]; then
echo 'BETA release.'
rm -f output.txt
touch output.txt
sudo chown -R runner:docker output.txt
echo "Very early BETA release of Firefly III. This release contains specific features or changes. Docker users can find this release under the \`$version\` tag." >> output.txt
echo '' >> output.txt
echo "This release was created on **$(date +'%Y-%m-%d')** and may contain unexpected bugs. Data loss is rare but is not impossible. The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
echo '' >> output.txt
echo '### Instructions' >> output.txt
echo '' >> output.txt
echo "* Installation instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/), [Portainer](https://docs.firefly-iii.org/how-to/firefly-iii/installation/portainer/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/installation/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/installation/self-managed/)" >> output.txt
echo "* Or read the upgrade instructions for [Docker](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/docker/), [Kubernetes](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/kubernetes/) or [self-managed servers](https://docs.firefly-iii.org/how-to/firefly-iii/upgrade/self-managed/)" >> output.txt
echo "* The releases are signed, and you can verify them using the [Firefly III releases PGP key](https://docs.firefly-iii.org/explanation/more-information/signatures/)." >> output.txt
fi
- name: Create release
run: |
# create a development release:
if [[ "develop" == "$version" ]]; then
# create the release:
echo "Create develop release."
git tag -a $releaseName -m "Development release '$version' on $(date +'%Y-%m-%d')"
# pull the changes from the develop branch.
git checkout develop
git merge origin/develop
git pull
# create the release:
echo "Create develop release under tag '$releaseName'."
git tag -a $releaseName -m "🤖 Development release '$version' on $(date +'%Y-%m-%d')"
git push origin $releaseName
gh release create $releaseName -p --verify-tag \
-t "Development release for $(date +'%Y-%m-%d')" \
--latest=false \
-F output.txt
fi
# create a branch release:
if [[ "$version" == branch* ]]; then
# pull the changes from the branch-* branch.
git checkout $version
git merge origin/$version
git pull
# create the release:
echo "Create branch release."
git tag -a $releaseName -m "Branch release '$version' on $(date +'%Y-%m-%d')"
git push origin $releaseName
gh release create $releaseName -p --verify-tag \
-t "Branch release for $(date +'%Y-%m-%d')" \
--latest=false \
-F output.txt
fi
# create a development (nightly) release:
if [[ "develop" == "$version" ]] || [[ "$version" == branch* ]]; then
# add zip file to release.
gh release upload $releaseName $zipName
gh release upload $releaseName $tarName
# Create a production release.
if [[ "develop" != "$version" ]] && [[ "$version" != branch* ]]; then
git checkout main
git merge origin/main
git pull
git status
# add sha256 sum to release
gh release upload $releaseName $zipName.sha256
gh release upload $releaseName $tarName.sha256
# add signatures to release
gh release upload $releaseName $zipName.asc
gh release upload $releaseName $tarName.asc
# get current HEAD and add as file to the release
HEAD=$(git rev-parse HEAD)
echo $HEAD > HEAD.txt
gh release upload $releaseName HEAD.txt
else
echo 'MAIN (real) release'
git tag -a $releaseName -m "Here be changelog"
echo "Create prod release."
git tag -a $releaseName -m "Release $version"
git push origin $releaseName
gh release create $releaseName -F output.txt -t "$releaseName" --verify-tag
# add archive files to release
gh release upload $releaseName $zipName
gh release upload $releaseName $tarName
# do not tag as latest when alpha or beta.
if [[ "$version" == *alpha* ]] || [[ "$version" == *beta* ]]; then
echo 'Mark alpha or beta as NOT the latest.'
gh release create $releaseName -F output.txt -t "$releaseName" --verify-tag --latest=false
fi
# add sha256 sums to release
gh release upload $releaseName $zipName.sha256
gh release upload $releaseName $tarName.sha256
# add signatures to release
gh release upload $releaseName $zipName.asc
gh release upload $releaseName $tarName.asc
# get current HEAD and add as file to the release
HEAD=$(git rev-parse HEAD)
echo $HEAD > HEAD.txt
gh release upload $releaseName HEAD.txt
# remove all temporary files
rm -f output.txt
rm -f HEAD.txt
rm -f $zipName
rm -f $zipName.sha256
rm -f $tarName
rm -f $tarName.sha256
# merge main back into develop
git checkout develop
git merge main
git push
# tag as latest when NOT alpha or beta.
if [[ "$version" != *alpha* ]] && [[ "$version" != *beta* ]]; then
echo 'Mark prod as the latest.'
gh release create $releaseName -F output.txt -t "$releaseName" --verify-tag --latest=true
fi
fi
env:
GH_TOKEN: ${{ github.token }}
version: ${{ github.event_name == 'schedule' && 'develop' || github.event.inputs.version }}
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
- name: Upload artifacts
run: |
# add zip file to release.
echo "Upload $zipName to $releaseName"
gh release upload $releaseName $zipName
echo "Upload $tarName to $releaseName"
gh release upload $releaseName $tarName
# add sha256 sum to release
echo "Upload $zipName.sha256 to $releaseName"
gh release upload $releaseName $zipName.sha256
echo "Upload $tarName.sha256 to $releaseName"
gh release upload $releaseName $tarName.sha256
# add signatures to release
echo "Upload $zipName.asc to $releaseName"
gh release upload $releaseName $zipName.asc
echo "Upload $tarName.asc to $releaseName"
gh release upload $releaseName $tarName.asc
# get current HEAD and add as file to the release
HEAD=$(git rev-parse HEAD)
echo $HEAD > HEAD.txt
echo "Upload HEAD.txt to $releaseName"
gh release upload $releaseName HEAD.txt
# remove all temporary files
rm -f output.txt
rm -f HEAD.txt
rm -f $zipName
rm -f $zipName.sha256
rm -f $tarName
rm -f $tarName.sha256
env:
GH_TOKEN: ${{ github.token }}
version: ${{ github.event_name == 'schedule' && 'develop' || inputs.version }}
-67
View File
@@ -1,67 +0,0 @@
name: 'Code - Run Sonarcloud'
on:
pull_request:
workflow_dispatch:
push:
branches:
- main
- develop
env:
DB_CONNECTION: sqlite
APP_KEY: UfpBqqeXx7zpNodsC6yjYQcRfDdm4Bxh
jobs:
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP with Xdebug
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: xdebug
extensions: >-
bcmath
curl
fileinfo
iconv
intl
json
sqlite3
mbstring
openssl
pdo
session
simplexml
sodium
tokenizer
xml
xmlwriter
- name: Copy standard configuration
run: cp .env.testing .env
- name: Install Composer dependencies
run: composer install --prefer-dist --no-interaction --no-progress --no-scripts
- name: "Create database file"
run: touch storage/database/database.sqlite
- name: "Upgrades the database to the latest version"
run: php artisan firefly-iii:upgrade-database
- name: "Integrity Database Report"
run: php artisan firefly-iii:report-integrity
- name: "Run tests with coverage"
run: composer coverage
- name: Fix code coverage paths
run: sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.xml
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GH_ACTIONS_PERSONAL_ACCESS_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
actions: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: |
+10
View File
@@ -7,6 +7,7 @@ yarn-error.log
.env
/.ci/php-cs-fixer/vendor
coverage.xml
output.txt
# ignore generated files.
public/build
@@ -14,7 +15,16 @@ public/build
# ignore v1 build files
resources/assets/v1/node_modules
resources/assets/v1/build
public/v1/js/app.js*
public/v1/js/app_vue.js*
public/v1/js/create*
public/v1/js/edit*
public/v1/js/profile*
public/v1/js/administrations
public/v1/js/exchange-rates
public/v1/js/webhooks
# ignore v2 build files
resources/assets/v2/node_modules
resources/assets/v2/build
public/v2/i18n
+8
View File
@@ -3,7 +3,15 @@
Over time, many people have contributed to Firefly III. Their efforts are not always visible, but always remembered and appreciated.
Please find below all the people who contributed to the Firefly III code. Their names are mentioned in the year of their first contribution.
## 2025
- Nicky De Maeyer
- Denis Iskandarov
- Lompi
- Jose Diaz-Gonzalez
- SoftBrix
## 2024
- Sobuno
- TasneemTantawy
- Antônio Franco
- yparitcher
@@ -27,13 +27,16 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Debug\Timer;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Api\AccountFilter;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
/**
* Class AccountController
@@ -42,6 +45,10 @@ class AccountController extends Controller
{
use AccountFilter;
// this array only exists to test if the constructor will use it properly.
protected array $accepts = ['application/json', 'application/vnd.api+json'];
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/** @var array<int, string> */
private array $balanceTypes;
private AccountRepositoryInterface $repository;
@@ -54,10 +61,10 @@ class AccountController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -74,40 +81,51 @@ class AccountController extends Controller
*/
public function accounts(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
$types = $data['types'];
$query = $data['query'];
$date = $data['date'] ?? today(config('app.timezone'));
$return = [];
$result = $this->repository->searchAccount((string) $query, $types, $this->parameters->get('limit'));
$data = $request->getData();
$types = $data['types'];
$query = $data['query'];
$date = $data['date'] ?? today(config('app.timezone'));
$return = [];
$timer = Timer::getInstance();
$timer->start(sprintf('AC accounts "%s"', $query));
$result = $this->repository->searchAccount((string) $query, $types, $this->parameters->get('limit'));
// set date to end-of-day for account balance. so it is at $date 23:59:59
$date->endOfDay();
$allBalances = Steam::accountsBalancesOptimized($result, $date, $this->primaryCurrency, $this->convertToPrimary);
/** @var Account $account */
foreach ($result as $account) {
$nameWithBalance = $account->name;
$currency = $this->repository->getAccountCurrency($account) ?? $this->defaultCurrency;
$currency = $this->repository->getAccountCurrency($account) ?? $this->primaryCurrency;
$useCurrency = $currency;
if (in_array($account->accountType->type, $this->balanceTypes, true)) {
$balance = Steam::finalAccountBalance($account, $date);
$key = $this->convertToNative && $currency->id !== $this->defaultCurrency->id ? 'native_balance' : 'balance';
$useCurrency = $this->convertToNative && $currency->id !== $this->defaultCurrency->id ? $this->defaultCurrency : $currency;
// this one is correct.
Log::debug(sprintf('accounts: Call finalAccountBalance with date/time "%s"', $date->toIso8601String()));
$balance = $allBalances[$account->id] ?? [];
$key = $this->convertToPrimary && $currency->id !== $this->primaryCurrency->id ? 'pc_balance' : 'balance';
$useCurrency = $this->convertToPrimary && $currency->id !== $this->primaryCurrency->id ? $this->primaryCurrency : $currency;
$amount = $balance[$key] ?? '0';
$nameWithBalance = sprintf(
'%s (%s)',
$account->name,
app('amount')->formatAnything($useCurrency, $amount, false)
);
$nameWithBalance = sprintf('%s (%s)', $account->name, Amount::formatAnything($useCurrency, $amount, false));
}
$return[] = [
'id' => (string) $account->id,
'name' => $account->name,
'name_with_balance' => $nameWithBalance,
'type' => $account->accountType->type,
'currency_id' => (string) $useCurrency->id,
'currency_name' => $useCurrency->name,
'currency_code' => $useCurrency->code,
'currency_symbol' => $useCurrency->symbol,
'currency_decimal_places' => $useCurrency->decimal_places,
'id' => (string) $account->id,
'name' => $account->name,
'name_with_balance' => $nameWithBalance,
'active' => $account->active,
'type' => $account->accountType->type,
'currency_id' => (string) $useCurrency->id,
'currency_name' => $useCurrency->name,
'currency_code' => $useCurrency->code,
'currency_symbol' => $useCurrency->symbol,
'currency_decimal_places' => $useCurrency->decimal_places,
'account_currency_id' => (string) $currency->id,
'account_currency_name' => $currency->name,
'account_currency_code' => $currency->code,
'account_currency_symbol' => $currency->symbol,
'account_currency_decimal_places' => $currency->decimal_places,
];
}
@@ -122,7 +140,8 @@ class AccountController extends Controller
return $posA - $posB;
}
);
$timer->stop(sprintf('AC accounts "%s"', $query));
return response()->json($return);
return response()->api($return);
}
}
@@ -26,9 +26,9 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class BillController extends Controller
{
private BillRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_SUBSCRIPTIONS];
/**
* BillController constructor.
@@ -46,10 +47,10 @@ class BillController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(BillRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -65,15 +66,13 @@ class BillController extends Controller
$data = $request->getData();
$result = $this->repository->searchBill($data['query'], $this->parameters->get('limit'));
$filtered = $result->map(
static function (Bill $item) {
return [
'id' => (string) $item->id,
'name' => $item->name,
'active' => $item->active,
];
}
static fn (Bill $item) => [
'id' => (string) $item->id,
'name' => $item->name,
'active' => $item->active,
]
);
return response()->json($filtered->toArray());
return response()->api($filtered->toArray());
}
}
@@ -26,9 +26,9 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Budget;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class BudgetController extends Controller
{
private BudgetRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_BUDGETS];
/**
* BudgetController constructor.
@@ -46,10 +47,10 @@ class BudgetController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(BudgetRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -65,14 +66,13 @@ class BudgetController extends Controller
$data = $request->getData();
$result = $this->repository->searchBudget($data['query'], $this->parameters->get('limit'));
$filtered = $result->map(
static function (Budget $item) {
return [
'id' => (string) $item->id,
'name' => $item->name,
];
}
static fn (Budget $item) => [
'id' => (string) $item->id,
'name' => $item->name,
'active' => $item->active,
]
);
return response()->json($filtered);
return response()->api($filtered->toArray());
}
}
@@ -26,9 +26,9 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class CategoryController extends Controller
{
private CategoryRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* CategoryController constructor.
@@ -46,10 +47,10 @@ class CategoryController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(CategoryRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -65,14 +66,12 @@ class CategoryController extends Controller
$data = $request->getData();
$result = $this->repository->searchCategory($data['query'], $this->parameters->get('limit'));
$filtered = $result->map(
static function (Category $item) {
return [
'id' => (string) $item->id,
'name' => $item->name,
];
}
static fn (Category $item) => [
'id' => (string) $item->id,
'name' => $item->name,
]
);
return response()->json($filtered);
return response()->api($filtered->toArray());
}
}
@@ -24,11 +24,12 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Deprecated;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
use FireflyIII\User;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +38,7 @@ use Illuminate\Http\JsonResponse;
class CurrencyController extends Controller
{
private CurrencyRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* CurrencyController constructor.
@@ -46,10 +48,10 @@ class CurrencyController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(CurrencyRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -77,15 +79,14 @@ class CurrencyController extends Controller
];
}
return response()->json($result);
return response()->api($result);
}
/**
* Documentation for this endpoint is at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getCurrenciesCodeAC
*
* @deprecated
*/
#[Deprecated]
public function currenciesWithCode(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -103,6 +104,6 @@ class CurrencyController extends Controller
];
}
return response()->json($result);
return response()->api($result);
}
}
@@ -26,9 +26,9 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\ObjectGroup;
use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class ObjectGroupController extends Controller
{
private ObjectGroupRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* CurrencyController constructor.
@@ -46,10 +47,10 @@ class ObjectGroupController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(ObjectGroupRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
@@ -75,6 +76,6 @@ class ObjectGroupController extends Controller
];
}
return response()->json($return);
return response()->api($return);
}
}
@@ -26,10 +26,12 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\User;
use FireflyIII\Support\Facades\Amount;
use Illuminate\Http\JsonResponse;
/**
@@ -39,6 +41,7 @@ class PiggyBankController extends Controller
{
private AccountRepositoryInterface $accountRepository;
private PiggyBankRepositoryInterface $piggyRepository;
protected array $acceptedRoles = [UserRoleEnum::READ_PIGGY_BANKS];
/**
* PiggyBankController constructor.
@@ -48,22 +51,19 @@ class PiggyBankController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->piggyRepository = app(PiggyBankRepositoryInterface::class);
$this->accountRepository = app(AccountRepositoryInterface::class);
$this->piggyRepository->setUser($user);
$this->accountRepository->setUser($user);
$this->piggyRepository->setUser($this->user);
$this->piggyRepository->setUserGroup($this->userGroup);
$this->accountRepository->setUser($this->user);
$this->accountRepository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getPiggiesAC
*/
public function piggyBanks(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -87,13 +87,9 @@ class PiggyBankController extends Controller
];
}
return response()->json($response);
return response()->api($response);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getPiggiesBalanceAC
*/
public function piggyBanksWithBalance(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -102,6 +98,7 @@ class PiggyBankController extends Controller
/** @var PiggyBank $piggy */
foreach ($piggies as $piggy) {
/** @var TransactionCurrency $currency */
$currency = $piggy->transactionCurrency;
$currentAmount = $this->piggyRepository->getCurrentAmount($piggy);
$objectGroup = $piggy->objectGroups()->first();
@@ -111,8 +108,8 @@ class PiggyBankController extends Controller
'name_with_balance' => sprintf(
'%s (%s / %s)',
$piggy->name,
app('amount')->formatAnything($currency, $currentAmount, false),
app('amount')->formatAnything($currency, $piggy->target_amount, false),
Amount::formatAnything($currency, $currentAmount, false),
Amount::formatAnything($currency, $piggy->target_amount, false),
),
'currency_id' => (string) $currency->id,
'currency_name' => $currency->name,
@@ -124,6 +121,6 @@ class PiggyBankController extends Controller
];
}
return response()->json($response);
return response()->api($response);
}
}
@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Recurrence;
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
use Illuminate\Http\JsonResponse;
@@ -36,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class RecurrenceController extends Controller
{
private RecurringRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RECURRING];
/**
* RecurrenceController constructor.
@@ -45,19 +47,16 @@ class RecurrenceController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(RecurringRepositoryInterface::class);
$this->repository->setUser(auth()->user());
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getRecurringAC
*/
public function recurring(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -70,9 +69,10 @@ class RecurrenceController extends Controller
'id' => (string) $recurrence->id,
'name' => $recurrence->title,
'description' => $recurrence->description,
'active' => $recurrence->active,
];
}
return response()->json($response);
return response()->api($response);
}
}
@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Rule;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
use Illuminate\Http\JsonResponse;
@@ -36,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class RuleController extends Controller
{
private RuleRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RULES];
/**
* RuleController constructor.
@@ -45,18 +47,16 @@ class RuleController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(RuleRepositoryInterface::class);
$this->repository->setUser(auth()->user());
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getRulesAC
*/
public function rules(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -66,12 +66,13 @@ class RuleController extends Controller
/** @var Rule $rule */
foreach ($rules as $rule) {
$response[] = [
'id' => (string) $rule->id,
'id' => (string)$rule->id,
'name' => $rule->title,
'description' => $rule->description,
'active' => $rule->active,
];
}
return response()->json($response);
return response()->api($response);
}
}
@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
use Illuminate\Http\JsonResponse;
@@ -36,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class RuleGroupController extends Controller
{
private RuleGroupRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_RULES];
/**
* RuleGroupController constructor.
@@ -45,18 +47,16 @@ class RuleGroupController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(RuleGroupRepositoryInterface::class);
$this->repository->setUser(auth()->user());
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getRuleGroupsAC
*/
public function ruleGroups(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -69,9 +69,10 @@ class RuleGroupController extends Controller
'id' => (string) $group->id,
'name' => $group->title,
'description' => $group->description,
'active' => $group->active,
];
}
return response()->json($response);
return response()->api($response);
}
}
@@ -26,9 +26,9 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Tag;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
/**
@@ -37,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class TagController extends Controller
{
private TagRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* TagController constructor.
@@ -46,20 +47,16 @@ class TagController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(TagRepositoryInterface::class);
$this->repository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getTagAC
*/
public function tags(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -75,6 +72,6 @@ class TagController extends Controller
];
}
return response()->json($array);
return response()->api($array);
}
}
@@ -26,10 +26,11 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Collection;
@@ -38,6 +39,7 @@ use Illuminate\Support\Collection;
*/
class TransactionController extends Controller
{
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
private TransactionGroupRepositoryInterface $groupRepository;
private JournalRepositoryInterface $repository;
@@ -49,22 +51,19 @@ class TransactionController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->validateUserGroup($request);
$this->repository = app(JournalRepositoryInterface::class);
$this->groupRepository = app(TransactionGroupRepositoryInterface::class);
$this->repository->setUser($user);
$this->groupRepository->setUser($user);
$this->repository->setUser($this->user);
$this->repository->setUserGroup($this->userGroup);
$this->groupRepository->setUser($this->user);
$this->groupRepository->setUserGroup($this->userGroup);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getTransactionsAC
*/
public function transactions(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -84,13 +83,9 @@ class TransactionController extends Controller
];
}
return response()->json($array);
return response()->api($array);
}
/**
* This endpoint is documented at:
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getTransactionsIDAC
*/
public function transactionsWithID(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -98,7 +93,7 @@ class TransactionController extends Controller
if (is_numeric($data['query'])) {
// search for group, not journal.
$firstResult = $this->groupRepository->find((int) $data['query']);
if (null !== $firstResult) {
if ($firstResult instanceof TransactionGroup) {
// group may contain multiple journals, each a result:
foreach ($firstResult->transactionJournals as $journal) {
$result->push($journal);
@@ -122,6 +117,6 @@ class TransactionController extends Controller
];
}
return response()->json($array);
return response()->api($array);
}
}
@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\TransactionType\TransactionTypeRepositoryInterface;
use Illuminate\Http\JsonResponse;
@@ -36,6 +37,7 @@ use Illuminate\Http\JsonResponse;
class TransactionTypeController extends Controller
{
private TransactionTypeRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* TransactionTypeController constructor.
@@ -45,6 +47,7 @@ class TransactionTypeController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(TransactionTypeRepositoryInterface::class);
return $next($request);
@@ -52,10 +55,6 @@ class TransactionTypeController extends Controller
);
}
/**
* This endpoint is documented at
* * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/autocomplete/getTransactionTypesAC
*/
public function transactionTypes(AutocompleteRequest $request): JsonResponse
{
$data = $request->getData();
@@ -72,6 +71,6 @@ class TransactionTypeController extends Controller
];
}
return response()->json($array);
return response()->api($array);
}
}
@@ -24,17 +24,19 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\DateRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Api\V1\Requests\Chart\ChartRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\Preference;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Api\ApiSupport;
use FireflyIII\User;
use FireflyIII\Support\Http\Api\CleansChartData;
use FireflyIII\Support\Http\Api\CollectsAccountsFromFilter;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
/**
* Class AccountController
@@ -42,7 +44,12 @@ use Illuminate\Http\JsonResponse;
class AccountController extends Controller
{
use ApiSupport;
use CleansChartData;
use CollectsAccountsFromFilter;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
private array $chartData = [];
private AccountRepositoryInterface $repository;
/**
@@ -53,10 +60,10 @@ class AccountController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
/** @var User $user */
$user = auth()->user();
$this->repository = app(AccountRepositoryInterface::class);
$this->repository->setUser($user);
$this->validateUserGroup($request);
$this->repository->setUserGroup($this->userGroup);
$this->repository->setUser($this->user);
return $next($request);
}
@@ -64,68 +71,95 @@ class AccountController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/charts/getChartAccountOverview
*
* @throws FireflyException
*/
public function overview(DateRequest $request): JsonResponse
public function overview(ChartRequest $request): JsonResponse
{
// parameters for chart:
$dates = $request->getAll();
$queryParameters = $request->getParameters();
$accounts = $this->getAccountList($queryParameters);
/** @var Carbon $start */
$start = $dates['start'];
/** @var Carbon $end */
$end = $dates['end'];
// user's preferences
$defaultSet = $this->repository->getAccountsByType([AccountTypeEnum::ASSET->value])->pluck('id')->toArray();
/** @var Preference $frontpage */
$frontpage = app('preferences')->get('frontpageAccounts', $defaultSet);
if (!(is_array($frontpage->data) && count($frontpage->data) > 0)) {
$frontpage->data = $defaultSet;
$frontpage->save();
}
// get accounts:
$accounts = $this->repository->getAccountsById($frontpage->data);
$chartData = [];
// move date to end of day
$queryParameters['start']->startOfDay();
$queryParameters['end']->endOfDay();
// Log::debug(sprintf('dashboard(), convert to primary: %s', var_export($this->convertToPrimary, true)));
// loop each account, and collect info:
/** @var Account $account */
foreach ($accounts as $account) {
$currency = $this->repository->getAccountCurrency($account) ?? $this->defaultCurrency;
$field = $this->convertToNative && $currency->id !== $this->defaultCurrency->id ? 'native_balance' : 'balance';
$currentSet = [
'label' => $account->name,
'currency_id' => (string) $currency->id,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
'start_date' => $start->toAtomString(),
'end_date' => $end->toAtomString(),
'type' => 'line', // line, area or bar
'yAxisID' => 0, // 0, 1, 2
'entries' => [],
];
// TODO this code is also present in the V2 chart account controller so this method is due to be deprecated.
$currentStart = clone $start;
$range = app('steam')->finalAccountBalanceInRange($account, $start, clone $end, $this->convertToNative);
$previous = array_values($range)[0][$field];
while ($currentStart <= $end) {
$format = $currentStart->format('Y-m-d');
$label = $currentStart->toAtomString();
$balance = array_key_exists($format, $range) ? $range[$format][$field] : $previous;
$previous = $balance;
$currentStart->addDay();
$currentSet['entries'][$label] = $balance;
}
$chartData[] = $currentSet;
Log::debug(sprintf('Account #%d ("%s")', $account->id, $account->name));
$this->renderAccountData($queryParameters, $account);
}
return response()->json($chartData);
return response()->json($this->clean($this->chartData));
}
/**
* @throws FireflyException
*/
private function renderAccountData(array $params, Account $account): void
{
Log::debug(sprintf('Now in %s(array, #%d)', __METHOD__, $account->id));
$currency = $this->repository->getAccountCurrency($account);
$currentStart = clone $params['start'];
$range = Steam::finalAccountBalanceInRange($account, $params['start'], clone $params['end'], $this->convertToPrimary);
$previous = array_values($range)[0]['balance'];
$pcPrevious = null;
if (!$currency instanceof TransactionCurrency) {
$currency = $this->primaryCurrency;
}
$currentSet = [
'label' => $account->name,
// the currency that belongs to the account.
'currency_id' => (string)$currency->id,
'currency_name' => $currency->name,
'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol,
'currency_decimal_places' => $currency->decimal_places,
// the primary currency
'primary_currency_id' => (string)$this->primaryCurrency->id,
// the default currency of the user (could be the same!)
'date' => $params['start']->toAtomString(),
'start_date' => $params['start']->toAtomString(),
'end_date' => $params['end']->toAtomString(),
'type' => 'line',
'yAxisID' => 0,
'period' => '1D',
'entries' => [],
'pc_entries' => [],
];
if ($this->convertToPrimary) {
$currentSet['pc_entries'] = [];
$currentSet['primary_currency_id'] = (string)$this->primaryCurrency->id;
$currentSet['primary_currency_code'] = $this->primaryCurrency->code;
$currentSet['primary_currency_symbol'] = $this->primaryCurrency->symbol;
$currentSet['primary_currency_decimal_places'] = $this->primaryCurrency->decimal_places;
$pcPrevious = array_values($range)[0]['pc_balance'];
}
while ($currentStart <= $params['end']) {
$format = $currentStart->format('Y-m-d');
$label = $currentStart->toAtomString();
$balance = array_key_exists($format, $range) ? $range[$format]['balance'] : $previous;
$previous = $balance;
$currentSet['entries'][$label] = $balance;
// do the same for the primary currency balance, if relevant:
$pcBalance = null;
if ($this->convertToPrimary) {
$pcBalance = array_key_exists($format, $range) ? $range[$format]['pc_balance'] : $pcPrevious;
$pcPrevious = $pcBalance;
$currentSet['pc_entries'][$label] = $pcBalance;
}
$currentStart->addDay();
}
$this->chartData[] = $currentSet;
}
}
@@ -1,8 +1,9 @@
<?php
/*
* BalanceController.php
* Copyright (c) 2023 james@firefly-iii.org
* Copyright (c) 2025 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
@@ -22,16 +23,15 @@
declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Chart;
namespace FireflyIII\Api\V1\Controllers\Chart;
use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Api\V2\Request\Chart\ChartRequest;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Chart\ChartRequest;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
use FireflyIII\Support\Chart\ChartData;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Http\Api\AccountBalanceGrouped;
use FireflyIII\Support\Http\Api\CleansChartData;
use FireflyIII\Support\Http\Api\CollectsAccountsFromFilter;
@@ -44,8 +44,9 @@ class BalanceController extends Controller
{
use CleansChartData;
use CollectsAccountsFromFilter;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
private ChartData $chartData;
private array $chartData = [];
private GroupCollectorInterface $collector;
private AccountRepositoryInterface $repository;
@@ -56,13 +57,13 @@ class BalanceController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class);
$this->collector = app(GroupCollectorInterface::class);
$userGroup = $this->validateUserGroup($request);
$this->repository->setUserGroup($userGroup);
$this->collector->setUserGroup($userGroup);
$this->chartData = new ChartData();
// $this->default = app('amount')->getDefaultCurrency();
$this->repository->setUserGroup($this->userGroup);
$this->collector->setUserGroup($this->userGroup);
$this->repository->setUser($this->user);
$this->collector->setUser($this->user);
return $next($request);
}
@@ -85,10 +86,6 @@ class BalanceController extends Controller
$queryParameters = $request->getParameters();
$accounts = $this->getAccountList($queryParameters);
// prepare for currency conversion and data collection:
/** @var TransactionCurrency $default */
$default = app('amount')->getDefaultCurrency();
// get journals for entire period:
$this->collector->setRange($queryParameters['start'], $queryParameters['end'])
@@ -100,7 +97,7 @@ class BalanceController extends Controller
$object = new AccountBalanceGrouped();
$object->setPreferredRange($queryParameters['period']);
$object->setDefault($default);
$object->setPrimary($this->primaryCurrency);
$object->setAccounts($accounts);
$object->setJournals($journals);
$object->setStart($queryParameters['start']);
@@ -108,9 +105,10 @@ class BalanceController extends Controller
$object->groupByCurrencyAndPeriod();
$data = $object->convertToChartData();
foreach ($data as $entry) {
$this->chartData->add($entry);
$this->chartData[] = $entry;
}
$this->chartData = $this->clean($this->chartData);
return response()->json($this->chartData->render());
return response()->json($this->chartData);
}
}
@@ -0,0 +1,296 @@
<?php
/*
* BudgetController.php
* Copyright (c) 2023 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\SameDateRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\CleansChartData;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
/**
* Class BudgetController
*/
class BudgetController extends Controller
{
use CleansChartData;
use ValidatesUserGroupTrait;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
protected OperationsRepositoryInterface $opsRepository;
private BudgetLimitRepositoryInterface $blRepository;
private array $currencies = [];
private BudgetRepositoryInterface $repository;
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(BudgetRepositoryInterface::class);
$this->blRepository = app(BudgetLimitRepositoryInterface::class);
$this->opsRepository = app(OperationsRepositoryInterface::class);
$this->repository->setUserGroup($this->userGroup);
$this->opsRepository->setUserGroup($this->userGroup);
$this->blRepository->setUserGroup($this->userGroup);
$this->repository->setUser($this->user);
$this->opsRepository->setUser($this->user);
$this->blRepository->setUser($this->user);
return $next($request);
}
);
}
/**
* TODO see autocomplete/accountcontroller
*
* @throws FireflyException
*/
public function overview(SameDateRequest $request): JsonResponse
{
$params = $request->getAll();
/** @var Carbon $start */
$start = $params['start'];
/** @var Carbon $end */
$end = $params['end'];
// code from FrontpageChartGenerator, but not in separate class
$budgets = $this->repository->getActiveBudgets();
$data = [];
/** @var Budget $budget */
foreach ($budgets as $budget) {
// could return multiple arrays, so merge.
$data = array_merge($data, $this->processBudget($budget, $start, $end));
}
return response()->json($this->clean($data));
}
/**
* @throws FireflyException
*/
private function processBudget(Budget $budget, Carbon $start, Carbon $end): array
{
// get all limits:
$limits = $this->blRepository->getBudgetLimits($budget, $start, $end);
$rows = [];
$spent = $this->opsRepository->listExpenses($start, $end, null, new Collection()->push($budget));
$expenses = $this->processExpenses($budget->id, $spent, $start, $end);
$converter = new ExchangeRateConverter();
$currencies = [$this->primaryCurrency->id => $this->primaryCurrency];
/**
* @var int $currencyId
* @var array $row
*/
foreach ($expenses as $currencyId => $row) {
// budgeted, left and overspent are now 0.
$limit = $this->filterLimit($currencyId, $limits);
// primary currency entries
$row['pc_budgeted'] = '0';
$row['pc_spent'] = '0';
$row['pc_left'] = '0';
$row['pc_overspent'] = '0';
if ($limit instanceof BudgetLimit) {
$row['budgeted'] = $limit->amount;
$row['left'] = bcsub((string) $row['budgeted'], bcmul((string) $row['spent'], '-1'));
$row['overspent'] = bcmul($row['left'], '-1');
$row['left'] = 1 === bccomp($row['left'], '0') ? $row['left'] : '0';
$row['overspent'] = 1 === bccomp($row['overspent'], '0') ? $row['overspent'] : '0';
}
// convert data if necessary.
if (true === $this->convertToPrimary && $currencyId !== $this->primaryCurrency->id) {
$currencies[$currencyId] ??= Amount::getTransactionCurrencyById($currencyId);
$row['pc_budgeted'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['budgeted']);
$row['pc_spent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['spent']);
$row['pc_left'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['left']);
$row['pc_overspent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['overspent']);
}
if (true === $this->convertToPrimary && $currencyId === $this->primaryCurrency->id) {
$row['pc_budgeted'] = $row['budgeted'];
$row['pc_spent'] = $row['spent'];
$row['pc_left'] = $row['left'];
$row['pc_overspent'] = $row['overspent'];
}
$rows[] = $row;
}
// is always an array
$return = [];
foreach ($rows as $row) {
$current = [
'label' => $budget->name,
'currency_id' => (string)$row['currency_id'],
'currency_name' => $row['currency_name'],
'currency_code' => $row['currency_code'],
'currency_decimal_places' => $row['currency_decimal_places'],
'primary_currency_id' => (string)$this->primaryCurrency->id,
'primary_currency_name' => $this->primaryCurrency->name,
'primary_currency_code' => $this->primaryCurrency->code,
'primary_currency_symbol' => $this->primaryCurrency->symbol,
'primary_currency_decimal_places' => $this->primaryCurrency->decimal_places,
'period' => null,
'date' => $row['start'],
'start_date' => $row['start'],
'end_date' => $row['end'],
'yAxisID' => 0,
'type' => 'bar',
'entries' => [
'budgeted' => $row['budgeted'],
'spent' => $row['spent'],
'left' => $row['left'],
'overspent' => $row['overspent'],
],
'pc_entries' => [
'budgeted' => $row['pc_budgeted'],
'spent' => $row['pc_spent'],
'left' => $row['pc_left'],
'overspent' => $row['pc_overspent'],
],
];
$return[] = $current;
}
return $return;
}
// /**
// * When no budget limits are present, the expenses of the whole period are collected and grouped.
// * This is grouped per currency. Because there is no limit set, "left to spend" and "overspent" are empty.
// *
// * @throws FireflyException
// */
// private function noBudgetLimits(Budget $budget, Carbon $start, Carbon $end): array
// {
// $spent = $this->opsRepository->listExpenses($start, $end, null, new Collection()->push($budget));
//
// return $this->processExpenses($budget->id, $spent, $start, $end);
// }
/**
* Shared between the "noBudgetLimits" function and "processLimit". Will take a single set of expenses and return
* its info.
*
* @throws FireflyException
*/
private function processExpenses(int $budgetId, array $spent, Carbon $start, Carbon $end): array
{
$return = [];
/**
* This array contains the expenses in this budget. Grouped per currency.
* The grouping is on the main currency only.
*
* @var int $currencyId
* @var array $block
*/
foreach ($spent as $currencyId => $block) {
$this->currencies[$currencyId] ??= Amount::getTransactionCurrencyById($currencyId);
$return[$currencyId] ??= [
'currency_id' => (string)$currencyId,
'currency_code' => $block['currency_code'],
'currency_name' => $block['currency_name'],
'currency_symbol' => $block['currency_symbol'],
'currency_decimal_places' => (int)$block['currency_decimal_places'],
'start' => $start->toAtomString(),
'end' => $end->toAtomString(),
'budgeted' => '0',
'spent' => '0',
'left' => '0',
'overspent' => '0',
];
$currentBudgetArray = $block['budgets'][$budgetId];
// var_dump($return);
/** @var array $journal */
foreach ($currentBudgetArray['transaction_journals'] as $journal) {
/** @var numeric-string $amount */
$amount = (string)$journal['amount'];
$return[$currencyId]['spent'] = bcadd($return[$currencyId]['spent'], $amount);
}
}
return $return;
}
private function filterLimit(int $currencyId, Collection $limits): ?BudgetLimit
{
$amount = '0';
$limit = null;
$converter = new ExchangeRateConverter();
/** @var BudgetLimit $current */
foreach ($limits as $current) {
if (true === $this->convertToPrimary) {
if ($current->transaction_currency_id === $this->primaryCurrency->id) {
// simply add it.
$amount = bcadd($amount, (string)$current->amount);
Log::debug(sprintf('Set amount in limit to %s', $amount));
}
if ($current->transaction_currency_id !== $this->primaryCurrency->id) {
// convert and then add it.
$converted = $converter->convert($current->transactionCurrency, $this->primaryCurrency, $current->start_date, $current->amount);
$amount = bcadd($amount, $converted);
Log::debug(sprintf('Budgeted in limit #%d: %s %s, converted to %s %s', $current->id, $current->transactionCurrency->code, $current->amount, $this->primaryCurrency->code, $converted));
Log::debug(sprintf('Set amount in limit to %s', $amount));
}
}
if ($current->transaction_currency_id === $currencyId) {
$limit = $current;
}
}
if (null !== $limit && true === $this->convertToPrimary) {
// convert and add all amounts.
$limit->amount = app('steam')->positive($amount);
Log::debug(sprintf('Final amount in limit with converted amount %s', $limit->amount));
}
return $limit;
}
}
@@ -0,0 +1,188 @@
<?php
/*
* CategoryController.php
* Copyright (c) 2023 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\SameDateRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Api\CleansChartData;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
/**
* Class BudgetController
*/
class CategoryController extends Controller
{
use CleansChartData;
use ValidatesUserGroupTrait;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
private AccountRepositoryInterface $accountRepos;
private CurrencyRepositoryInterface $currencyRepos;
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->accountRepos = app(AccountRepositoryInterface::class);
$this->currencyRepos = app(CurrencyRepositoryInterface::class);
$this->accountRepos->setUserGroup($this->userGroup);
$this->currencyRepos->setUserGroup($this->userGroup);
$this->accountRepos->setUser($this->user);
$this->currencyRepos->setUser($this->user);
return $next($request);
}
);
}
/**
* TODO may be worth to move to a handler but the data is simple enough.
* TODO see autoComplete/account controller
*
* @throws FireflyException
*
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function overview(SameDateRequest $request): JsonResponse
{
/** @var Carbon $start */
$start = $this->parameters->get('start');
/** @var Carbon $end */
$end = $this->parameters->get('end');
$accounts = $this->accountRepos->getAccountsByType([AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::ASSET->value]);
$currencies = [];
$return = [];
$converter = new ExchangeRateConverter();
// get journals for entire period:
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
$collector->setRange($start, $end)->withAccountInformation();
$collector->setXorAccounts($accounts)->withCategoryInformation();
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value, TransactionTypeEnum::DEPOSIT->value]);
$journals = $collector->getExtractedJournals();
/** @var array $journal */
foreach ($journals as $journal) {
// find journal:
$journalCurrencyId = (int)$journal['currency_id'];
$type = $journal['transaction_type_type'];
$currency = $currencies[$journalCurrencyId] ?? $this->currencyRepos->find($journalCurrencyId);
$currencies[$journalCurrencyId] = $currency;
$currencyId = $currency->id;
$currencyName = $currency->name;
$currencyCode = $currency->code;
$currencySymbol = $currency->symbol;
$currencyDecimalPlaces = $currency->decimal_places;
$amount = Steam::positive((string)$journal['amount']);
$pcAmount = null;
// overrule if necessary:
if ($this->convertToPrimary && $journalCurrencyId === $this->primaryCurrency->id) {
$pcAmount = $amount;
}
if ($this->convertToPrimary && $journalCurrencyId !== $this->primaryCurrency->id) {
$currencyId = $this->primaryCurrency->id;
$currencyName = $this->primaryCurrency->name;
$currencyCode = $this->primaryCurrency->code;
$currencySymbol = $this->primaryCurrency->symbol;
$currencyDecimalPlaces = $this->primaryCurrency->decimal_places;
$pcAmount = $converter->convert($currency, $this->primaryCurrency, $journal['date'], $amount);
Log::debug(sprintf('Converted %s %s to %s %s', $journal['currency_code'], $amount, $this->primaryCurrency->code, $pcAmount));
}
$categoryName = $journal['category_name'] ?? (string)trans('firefly.no_category');
$key = sprintf('%s-%s', $categoryName, $currencyCode);
// create arrays
$return[$key] ??= [
'label' => $categoryName,
'currency_id' => (string)$currencyId,
'currency_name' => $currencyName,
'currency_code' => $currencyCode,
'currency_symbol' => $currencySymbol,
'currency_decimal_places' => $currencyDecimalPlaces,
'primary_currency_id' => (string)$this->primaryCurrency->id,
'primary_currency_name' => $this->primaryCurrency->name,
'primary_currency_code' => $this->primaryCurrency->code,
'primary_currency_symbol' => $this->primaryCurrency->symbol,
'primary_currency_decimal_places' => $this->primaryCurrency->decimal_places,
'period' => null,
'start_date' => $start->toAtomString(),
'end_date' => $end->toAtomString(),
'yAxisID' => 0,
'type' => 'bar',
'entries' => [
'spent' => '0',
'earned' => '0',
],
'pc_entries' => [
'spent' => '0',
'earned' => '0',
],
];
// add monies
// expenses to spent
if (TransactionTypeEnum::WITHDRAWAL->value === $type) {
$return[$key]['entries']['spent'] = bcadd($return[$key]['entries']['spent'], $amount);
if (null !== $pcAmount) {
$return[$key]['pc_entries']['spent'] = bcadd($return[$key]['pc_entries']['spent'], $pcAmount);
}
continue;
}
// positive amount = earned
if (TransactionTypeEnum::DEPOSIT->value === $type) {
$return[$key]['entries']['earned'] = bcadd($return[$key]['entries']['earned'], $amount);
if (null !== $pcAmount) {
$return[$key]['pc_entries']['earned'] = bcadd($return[$key]['pc_entries']['earned'], $pcAmount);
}
}
}
$return = array_values($return);
// order by amount
usort($return, static fn (array $a, array $b) => ((float)$a['entries']['spent'] + (float)$a['entries']['earned']) < ((float)$b['entries']['spent'] + (float)$b['entries']['earned']) ? 1 : -1);
return response()->json($this->clean($return));
}
}
+86 -74
View File
@@ -25,18 +25,25 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers;
use Carbon\Carbon;
use Carbon\Exceptions\InvalidDateException;
use Carbon\Exceptions\InvalidFormatException;
use FireflyIII\Models\Preference;
use FireflyIII\Exceptions\BadHttpHeaderException;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Transformers\AbstractTransformer;
use FireflyIII\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Log;
use League\Fractal\Manager;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
use League\Fractal\Resource\Item;
use League\Fractal\Serializer\JsonApiSerializer;
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
use Symfony\Component\HttpFoundation\ParameterBag;
@@ -44,22 +51,23 @@ use Symfony\Component\HttpFoundation\ParameterBag;
/**
* Class Controller.
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @SuppressWarnings(PHPMD.NumberOfChildren)
* @SuppressWarnings("PHPMD.CouplingBetweenObjects")
* @SuppressWarnings("PHPMD.NumberOfChildren")
*/
abstract class Controller extends BaseController
{
use AuthorizesRequests;
use DispatchesJobs;
use ValidatesRequests;
use ValidatesUserGroupTrait;
protected const string CONTENT_TYPE = 'application/vnd.api+json';
protected const string CONTENT_TYPE = 'application/vnd.api+json';
protected const string JSON_CONTENT_TYPE = 'application/json';
protected array $accepts = ['application/json', 'application/vnd.api+json'];
/** @var array<int, string> */
protected array $allowedSort;
protected ParameterBag $parameters;
protected bool $convertToNative = false;
protected TransactionCurrency $defaultCurrency;
protected bool $convertToPrimary = false;
protected TransactionCurrency $primaryCurrency;
protected ParameterBag $parameters;
/**
* Controller constructor.
@@ -67,18 +75,23 @@ abstract class Controller extends BaseController
public function __construct()
{
// get global parameters
$this->allowedSort = config('firefly.allowed_sort_parameters');
$this->middleware(
function ($request, $next) {
$this->parameters = $this->getParameters();
if (auth()->check()) {
$language = Steam::getLanguage();
$this->convertToNative = Amount::convertToNative();
$this->defaultCurrency = Amount::getDefaultCurrency();
$language = Steam::getLanguage();
$this->convertToPrimary = Amount::convertToPrimary();
$this->primaryCurrency = Amount::getPrimaryCurrency();
app()->setLocale($language);
}
// filter down what this endpoint accepts.
if (!$request->accepts($this->accepts)) {
throw new BadHttpHeaderException(sprintf('Sorry, Accept header "%s" is not something this endpoint can provide.', $request->header('Accept')));
}
return $next($request);
}
);
@@ -90,13 +103,8 @@ abstract class Controller extends BaseController
private function getParameters(): ParameterBag
{
$bag = new ParameterBag();
$page = (int) request()->get('page');
if ($page < 1) {
$page = 1;
}
if ($page > 2 ** 16) {
$page = 2 ** 16;
}
$page = (int)request()->get('page');
$page = min(max(1, $page), 2 ** 16);
$bag->set('page', $page);
// some date fields:
@@ -107,27 +115,22 @@ abstract class Controller extends BaseController
try {
$date = request()->query->get($field);
} catch (BadRequestException $e) {
app('log')->error(sprintf('Request field "%s" contains a non-scalar value. Value set to NULL.', $field));
app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString());
$value = null;
Log::error(sprintf('Request field "%s" contains a non-scalar value. Value set to NULL.', $field));
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
}
$obj = null;
if (null !== $date) {
try {
$obj = Carbon::parse((string) $date);
} catch (InvalidDateException|InvalidFormatException $e) {
$obj = Carbon::parse((string)$date, config('app.timezone'));
} catch (InvalidFormatException $e) {
// don't care
app('log')->warning(
sprintf(
'Ignored invalid date "%s" in API controller parameter check: %s',
substr((string) $date, 0, 20),
$e->getMessage()
)
);
Log::warning(sprintf('Ignored invalid date "%s" in API controller parameter check: %s', substr((string)$date, 0, 20), $e->getMessage()));
}
}
$bag->set($field, $obj);
if ($obj instanceof Carbon) {
$bag->set($field, $obj);
}
}
// integer fields:
@@ -136,13 +139,15 @@ abstract class Controller extends BaseController
try {
$value = request()->query->get($integer);
} catch (BadRequestException $e) {
app('log')->error(sprintf('Request field "%s" contains a non-scalar value. Value set to NULL.', $integer));
app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString());
Log::error(sprintf('Request field "%s" contains a non-scalar value. Value set to NULL.', $integer));
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
$value = null;
}
if (null !== $value) {
$bag->set($integer, (int) $value);
$value = (int)$value;
$value = min(max(1, $value), 2 ** 16);
$bag->set($integer, $value);
}
if (null === $value
&& 'limit' === $integer // @phpstan-ignore-line
@@ -151,46 +156,14 @@ abstract class Controller extends BaseController
/** @var User $user */
$user = auth()->user();
/** @var Preference $pageSize */
$pageSize = (int) app('preferences')->getForUser($user, 'listPageSize', 50)->data;
$pageSize = (int)app('preferences')->getForUser($user, 'listPageSize', 50)->data;
$bag->set($integer, $pageSize);
}
}
// sort fields:
return $this->getSortParameters($bag);
}
private function getSortParameters(ParameterBag $bag): ParameterBag
{
$sortParameters = [];
try {
$param = (string) request()->query->get('sort');
} catch (BadRequestException $e) {
app('log')->error('Request field "sort" contains a non-scalar value. Value set to NULL.');
app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString());
$param = '';
}
if ('' === $param) {
return $bag;
}
$parts = explode(',', $param);
foreach ($parts as $part) {
$part = trim($part);
$direction = 'asc';
if ('-' === $part[0]) {
$part = substr($part, 1);
$direction = 'desc';
}
if (in_array($part, $this->allowedSort, true)) {
$sortParameters[] = [$part, $direction];
}
}
$bag->set('sort', $sortParameters);
return $bag;
// return $this->getSortParameters($bag);
}
/**
@@ -224,4 +197,43 @@ abstract class Controller extends BaseController
return $manager;
}
final protected function jsonApiList(string $key, LengthAwarePaginator $paginator, AbstractTransformer $transformer): array
{
$manager = new Manager();
$baseUrl = sprintf('%s/api/v1/', request()->getSchemeAndHttpHost());
// TODO add stuff to path?
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$objects = $paginator->getCollection();
// the transformer, at this point, needs to collect information that ALL items in the collection
// require, like meta-data and stuff like that, and save it for later.
// $objects = $transformer->collectMetaData($objects);
$paginator->setCollection($objects);
$resource = new FractalCollection($objects, $transformer, $key);
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return $manager->createData($resource)->toArray();
}
/**
* Returns a JSON API object and returns it.
*
* @param array<int, mixed>|Model $object
*/
final protected function jsonApiObject(string $key, array|Model $object, AbstractTransformer $transformer): array
{
// create some objects:
$manager = new Manager();
$baseUrl = sprintf('%s/api/v1', request()->getSchemeAndHttpHost());
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$resource = new Item($object, $transformer, $key);
return $manager->createData($resource)->toArray();
}
}
@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Data\Bulk;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\Bulk\TransactionRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Services\Internal\Destroy\AccountDestroyService;
use Illuminate\Http\JsonResponse;
@@ -44,23 +45,23 @@ class TransactionController extends Controller
{
private AccountRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::MANAGE_TRANSACTIONS];
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class);
$this->repository->setUser(auth()->user());
$this->repository->setUserGroup($this->userGroup);
$this->repository->setUser($this->user);
return $next($request);
}
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/bulkUpdateTransactions
*/
public function update(TransactionRequest $request): JsonResponse
{
$query = $request->getAll();
@@ -28,6 +28,7 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\DestroyRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\TransactionJournal;
@@ -55,16 +56,24 @@ class DestroyController extends Controller
{
private bool $unused;
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/destroyData
*
* @throws FireflyException
*/
protected array $acceptedRoles = [UserRoleEnum::FULL];
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
return $next($request);
}
);
}
public function destroy(DestroyRequest $request): JsonResponse
{
$objects = $request->getObjects();
$this->unused = $request->boolean('unused', false);
$this->unused = $request->boolean('unused');
$allExceptAssets = [AccountTypeEnum::BENEFICIARY->value, AccountTypeEnum::CASH->value, AccountTypeEnum::CREDITCARD->value, AccountTypeEnum::DEFAULT->value, AccountTypeEnum::EXPENSE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::LIABILITY_CREDIT->value, AccountTypeEnum::RECONCILIATION->value, AccountTypeEnum::REVENUE->value];
$all = [AccountTypeEnum::ASSET->value, AccountTypeEnum::BENEFICIARY->value, AccountTypeEnum::CASH->value, AccountTypeEnum::CREDITCARD->value, AccountTypeEnum::DEBT->value, AccountTypeEnum::DEFAULT->value, AccountTypeEnum::EXPENSE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::LIABILITY_CREDIT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::RECONCILIATION->value];
@@ -176,14 +185,14 @@ class DestroyController extends Controller
foreach ($collection as $account) {
$count = $account->transactions()->count();
if (true === $this->unused && 0 === $count) {
app('log')->info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name));
Log::info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name));
Log::channel('audit')->info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name));
$service->destroy($account, null);
continue;
}
if (false === $this->unused) {
app('log')->info(sprintf('Deleting account #%d "%s"', $account->id, $account->name));
Log::info(sprintf('Deleting account #%d "%s"', $account->id, $account->name));
Log::channel('audit')->warning(sprintf('Deleted account #%d "%s"', $account->id, $account->name));
$service->destroy($account, null);
}
@@ -26,9 +26,13 @@ namespace FireflyIII\Api\V1\Controllers\Data\Export;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\Export\ExportRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Export\ExportDataGenerator;
use Illuminate\Http\Response as LaravelResponse;
use Safe\Exceptions\DatetimeException;
use function Safe\date;
/**
* Class ExportController
@@ -36,6 +40,7 @@ use Illuminate\Http\Response as LaravelResponse;
class ExportController extends Controller
{
private ExportDataGenerator $exporter;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
/**
* ExportController constructor.
@@ -45,8 +50,10 @@ class ExportController extends Controller
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
$this->exporter = app(ExportDataGenerator::class);
$this->exporter->setUser(auth()->user());
$this->exporter->setUserGroup($this->userGroup);
$this->exporter->setUser($this->user);
return $next($request);
}
@@ -54,12 +61,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportAccounts
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function accounts(ExportRequest $request): LaravelResponse
{
@@ -70,6 +75,7 @@ class ExportController extends Controller
/**
* @throws FireflyException
* @throws DatetimeException
*/
private function returnExport(string $key): LaravelResponse
{
@@ -88,19 +94,17 @@ class ExportController extends Controller
->header('Expires', '0')
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
->header('Pragma', 'public')
->header('Content-Length', (string) strlen($data[$key]))
->header('Content-Length', (string) strlen((string) $data[$key]))
;
return $response;
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportBills
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function bills(ExportRequest $request): LaravelResponse
{
@@ -110,12 +114,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportBudgets
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function budgets(ExportRequest $request): LaravelResponse
{
@@ -125,12 +127,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportCategories
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function categories(ExportRequest $request): LaravelResponse
{
@@ -140,12 +140,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportPiggies
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function piggyBanks(ExportRequest $request): LaravelResponse
{
@@ -155,12 +153,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportRecurring
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function recurring(ExportRequest $request): LaravelResponse
{
@@ -170,12 +166,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportRules
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function rules(ExportRequest $request): LaravelResponse
{
@@ -185,12 +179,10 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportTags
*
* @throws DatetimeException
* @throws FireflyException
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function tags(ExportRequest $request): LaravelResponse
{
@@ -200,9 +192,7 @@ class ExportController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/exportTransactions
*
* @throws DatetimeException
* @throws FireflyException
*/
public function transactions(ExportRequest $request): LaravelResponse
+15 -10
View File
@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Data;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Account;
use FireflyIII\Models\Bill;
use FireflyIII\Models\Budget;
@@ -44,10 +45,22 @@ use Illuminate\Http\JsonResponse;
*/
class PurgeController extends Controller
{
protected array $acceptedRoles = [UserRoleEnum::FULL];
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->validateUserGroup($request);
return $next($request);
}
);
}
/**
* TODO cleanup and use repositories.
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/data/purgeData
*/
public function purge(): JsonResponse
{
@@ -66,14 +79,6 @@ class PurgeController extends Controller
$repository = app(PiggyBankRepositoryInterface::class);
$repository->setUser($user);
$repository->purgeAll();
// $set = PiggyBank::leftJoin('accounts', 'accounts.id', 'piggy_banks.account_id')
// ->where('accounts.user_id', $user->id)->onlyTrashed()->get(['piggy_banks.*'])
// ;
//
// /** @var PiggyBank $piggy */
// foreach ($set as $piggy) {
// $piggy->forceDelete();
// }
// rule group
RuleGroup::whereUserId($user->id)->onlyTrashed()->forceDelete();
@@ -64,10 +64,6 @@ class AccountController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseAsset
*/
public function asset(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -91,10 +87,6 @@ class AccountController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseExpense
*/
public function expense(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -58,20 +58,17 @@ class BillController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseBill
*
* Expenses per bill, possibly filtered by bill and account.
*/
public function bill(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$bills = $request->getBills();
$start = $request->getStart();
$end = $request->getEnd();
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$response = [];
$accounts = $request->getAssetAccounts();
$bills = $request->getBills();
$start = $request->getStart();
$end = $request->getEnd();
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
$response = [];
// get all bills:
if (0 === $bills->count()) {
@@ -79,25 +76,25 @@ class BillController extends Controller
}
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
$collector->setBills($bills);
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
$billId = (int) $journal['bill_id'];
$currencyId = (int) $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = 'amount';
// use the native amount if the user wants to convert to native currency
if ($convertToNative && $currencyId !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
$field = 'native_amount';
// use the primary amount if the user wants to convert to primary currency
if ($convertToPrimary && $currencyId !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
$field = 'pc_amount';
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
Log::debug(sprintf('Journal #%d in bill #%d will use %s (%s %s)', $journal['transaction_group_id'], $billId, $field, $currencyCode, $journal[$field] ?? '0'));
@@ -122,40 +119,37 @@ class BillController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseNoBill
*
* Expenses for no bill filtered by account.
*/
public function noBill(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$response = [];
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
$response = [];
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
$collector->withoutBill();
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
$currencyId = (int) $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = 'amount';
// use the native amount if the user wants to convert to native currency
if ($convertToNative && $currencyId !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
$field = 'native_amount';
// use the primary amount if the user wants to convert to primary currency
if ($convertToPrimary && $currencyId !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
$field = 'pc_amount';
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
Log::debug(sprintf('Journal #%d will use %s (%s %s)', $journal['transaction_group_id'], $field, $currencyCode, $journal[$field] ?? '0'));
@@ -63,10 +63,6 @@ class BudgetController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseBudget
*/
public function budget(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -80,7 +76,7 @@ class BudgetController extends Controller
/** @var Budget $budget */
foreach ($budgets as $budget) {
$expenses = $this->opsRepository->sumExpenses($start, $end, $assetAccounts, new Collection([$budget]));
$expenses = $this->opsRepository->sumExpenses($start, $end, $assetAccounts, new Collection()->push($budget));
/** @var array $expense */
foreach ($expenses as $expense) {
@@ -98,10 +94,6 @@ class BudgetController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseNoBudget
*/
public function noBudget(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -63,10 +63,6 @@ class CategoryController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferCategory
*/
public function category(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -80,7 +76,7 @@ class CategoryController extends Controller
/** @var Category $category */
foreach ($categories as $category) {
$expenses = $this->opsRepository->sumExpenses($start, $end, $assetAccounts, new Collection([$category]));
$expenses = $this->opsRepository->sumExpenses($start, $end, $assetAccounts, new Collection()->push($category));
/** @var array $expense */
foreach ($expenses as $expense) {
@@ -98,10 +94,6 @@ class CategoryController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferNoCategory
*/
public function noCategory(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -37,41 +37,37 @@ use Illuminate\Support\Facades\Log;
*/
class PeriodController extends Controller
{
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseTotal
*/
public function total(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type)
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// same code as many other sumExpense methods. I think this needs some kind of generic method.
$amount = '0';
$currencyId = (int) $journal['currency_id'];
$currencyCode = $journal['currency_code'];
if ($convertToNative) {
if ($convertToPrimary) {
$amount = Amount::getAmountFromJournal($journal);
if ($default->id !== (int) $journal['currency_id'] && $default->id !== (int) $journal['foreign_currency_id']) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($primary->id !== (int) $journal['currency_id'] && $primary->id !== (int) $journal['foreign_currency_id']) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
if ($default->id !== (int) $journal['currency_id'] && $default->id === (int) $journal['foreign_currency_id']) {
if ($primary->id !== (int) $journal['currency_id'] && $primary->id === (int) $journal['foreign_currency_id']) {
$currencyId = $journal['foreign_currency_id'];
$currencyCode = $journal['foreign_currency_code'];
}
Log::debug(sprintf('[a] Add amount %s %s', $currencyCode, $amount));
}
if (!$convertToNative) {
if (!$convertToPrimary) {
// ignore the amount in foreign currency.
Log::debug(sprintf('[b] Add amount %s %s', $currencyCode, $journal['amount']));
$amount = $journal['amount'];
@@ -57,45 +57,42 @@ class TagController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseNoTag
*
* Expenses for no tag filtered by account.
*/
public function noTag(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::WITHDRAWAL->value])->setRange($start, $end)->setSourceAccounts($accounts);
$collector->withoutTags();
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// same code as many other sumExpense methods. I think this needs some kind of generic method.
$amount = '0';
$currencyId = (int) $journal['currency_id'];
$currencyCode = $journal['currency_code'];
if ($convertToNative) {
if ($convertToPrimary) {
$amount = Amount::getAmountFromJournal($journal);
if ($default->id !== (int) $journal['currency_id'] && $default->id !== (int) $journal['foreign_currency_id']) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($primary->id !== (int) $journal['currency_id'] && $primary->id !== (int) $journal['foreign_currency_id']) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
if ($default->id !== (int) $journal['currency_id'] && $default->id === (int) $journal['foreign_currency_id']) {
if ($primary->id !== (int) $journal['currency_id'] && $primary->id === (int) $journal['foreign_currency_id']) {
$currencyId = $journal['foreign_currency_id'];
$currencyCode = $journal['foreign_currency_code'];
}
Log::debug(sprintf('[a] Add amount %s %s', $currencyCode, $amount));
}
if (!$convertToNative) {
if (!$convertToPrimary) {
// ignore the amount in foreign currency.
Log::debug(sprintf('[b] Add amount %s %s', $currencyCode, $journal['amount']));
$amount = $journal['amount'];
@@ -115,9 +112,6 @@ class TagController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightExpenseTag
*
* Expenses per tag, possibly filtered by tag and account.
*/
public function tag(GenericRequest $request): JsonResponse
@@ -160,7 +154,7 @@ class TagController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $journal['currency_code'],
];
$response[$key]['difference'] = bcadd($response[$key]['difference'], $journal['amount']);
$response[$key]['difference'] = bcadd((string) $response[$key]['difference'], (string) $journal['amount']);
$response[$key]['difference_float'] = (float) $response[$key]['difference']; // float but on purpose.
}
@@ -172,7 +166,7 @@ class TagController extends Controller
'currency_id' => (string) $foreignCurrencyId,
'currency_code' => $journal['foreign_currency_code'],
];
$response[$foreignKey]['difference'] = bcadd($response[$foreignKey]['difference'], $journal['foreign_amount']);
$response[$foreignKey]['difference'] = bcadd((string) $response[$foreignKey]['difference'], (string) $journal['foreign_amount']);
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // float but on purpose.
}
}
@@ -64,10 +64,6 @@ class AccountController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeAsset
*/
public function asset(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -92,10 +88,6 @@ class AccountController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeRevenue
*/
public function revenue(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -63,10 +63,6 @@ class CategoryController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeCategory
*/
public function category(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -80,7 +76,7 @@ class CategoryController extends Controller
/** @var Category $category */
foreach ($categories as $category) {
$expenses = $this->opsRepository->sumIncome($start, $end, $assetAccounts, new Collection([$category]));
$expenses = $this->opsRepository->sumIncome($start, $end, $assetAccounts, new Collection()->push($category));
/** @var array $expense */
foreach ($expenses as $expense) {
@@ -98,10 +94,6 @@ class CategoryController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeNoCategory
*/
public function noCategory(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -29,6 +29,7 @@ use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use Illuminate\Http\JsonResponse;
/**
@@ -36,36 +37,32 @@ use Illuminate\Http\JsonResponse;
*/
class PeriodController extends Controller
{
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeTotal
*/
public function total(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type)
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::DEPOSIT->value])->setRange($start, $end)->setDestinationAccounts($accounts);
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// currency
$currencyId = $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = $convertToNative && $currencyId !== $default->id ? 'native_amount' : 'amount';
$field = $convertToPrimary && $currencyId !== $primary->id ? 'pc_amount' : 'amount';
// perhaps use default currency instead?
if ($convertToNative && $journal['currency_id'] !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($convertToPrimary && $journal['currency_id'] !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
@@ -75,7 +72,7 @@ class PeriodController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $currencyCode,
];
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal[$field]));
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field]));
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // float but on purpose.
}
@@ -30,6 +30,7 @@ use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use Illuminate\Http\JsonResponse;
/**
@@ -57,40 +58,37 @@ class TagController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeTag
*
* Expenses for no tag filtered by account.
*/
public function noTag(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::DEPOSIT->value])->setRange($start, $end)->setDestinationAccounts($accounts);
$collector->withoutTags();
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// currency
$currencyId = $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = $convertToNative && $currencyId !== $default->id ? 'native_amount' : 'amount';
$field = $convertToPrimary && $currencyId !== $primary->id ? 'pc_amount' : 'amount';
// perhaps use default currency instead?
if ($convertToNative && $journal['currency_id'] !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($convertToPrimary && $journal['currency_id'] !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
@@ -100,7 +98,7 @@ class TagController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $currencyCode,
];
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal[$field]));
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field]));
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
}
@@ -109,9 +107,6 @@ class TagController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightIncomeNoTag
*
* Expenses per tag, possibly filtered by tag and account.
*/
public function tag(GenericRequest $request): JsonResponse
@@ -154,7 +149,7 @@ class TagController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $journal['currency_code'],
];
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
$response[$key]['difference'] = bcadd((string) $response[$key]['difference'], Steam::positive($journal['amount']));
$response[$key]['difference_float'] = (float) $response[$key]['difference'];
}
@@ -166,10 +161,7 @@ class TagController extends Controller
'currency_id' => (string) $foreignCurrencyId,
'currency_code' => $journal['foreign_currency_code'],
];
$response[$foreignKey]['difference'] = bcadd(
$response[$foreignKey]['difference'],
app('steam')->positive($journal['foreign_amount'])
);
$response[$foreignKey]['difference'] = bcadd((string) $response[$foreignKey]['difference'], Steam::positive($journal['foreign_amount']));
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference'];
}
}
@@ -56,10 +56,6 @@ class AccountController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransfers
*/
public function asset(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -63,10 +63,6 @@ class CategoryController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferCategory
*/
public function category(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -80,7 +76,7 @@ class CategoryController extends Controller
/** @var Category $category */
foreach ($categories as $category) {
$expenses = $this->opsRepository->sumTransfers($start, $end, $assetAccounts, new Collection([$category]));
$expenses = $this->opsRepository->sumTransfers($start, $end, $assetAccounts, new Collection()->push($category));
/** @var array $expense */
foreach ($expenses as $expense) {
@@ -98,10 +94,6 @@ class CategoryController extends Controller
return response()->json($result);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferNoCategory
*/
public function noCategory(GenericRequest $request): JsonResponse
{
$start = $request->getStart();
@@ -26,9 +26,10 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Transfer;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\TransactionType;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use Illuminate\Http\JsonResponse;
/**
@@ -36,36 +37,32 @@ use Illuminate\Http\JsonResponse;
*/
class PeriodController extends Controller
{
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferTotal
*/
public function total(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type)
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionType::TRANSFER])->setRange($start, $end)->setDestinationAccounts($accounts);
$genericSet = $collector->getExtractedJournals();
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::TRANSFER->value])->setRange($start, $end)->setDestinationAccounts($accounts);
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// currency
$currencyId = $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = $convertToNative && $currencyId !== $default->id ? 'native_amount' : 'amount';
$field = $convertToPrimary && $currencyId !== $primary->id ? 'pc_amount' : 'amount';
// perhaps use default currency instead?
if ($convertToNative && $journal['currency_id'] !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($convertToPrimary && $journal['currency_id'] !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
@@ -75,7 +72,7 @@ class PeriodController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $currencyCode,
];
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal[$field]));
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field]));
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
}
@@ -26,10 +26,11 @@ namespace FireflyIII\Api\V1\Controllers\Insight\Transfer;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Insight\GenericRequest;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam;
use Illuminate\Http\JsonResponse;
/**
@@ -56,40 +57,36 @@ class TagController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferNoTag
*/
public function noTag(GenericRequest $request): JsonResponse
{
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToNative = Amount::convertToNative();
$default = Amount::getDefaultCurrency();
$accounts = $request->getAssetAccounts();
$start = $request->getStart();
$end = $request->getEnd();
$response = [];
$convertToPrimary = Amount::convertToPrimary();
$primary = Amount::getPrimaryCurrency();
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionType::TRANSFER])->setRange($start, $end)->setDestinationAccounts($accounts);
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionTypeEnum::TRANSFER->value])->setRange($start, $end)->setDestinationAccounts($accounts);
$collector->withoutTags();
$genericSet = $collector->getExtractedJournals();
$genericSet = $collector->getExtractedJournals();
foreach ($genericSet as $journal) {
// currency
$currencyId = $journal['currency_id'];
$currencyCode = $journal['currency_code'];
$field = $convertToNative && $currencyId !== $default->id ? 'native_amount' : 'amount';
$field = $convertToPrimary && $currencyId !== $primary->id ? 'pc_amount' : 'amount';
// perhaps use default currency instead?
if ($convertToNative && $journal['currency_id'] !== $default->id) {
$currencyId = $default->id;
$currencyCode = $default->code;
if ($convertToPrimary && $journal['currency_id'] !== $primary->id) {
$currencyId = $primary->id;
$currencyCode = $primary->code;
}
// use foreign amount when the foreign currency IS the default currency.
if ($convertToNative && $journal['currency_id'] !== $default->id && $default->id === $journal['foreign_currency_id']) {
if ($convertToPrimary && $journal['currency_id'] !== $primary->id && $primary->id === $journal['foreign_currency_id']) {
$field = 'foreign_amount';
}
@@ -99,7 +96,7 @@ class TagController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $currencyCode,
];
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], app('steam')->positive($journal[$field]));
$response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field]));
$response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference'];
}
@@ -108,9 +105,6 @@ class TagController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/insight/insightTransferTag
*
* Transfers per tag, possibly filtered by tag and account.
*/
public function tag(GenericRequest $request): JsonResponse
@@ -128,7 +122,7 @@ class TagController extends Controller
// collect all expenses in this period (regardless of type) by the given bills and accounts.
$collector = app(GroupCollectorInterface::class);
$collector->setTypes([TransactionType::TRANSFER])->setRange($start, $end)->setDestinationAccounts($accounts);
$collector->setTypes([TransactionTypeEnum::TRANSFER->value])->setRange($start, $end)->setDestinationAccounts($accounts);
$collector->setTags($tags);
$genericSet = $collector->getExtractedJournals();
@@ -153,7 +147,7 @@ class TagController extends Controller
'currency_id' => (string) $currencyId,
'currency_code' => $journal['currency_code'],
];
$response[$key]['difference'] = bcadd($response[$key]['difference'], app('steam')->positive($journal['amount']));
$response[$key]['difference'] = bcadd((string) $response[$key]['difference'], Steam::positive($journal['amount']));
$response[$key]['difference_float'] = (float) $response[$key]['difference'];
}
@@ -166,8 +160,8 @@ class TagController extends Controller
'currency_code' => $journal['foreign_currency_code'],
];
$response[$foreignKey]['difference'] = bcadd(
$response[$foreignKey]['difference'],
app('steam')->positive($journal['foreign_amount'])
(string) $response[$foreignKey]['difference'],
Steam::positive($journal['foreign_amount'])
);
$response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // intentional float
}
@@ -55,9 +55,6 @@ class DestroyController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/accounts/deleteAccount
*
* Remove the specified resource from storage.
*/
public function destroy(Account $account): JsonResponse
@@ -25,11 +25,12 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Account;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEnrichment;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\AttachmentTransformer;
use FireflyIII\Transformers\PiggyBankTransformer;
use FireflyIII\Transformers\TransactionGroupTransformer;
@@ -68,12 +69,6 @@ class ListController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/accounts/listAttachmentByAccount
*
* @throws FireflyException
*/
public function attachments(Account $account): JsonResponse
{
$manager = $this->getManager();
@@ -97,12 +92,6 @@ class ListController extends Controller
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/accounts/listPiggyBankByAccount
*
* @throws FireflyException
*/
public function piggyBanks(Account $account): JsonResponse
{
// create some objects:
@@ -116,6 +105,13 @@ class ListController extends Controller
$count = $collection->count();
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBanks = $enrichment->enrich($piggyBanks);
// make paginator:
$paginator = new LengthAwarePaginator($piggyBanks, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.accounts.piggy-banks', [$account->id]).$this->buildParams());
@@ -124,35 +120,30 @@ class ListController extends Controller
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy_banks');
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy-banks');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/accounts/listTransactionByAccount
*
* Show all transaction groups related to the account.
*
* @throws FireflyException
*/
public function transactions(Request $request, Account $account): JsonResponse
{
$pageSize = $this->parameters->get('limit');
$type = $request->get('type') ?? 'default';
$pageSize = $this->parameters->get('limit');
$type = $request->get('type') ?? 'default';
$this->parameters->set('type', $type);
$types = $this->mapTransactionTypes($this->parameters->get('type'));
$manager = $this->getManager();
$types = $this->mapTransactionTypes($this->parameters->get('type'));
$manager = $this->getManager();
/** @var User $admin */
$admin = auth()->user();
$admin = auth()->user();
// use new group collector:
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
$collector->setUser($admin)->setAccounts(new Collection([$account]))
$collector = app(GroupCollectorInterface::class);
$collector->setUser($admin)->setAccounts(new Collection()->push($account))
->withAPIInformation()->setLimit($pageSize)->setPage($this->parameters->get('page'))->setTypes($types)
;
@@ -163,15 +154,19 @@ class ListController extends Controller
$collector->setEnd($this->parameters->get('end'));
}
$paginator = $collector->getPaginatedGroups();
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.accounts.transactions', [$account->id]).$this->buildParams());
$groups = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
$transformer = app(TransactionGroupTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($groups, $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);
@@ -25,13 +25,14 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Account;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Api\V1\Requests\Models\Account\ShowRequest;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Http\Api\AccountFilter;
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
use FireflyIII\Transformers\AccountTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
@@ -65,34 +66,43 @@ class ShowController extends Controller
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/accounts/listAccount
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(Request $request): JsonResponse
public function index(ShowRequest $request): JsonResponse
{
$manager = $this->getManager();
$type = $request->get('type') ?? 'all';
$this->parameters->set('type', $type);
$params = $request->getParameters();
$this->parameters->set('type', $params['type']);
// types to get, page size:
$types = $this->mapAccountTypes($this->parameters->get('type'));
$pageSize = $this->parameters->get('limit');
$types = $this->mapAccountTypes($params['type']);
// get list of accounts. Count it and split it.
$this->repository->resetAccountOrder();
$collection = $this->repository->getAccountsByType($types, $this->parameters->get('sort') ?? []);
$collection = $this->repository->getAccountsByType($types, $params['sort']);
$count = $collection->count();
// continue sort:
// TODO if the user sorts on DB dependent field there must be no slice before enrichment, only after.
// TODO still need to figure out how to do this easily.
$accounts = $collection->slice(($this->parameters->get('page') - 1) * $params['limit'], $params['limit']);
$accounts = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// #11007 go to the end of the previous day.
$this->parameters->set('start', $this->parameters->get('start')->subSecond());
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AccountEnrichment();
$enrichment->setSort($params['sort']);
$enrichment->setDate($this->parameters->get('date'));
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$enrichment->setUser($admin);
$accounts = $enrichment->enrich($accounts);
// make paginator:
$paginator = new LengthAwarePaginator($accounts, $count, $pageSize, $this->parameters->get('page'));
$paginator = new LengthAwarePaginator($accounts, $count, $params['limit'], $this->parameters->get('page'));
$paginator->setPath(route('api.v1.accounts.index').$this->buildParams());
/** @var AccountTransformer $transformer */
@@ -111,13 +121,27 @@ class ShowController extends Controller
*
* Show single instance.
*/
public function show(Account $account): JsonResponse
public function show(ShowRequest $request, Account $account): JsonResponse
{
// get list of accounts. Count it and split it.
$this->repository->resetAccountOrder();
$account->refresh();
$manager = $this->getManager();
// #11007 go to the end of the previous day.
$this->parameters->set('start', $this->parameters->get('start')->subSecond());
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AccountEnrichment();
$enrichment->setDate($this->parameters->get('date'));
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$enrichment->setUser($admin);
$account = $enrichment->enrichSingle($account);
/** @var AccountTransformer $transformer */
$transformer = app(AccountTransformer::class);
$transformer->setParameters($this->parameters);
@@ -27,7 +27,9 @@ namespace FireflyIII\Api\V1\Controllers\Models\Account;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Account\StoreRequest;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
use FireflyIII\Transformers\AccountTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -69,6 +71,14 @@ class StoreController extends Controller
$account = $this->repository->store($data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AccountEnrichment();
$enrichment->setDate(null);
$enrichment->setUser($admin);
$account = $enrichment->enrichSingle($account);
/** @var AccountTransformer $transformer */
$transformer = app(AccountTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,8 +28,11 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Account\UpdateRequest;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
use FireflyIII\Transformers\AccountTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use League\Fractal\Resource\Item;
/**
@@ -65,7 +68,7 @@ class UpdateController extends Controller
*/
public function update(UpdateRequest $request, Account $account): JsonResponse
{
app('log')->debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s', __METHOD__));
$data = $request->getUpdateData();
$data['type'] = config('firefly.shortNamesByFullName.'.$account->accountType->type);
$account = $this->repository->update($account, $data);
@@ -73,6 +76,14 @@ class UpdateController extends Controller
$account->refresh();
app('preferences')->mark();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AccountEnrichment();
$enrichment->setDate(null);
$enrichment->setUser($admin);
$account = $enrichment->enrichSingle($account);
/** @var AccountTransformer $transformer */
$transformer = app(AccountTransformer::class);
$transformer->setParameters($this->parameters);
@@ -119,8 +119,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/attachments/listAttachment
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -80,7 +80,7 @@ class StoreController extends Controller
throw new NotFoundHttpException();
}
app('log')->debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s', __METHOD__));
$data = $request->getAll();
$attachment = $this->repository->store($data);
$manager = $this->getManager();
@@ -109,13 +109,13 @@ class StoreController extends Controller
$helper = app(AttachmentHelperInterface::class);
$body = $request->getContent();
if ('' === $body) {
app('log')->error('Body of attachment is empty.');
Log::error('Body of attachment is empty.');
return response()->json([], 422);
}
$result = $helper->saveAttachmentFromApi($attachment, $body);
if (false === $result) {
app('log')->error('Could not save attachment from API.');
Log::error('Could not save attachment from API.');
return response()->json([], 422);
}
@@ -25,9 +25,9 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\AvailableBudget;
use FireflyIII\Repositories\Budget\AvailableBudgetRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\AvailableBudgetEnrichment;
use FireflyIII\Transformers\AvailableBudgetTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -66,8 +66,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/available_budgets/getAvailableBudget
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -75,7 +73,6 @@ class ShowController extends Controller
// types to get, page size:
$pageSize = $this->parameters->get('limit');
$start = $this->parameters->get('start');
$end = $this->parameters->get('end');
@@ -84,6 +81,13 @@ class ShowController extends Controller
$count = $collection->count();
$availableBudgets = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AvailableBudgetEnrichment();
$enrichment->setUser($admin);
$availableBudgets = $enrichment->enrich($availableBudgets);
// make paginator:
$paginator = new LengthAwarePaginator($availableBudgets, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.available-budgets.index').$this->buildParams());
@@ -106,13 +110,25 @@ class ShowController extends Controller
*/
public function show(AvailableBudget $availableBudget): JsonResponse
{
$manager = $this->getManager();
$manager = $this->getManager();
// $start = $this->parameters->get('start');
// $end = $this->parameters->get('end');
/** @var AvailableBudgetTransformer $transformer */
$transformer = app(AvailableBudgetTransformer::class);
$transformer = app(AvailableBudgetTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new Item($availableBudget, $transformer, 'available_budgets');
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AvailableBudgetEnrichment();
$enrichment->setUser($admin);
// $enrichment->setStart($start);
// $enrichment->setEnd($end);
$availableBudget = $enrichment->enrichSingle($availableBudget);
$resource = new Item($availableBudget, $transformer, 'available_budgets');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
}
@@ -25,11 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Bill;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\AttachmentTransformer;
use FireflyIII\Transformers\RuleTransformer;
use FireflyIII\Transformers\TransactionGroupTransformer;
@@ -70,8 +70,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/bills/listAttachmentByBill
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function attachments(Bill $bill): JsonResponse
{
@@ -101,8 +99,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/bills/listRuleByBill
*
* List all of them.
*
* @throws FireflyException
*/
public function rules(Bill $bill): JsonResponse
{
@@ -134,8 +130,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/bills/listTransactionByBill
*
* Show all transactions.
*
* @throws FireflyException
*/
public function transactions(Request $request, Bill $bill): JsonResponse
{
@@ -176,7 +170,11 @@ class ListController extends Controller
// get paginator.
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.bills.transactions', [$bill->id]).$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -25,10 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Bill;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\SubscriptionEnrichment;
use FireflyIII\Transformers\BillTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -63,8 +64,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/bills/listBill
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -76,6 +75,15 @@ class ShowController extends Controller
$bills = $bills->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page'));
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new SubscriptionEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$bills = $enrichment->enrich($bills);
/** @var BillTransformer $transformer */
$transformer = app(BillTransformer::class);
$transformer->setParameters($this->parameters);
@@ -96,6 +104,15 @@ class ShowController extends Controller
{
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new SubscriptionEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$bill = $enrichment->enrichSingle($bill);
/** @var BillTransformer $transformer */
$transformer = app(BillTransformer::class);
$transformer->setParameters($this->parameters);
@@ -29,7 +29,9 @@ use FireflyIII\Api\V1\Requests\Models\Bill\StoreRequest;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\SubscriptionEnrichment;
use FireflyIII\Transformers\BillTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -72,6 +74,15 @@ class StoreController extends Controller
$bill = $this->repository->store($data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new SubscriptionEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$bill = $enrichment->enrichSingle($bill);
/** @var BillTransformer $transformer */
$transformer = app(BillTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Bill\UpdateRequest;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\SubscriptionEnrichment;
use FireflyIII\Transformers\BillTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -67,6 +69,15 @@ class UpdateController extends Controller
$bill = $this->repository->update($bill, $data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new SubscriptionEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$bill = $enrichment->enrichSingle($bill);
/** @var BillTransformer $transformer */
$transformer = app(BillTransformer::class);
$transformer->setParameters($this->parameters);
@@ -25,12 +25,14 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Budget;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Budget;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\BudgetLimitEnrichment;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\AttachmentTransformer;
use FireflyIII\Transformers\BudgetLimitTransformer;
use FireflyIII\Transformers\TransactionGroupTransformer;
@@ -70,8 +72,6 @@ class ListController extends Controller
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listAttachmentByBudget
*
* @throws FireflyException
*/
public function attachments(Budget $budget): JsonResponse
{
@@ -101,8 +101,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listBudgetLimitByBudget
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function budgetLimits(Budget $budget): JsonResponse
{
@@ -115,6 +113,14 @@ class ListController extends Controller
$paginator = new LengthAwarePaginator($budgetLimits, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.budgets.budget-limits', [$budget->id]).$this->buildParams());
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimits = $enrichment->enrich($budgetLimits);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -129,8 +135,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listTransactionByBudget
*
* Show all transactions.
*
* @throws FireflyException
*/
public function transactions(Request $request, Budget $budget): JsonResponse
{
@@ -171,7 +175,11 @@ class ListController extends Controller
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.budgets.transactions', [$budget->id]).$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -187,8 +195,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listTransactionWithoutBudget
*
* Show all transactions.
*
* @throws FireflyException
*/
public function withoutBudget(Request $request): JsonResponse
{
@@ -208,6 +214,8 @@ class ListController extends Controller
$collector = app(GroupCollectorInterface::class);
$collector
->setUser($admin)
// withdrawals only
->setTypes([TransactionTypeEnum::WITHDRAWAL->value])
// filter on budget.
->withoutBudget()
// all info needed for the API:
@@ -229,7 +237,11 @@ class ListController extends Controller
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.budgets.without-budget').$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -25,11 +25,12 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Budget;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Budget;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetEnrichment;
use FireflyIII\Transformers\BudgetTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -67,8 +68,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listBudget
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -82,6 +81,15 @@ class ShowController extends Controller
$count = $collection->count();
$budgets = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$budgets = $enrichment->enrich($budgets);
// make paginator:
$paginator = new LengthAwarePaginator($budgets, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.budgets.index').$this->buildParams());
@@ -103,6 +111,15 @@ class ShowController extends Controller
{
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$budget = $enrichment->enrichSingle($budget);
/** @var BudgetTransformer $transformer */
$transformer = app(BudgetTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Budget\StoreRequest;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetEnrichment;
use FireflyIII\Transformers\BudgetTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -65,10 +67,19 @@ class StoreController extends Controller
*/
public function store(StoreRequest $request): JsonResponse
{
$budget = $this->repository->store($request->getAll());
$data = $request->getAll();
$data['fire_webhooks'] ??= true;
$budget = $this->repository->store($data);
$budget->refresh();
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetEnrichment();
$enrichment->setUser($admin);
$budget = $enrichment->enrichSingle($budget);
/** @var BudgetTransformer $transformer */
$transformer = app(BudgetTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Budget\UpdateRequest;
use FireflyIII\Models\Budget;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetEnrichment;
use FireflyIII\Transformers\BudgetTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -55,18 +57,20 @@ class UpdateController extends Controller
);
}
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/updateBudget
*
* Update a budget.
*/
public function update(UpdateRequest $request, Budget $budget): JsonResponse
{
$data = $request->getAll();
$data['fire_webhooks'] ??= true;
$budget = $this->repository->update($budget, $data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetEnrichment();
$enrichment->setUser($admin);
$budget = $enrichment->enrichSingle($budget);
/** @var BudgetTransformer $transformer */
$transformer = app(BudgetTransformer::class);
$transformer->setParameters($this->parameters);
@@ -25,11 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\TransactionGroupTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -48,8 +48,6 @@ class ListController extends Controller
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/budgets/listTransactionByBudgetLimit
* Show all transactions.
*
* @throws FireflyException
*/
public function transactions(Request $request, Budget $budget, BudgetLimit $budgetLimit): JsonResponse
{
@@ -84,7 +82,11 @@ class ListController extends Controller
$collector->setTypes($types);
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.budgets.limits.transactions', [$budget->id, $budgetLimit->id]).$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -31,6 +31,8 @@ use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetEnrichment;
use FireflyIII\Support\JsonApi\Enrichments\BudgetLimitEnrichment;
use FireflyIII\Transformers\BudgetLimitTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -75,6 +77,18 @@ class ShowController extends Controller
*/
public function index(Budget $budget): JsonResponse
{
/** @var User $admin */
$admin = auth()->user();
// enrich budget:
$enrichment = new BudgetEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
/** @var Budget $budget */
$budget = $enrichment->enrichSingle($budget);
$manager = $this->getManager();
$manager->parseIncludes('budget');
$pageSize = $this->parameters->get('limit');
@@ -84,6 +98,11 @@ class ShowController extends Controller
$paginator = new LengthAwarePaginator($budgetLimits, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.budgets.limits.index', [$budget->id]).$this->buildParams());
// enrich
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimits = $enrichment->enrich($budgetLimits);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -100,7 +119,7 @@ class ShowController extends Controller
*
* Display a listing of the budget limits for this budget.
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
*/
public function indexAll(SameDateRequest $request): JsonResponse
{
@@ -113,6 +132,13 @@ class ShowController extends Controller
$paginator = new LengthAwarePaginator($budgetLimits, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.budget-limits.index').$this->buildParams());
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimits = $enrichment->enrich($budgetLimits);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -137,6 +163,13 @@ class ShowController extends Controller
// continue!
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimit = $enrichment->enrichSingle($budgetLimit);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,6 +28,7 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\BudgetLimit\StoreRequest;
use FireflyIII\Models\Budget;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetLimitEnrichment;
use FireflyIII\Transformers\BudgetLimitTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -69,12 +70,19 @@ class StoreController extends Controller
$data = $request->getAll();
$data['start_date'] = $data['start'];
$data['end_date'] = $data['end'];
$data['notes'] = $data['notes'];
$data['fire_webhooks'] ??= true;
$data['budget_id'] = $budget->id;
$budgetLimit = $this->blRepository->store($data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimit = $enrichment->enrichSingle($budgetLimit);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -30,6 +30,7 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\BudgetLimitEnrichment;
use FireflyIII\Transformers\BudgetLimitTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -76,10 +77,18 @@ class UpdateController extends Controller
throw new FireflyException('20028: The budget limit does not belong to the budget.');
}
$data = $request->getAll();
$data['fire_webhooks'] ??= true;
$data['budget_id'] = $budget->id;
$budgetLimit = $this->blRepository->update($budgetLimit, $data);
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new BudgetLimitEnrichment();
$enrichment->setUser($admin);
$budgetLimit = $enrichment->enrichSingle($budgetLimit);
/** @var BudgetLimitTransformer $transformer */
$transformer = app(BudgetLimitTransformer::class);
$transformer->setParameters($this->parameters);
@@ -25,11 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Category;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\AttachmentTransformer;
use FireflyIII\Transformers\TransactionGroupTransformer;
use FireflyIII\User;
@@ -67,8 +67,6 @@ class ListController extends Controller
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/categories/listAttachmentByCategory
*
* @throws FireflyException
*/
public function attachments(Category $category): JsonResponse
{
@@ -98,8 +96,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/categories/listTransactionByCategory
*
* Show all transactions.
*
* @throws FireflyException
*/
public function transactions(Request $request, Category $category): JsonResponse
{
@@ -139,7 +135,11 @@ class ListController extends Controller
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.categories.transactions', [$category->id]).$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -25,10 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Category;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\CategoryEnrichment;
use FireflyIII\Transformers\CategoryTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -63,8 +64,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/categories/listCategory
*
* Display a listing of the resource.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -78,6 +77,15 @@ class ShowController extends Controller
$count = $collection->count();
$categories = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new CategoryEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$categories = $enrichment->enrich($categories);
// make paginator:
$paginator = new LengthAwarePaginator($categories, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.categories.index').$this->buildParams());
@@ -105,6 +113,15 @@ class ShowController extends Controller
$transformer = app(CategoryTransformer::class);
$transformer->setParameters($this->parameters);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new CategoryEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$category = $enrichment->enrichSingle($category);
$resource = new Item($category, $transformer, 'categories');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Category\StoreRequest;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\CategoryEnrichment;
use FireflyIII\Transformers\CategoryTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -72,6 +74,15 @@ class StoreController extends Controller
$transformer = app(CategoryTransformer::class);
$transformer->setParameters($this->parameters);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new CategoryEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$category = $enrichment->enrichSingle($category);
$resource = new Item($category, $transformer, 'categories');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Category\UpdateRequest;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\CategoryEnrichment;
use FireflyIII\Transformers\CategoryTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -71,6 +73,15 @@ class UpdateController extends Controller
$transformer = app(CategoryTransformer::class);
$transformer->setParameters($this->parameters);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new CategoryEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$category = $enrichment->enrichSingle($category);
$resource = new Item($category, $transformer, 'categories');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -2,7 +2,7 @@
/*
* DestroyController.php
* Copyright (c) 2024 james@firefly-iii.org.
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
@@ -22,22 +22,24 @@
declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Api\V2\Request\Model\ExchangeRate\DestroyRequest;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\DestroyRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\CurrencyExchangeRate;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class DestroyController extends Controller
{
use ValidatesUserGroupTrait;
public const string RESOURCE_KEY = 'exchange-rates';
protected array $acceptedRoles = [UserRoleEnum::OWNER];
private ExchangeRateRepositoryInterface $repository;
public function __construct()
@@ -55,12 +57,24 @@ class DestroyController extends Controller
public function destroy(DestroyRequest $request, TransactionCurrency $from, TransactionCurrency $to): JsonResponse
{
$date = $request->getDate();
$rate = $this->repository->getSpecificRateOnDate($from, $to, $date);
if (null === $rate) {
throw new NotFoundHttpException();
$this->repository->deleteRates($from, $to);
return response()->json([], 204);
}
public function destroySingleById(CurrencyExchangeRate $exchangeRate): JsonResponse
{
$this->repository->deleteRate($exchangeRate);
return response()->json([], 204);
}
public function destroySingleByDate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): JsonResponse
{
$exchangeRate = $this->repository->getSpecificRateOnDate($from, $to, $date);
if ($exchangeRate instanceof CurrencyExchangeRate) {
$this->repository->deleteRate($exchangeRate);
}
$this->repository->deleteRate($rate);
return response()->json([], 204);
}
@@ -1,8 +1,8 @@
<?php
/*
* ShowController.php
* Copyright (c) 2023 james@firefly-iii.org
* IndexController.php
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
@@ -17,16 +17,18 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Transformers\ExchangeRateTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
@@ -37,8 +39,8 @@ class IndexController extends Controller
{
use ValidatesUserGroupTrait;
public const string RESOURCE_KEY = 'exchange-rates';
public const string RESOURCE_KEY = 'currency_exchange_rates';
protected array $acceptedRoles = [UserRoleEnum::OWNER];
private ExchangeRateRepositoryInterface $repository;
public function __construct()
@@ -56,14 +58,11 @@ class IndexController extends Controller
public function index(): JsonResponse
{
$piggies = $this->repository->getAll();
$entries = $this->repository->getAll();
$pageSize = $this->parameters->get('limit');
$count = $piggies->count();
$piggies = $piggies->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$paginator = new LengthAwarePaginator($piggies, $count, $pageSize, $this->parameters->get('page'));
var_dump('here we are');
$count = $entries->count();
$entries = $entries->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$paginator = new LengthAwarePaginator($entries, $count, $pageSize, $this->parameters->get('page'));
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters); // give params to transformer
@@ -2,7 +2,7 @@
/*
* ShowController.php
* Copyright (c) 2023 james@firefly-iii.org
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
@@ -17,20 +17,24 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use FireflyIII\Api\V2\Controllers\Controller;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\CurrencyExchangeRate;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Transformers\V2\ExchangeRateTransformer;
use FireflyIII\Transformers\ExchangeRateTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class ShowController
@@ -40,7 +44,7 @@ class ShowController extends Controller
use ValidatesUserGroupTrait;
public const string RESOURCE_KEY = 'exchange-rates';
protected array $acceptedRoles = [UserRoleEnum::OWNER];
private ExchangeRateRepositoryInterface $repository;
public function __construct()
@@ -73,4 +77,31 @@ class ShowController extends Controller
->header('Content-Type', self::CONTENT_TYPE)
;
}
public function showSingleById(CurrencyExchangeRate $exchangeRate): JsonResponse
{
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters);
return response()
->api($this->jsonApiObject(self::RESOURCE_KEY, $exchangeRate, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
public function showSingleByDate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): JsonResponse
{
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters);
$exchangeRate = $this->repository->getSpecificRateOnDate($from, $to, $date);
if (!$exchangeRate instanceof CurrencyExchangeRate) {
throw new NotFoundHttpException();
}
return response()
->api($this->jsonApiObject(self::RESOURCE_KEY, $exchangeRate, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
}
@@ -0,0 +1,152 @@
<?php
/*
* StoreController.php
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreByCurrenciesRequest;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreByDateRequest;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\CurrencyExchangeRate;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Transformers\ExchangeRateTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
class StoreController extends Controller
{
use ValidatesUserGroupTrait;
public const string RESOURCE_KEY = 'exchange-rates';
protected array $acceptedRoles = [UserRoleEnum::OWNER];
private ExchangeRateRepositoryInterface $repository;
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request));
return $next($request);
}
);
}
public function storeByCurrencies(StoreByCurrenciesRequest $request, TransactionCurrency $from, TransactionCurrency $to): JsonResponse
{
$data = $request->getAll();
$collection = new Collection();
foreach ($data as $date => $rate) {
$date = Carbon::createFromFormat('Y-m-d', $date);
$existing = $this->repository->getSpecificRateOnDate($from, $to, $date);
if ($existing instanceof CurrencyExchangeRate) {
// update existing rate.
$existing = $this->repository->updateExchangeRate($existing, $rate);
$collection->push($existing);
continue;
}
$new = $this->repository->storeExchangeRate($from, $to, $rate, $date);
$collection->push($new);
}
$count = $collection->count();
$paginator = new LengthAwarePaginator($collection, $count, $count, 1);
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters); // give params to transformer
return response()
->json($this->jsonApiList(self::RESOURCE_KEY, $paginator, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
public function storeByDate(StoreByDateRequest $request, Carbon $date): JsonResponse
{
$data = $request->getAll();
$from = $request->getFromCurrency();
$collection = new Collection();
foreach ($data['rates'] as $key => $rate) {
$to = Amount::getTransactionCurrencyByCode($key);
$existing = $this->repository->getSpecificRateOnDate($from, $to, $date);
if ($existing instanceof CurrencyExchangeRate) {
// update existing rate.
$existing = $this->repository->updateExchangeRate($existing, $rate);
$collection->push($existing);
continue;
}
$new = $this->repository->storeExchangeRate($from, $to, $rate, $date);
$collection->push($new);
}
$count = $collection->count();
$paginator = new LengthAwarePaginator($collection, $count, $count, 1);
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters); // give params to transformer
return response()
->json($this->jsonApiList(self::RESOURCE_KEY, $paginator, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
public function store(StoreRequest $request): JsonResponse
{
$date = $request->getDate();
$rate = $request->getRate();
$from = $request->getFromCurrency();
$to = $request->getToCurrency();
// already has rate?
$object = $this->repository->getSpecificRateOnDate($from, $to, $date);
if ($object instanceof CurrencyExchangeRate) {
// just update it, no matter.
$rate = $this->repository->updateExchangeRate($object, $rate, $date);
}
if (!$object instanceof CurrencyExchangeRate) {
// store new
$rate = $this->repository->storeExchangeRate($from, $to, $rate, $date);
}
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters);
return response()
->api($this->jsonApiObject(self::RESOURCE_KEY, $rate, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
}
@@ -1,8 +1,8 @@
<?php
/*
* DestroyController.php
* Copyright (c) 2024 james@firefly-iii.org.
* UpdateController.php
* Copyright (c) 2025 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
@@ -22,22 +22,26 @@
declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Api\V2\Request\Model\ExchangeRate\UpdateRequest;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\UpdateRequest;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\CurrencyExchangeRate;
use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Transformers\V2\ExchangeRateTransformer;
use FireflyIII\Transformers\ExchangeRateTransformer;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class UpdateController extends Controller
{
use ValidatesUserGroupTrait;
public const string RESOURCE_KEY = 'exchange-rates';
public const string RESOURCE_KEY = 'exchange-rates';
protected array $acceptedRoles = [UserRoleEnum::OWNER];
private ExchangeRateRepositoryInterface $repository;
public function __construct()
@@ -53,7 +57,7 @@ class UpdateController extends Controller
);
}
public function update(UpdateRequest $request, CurrencyExchangeRate $exchangeRate): JsonResponse
public function updateById(UpdateRequest $request, CurrencyExchangeRate $exchangeRate): JsonResponse
{
$date = $request->getDate();
$rate = $request->getRate();
@@ -66,4 +70,23 @@ class UpdateController extends Controller
->header('Content-Type', self::CONTENT_TYPE)
;
}
public function updateByDate(UpdateRequest $request, TransactionCurrency $from, TransactionCurrency $to, Carbon $date): JsonResponse
{
$exchangeRate = $this->repository->getSpecificRateOnDate($from, $to, $date);
if (!$exchangeRate instanceof CurrencyExchangeRate) {
throw new NotFoundHttpException();
}
$date = $request->getDate();
$rate = $request->getRate();
$exchangeRate = $this->repository->updateExchangeRate($exchangeRate, $rate, $date);
$transformer = new ExchangeRateTransformer();
$transformer->setParameters($this->parameters);
return response()
->api($this->jsonApiObject(self::RESOURCE_KEY, $exchangeRate, $transformer))
->header('Content-Type', self::CONTENT_TYPE)
;
}
}
@@ -25,9 +25,10 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\ObjectGroup;
use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEnrichment;
use FireflyIII\Support\JsonApi\Enrichments\SubscriptionEnrichment;
use FireflyIII\Transformers\BillTransformer;
use FireflyIII\Transformers\PiggyBankTransformer;
use FireflyIII\User;
@@ -66,8 +67,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/object_groups/listBillByObjectGroup
*
* List all bills in this object group
*
* @throws FireflyException
*/
public function bills(ObjectGroup $objectGroup): JsonResponse
{
@@ -79,6 +78,15 @@ class ListController extends Controller
$count = $collection->count();
$bills = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new SubscriptionEnrichment();
$enrichment->setUser($admin);
$enrichment->setStart($this->parameters->get('start'));
$enrichment->setEnd($this->parameters->get('end'));
$bills = $enrichment->enrich($bills);
// make paginator:
$paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.currencies.bills', [$objectGroup->id]).$this->buildParams());
@@ -98,8 +106,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/object_groups/listPiggyBankByObjectGroup
*
* List all piggies under the object group.
*
* @throws FireflyException
*/
public function piggyBanks(ObjectGroup $objectGroup): JsonResponse
{
@@ -114,6 +120,13 @@ class ListController extends Controller
$count = $collection->count();
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBanks = $enrichment->enrich($piggyBanks);
// make paginator:
$paginator = new LengthAwarePaginator($piggyBanks, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.object-groups.piggy-banks', [$objectGroup->id]).$this->buildParams());
@@ -122,7 +135,7 @@ class ListController extends Controller
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy_banks');
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy-banks');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -25,12 +25,14 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEventEnrichment;
use FireflyIII\Transformers\AccountTransformer;
use FireflyIII\Transformers\AttachmentTransformer;
use FireflyIII\Transformers\PiggyBankEventTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -64,8 +66,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listAccountByPiggyBank
*
* List single resource.
*
* @throws FireflyException
*/
public function accounts(PiggyBank $piggyBank): JsonResponse
{
@@ -75,17 +75,25 @@ class ListController extends Controller
$collection = $piggyBank->accounts;
$count = $collection->count();
$events = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$accounts = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new AccountEnrichment();
$enrichment->setDate($this->parameters->get('date'));
$enrichment->setUser($admin);
$accounts = $enrichment->enrich($accounts);
// make paginator:
$paginator = new LengthAwarePaginator($events, $count, $pageSize, $this->parameters->get('page'));
$paginator = new LengthAwarePaginator($accounts, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.piggy-banks.accounts', [$piggyBank->id]).$this->buildParams());
/** @var AccountTransformer $transformer */
$transformer = app(AccountTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($events, $transformer, 'accounts');
$resource = new FractalCollection($accounts, $transformer, 'accounts');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -94,8 +102,6 @@ class ListController extends Controller
/**
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listAttachmentByPiggyBank
*
* @throws FireflyException
*/
public function attachments(PiggyBank $piggyBank): JsonResponse
{
@@ -125,8 +131,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listEventByPiggyBank
*
* List single resource.
*
* @throws FireflyException
*/
public function piggyBankEvents(PiggyBank $piggyBank): JsonResponse
{
@@ -138,6 +142,13 @@ class ListController extends Controller
$count = $collection->count();
$events = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEventEnrichment();
$enrichment->setUser($admin);
$events = $enrichment->enrich($events);
// make paginator:
$paginator = new LengthAwarePaginator($events, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.piggy-banks.events', [$piggyBank->id]).$this->buildParams());
@@ -146,7 +157,7 @@ class ListController extends Controller
$transformer = app(PiggyBankEventTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($events, $transformer, 'piggy_bank_events');
$resource = new FractalCollection($events, $transformer, sprintf('piggy-banks/%d/events', $piggyBank->id));
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -25,10 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEnrichment;
use FireflyIII\Transformers\PiggyBankTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -63,8 +64,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/piggy_banks/listPiggyBank
*
* List all of them.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -77,6 +76,13 @@ class ShowController extends Controller
$count = $collection->count();
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBanks = $enrichment->enrich($piggyBanks);
// make paginator:
$paginator = new LengthAwarePaginator($piggyBanks, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.piggy-banks.index').$this->buildParams());
@@ -85,7 +91,7 @@ class ShowController extends Controller
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy_banks');
$resource = new FractalCollection($piggyBanks, $transformer, 'piggy-banks');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -101,11 +107,19 @@ class ShowController extends Controller
{
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBank = $enrichment->enrichSingle($piggyBank);
/** @var PiggyBankTransformer $transformer */
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new Item($piggyBank, $transformer, 'piggy_banks');
$resource = new Item($piggyBank, $transformer, 'piggy-banks');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
}
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\PiggyBank\StoreRequest;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEnrichment;
use FireflyIII\Transformers\PiggyBankTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -68,6 +70,13 @@ class StoreController extends Controller
$piggyBank = $this->repository->store($request->getAll());
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBank = $enrichment->enrichSingle($piggyBank);
/** @var PiggyBankTransformer $transformer */
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
@@ -28,7 +28,9 @@ use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\PiggyBank\UpdateRequest;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\PiggyBankEnrichment;
use FireflyIII\Transformers\PiggyBankTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use League\Fractal\Resource\Item;
@@ -66,9 +68,12 @@ class UpdateController extends Controller
$data = $request->getAll();
$piggyBank = $this->repository->update($piggyBank, $data);
if (array_key_exists('current_amount', $data) && '' !== $data['current_amount']) {
$this->repository->setCurrentAmount($piggyBank, $data['current_amount']);
}
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new PiggyBankEnrichment();
$enrichment->setUser($admin);
$piggyBank = $enrichment->enrichSingle($piggyBank);
$manager = $this->getManager();
@@ -76,7 +81,7 @@ class UpdateController extends Controller
$transformer = app(PiggyBankTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new Item($piggyBank, $transformer, 'piggy_banks');
$resource = new Item($piggyBank, $transformer, 'piggy-banks');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
}
@@ -25,11 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Recurrence;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Recurrence;
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Support\JsonApi\Enrichments\TransactionGroupEnrichment;
use FireflyIII\Transformers\TransactionGroupTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
@@ -67,8 +67,6 @@ class ListController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/recurrences/listTransactionByRecurrence
*
* Show transactions for this recurrence.
*
* @throws FireflyException
*/
public function transactions(Request $request, Recurrence $recurrence): JsonResponse
{
@@ -110,7 +108,11 @@ class ListController extends Controller
$paginator = $collector->getPaginatedGroups();
$paginator->setPath(route('api.v1.transactions.index').$this->buildParams());
$transactions = $paginator->getCollection();
// enrich
$enrichment = new TransactionGroupEnrichment();
$enrichment->setUser($admin);
$transactions = $enrichment->enrich($paginator->getCollection());
/** @var TransactionGroupTransformer $transformer */
$transformer = app(TransactionGroupTransformer::class);
@@ -25,10 +25,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Recurrence;
use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Recurrence;
use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
use FireflyIII\Support\JsonApi\Enrichments\RecurringEnrichment;
use FireflyIII\Transformers\RecurrenceTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
@@ -63,8 +64,6 @@ class ShowController extends Controller
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/recurrences/listRecurrence
*
* List all of them.
*
* @throws FireflyException
*/
public function index(): JsonResponse
{
@@ -76,17 +75,24 @@ class ShowController extends Controller
// get list of budgets. Count it and split it.
$collection = $this->repository->get();
$count = $collection->count();
$piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
$recurrences = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new RecurringEnrichment();
$enrichment->setUser($admin);
$recurrences = $enrichment->enrich($recurrences);
// make paginator:
$paginator = new LengthAwarePaginator($piggyBanks, $count, $pageSize, $this->parameters->get('page'));
$paginator = new LengthAwarePaginator($recurrences, $count, $pageSize, $this->parameters->get('page'));
$paginator->setPath(route('api.v1.recurrences.index').$this->buildParams());
/** @var RecurrenceTransformer $transformer */
$transformer = app(RecurrenceTransformer::class);
$transformer->setParameters($this->parameters);
$resource = new FractalCollection($piggyBanks, $transformer, 'recurrences');
$resource = new FractalCollection($recurrences, $transformer, 'recurrences');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE);
@@ -102,6 +108,13 @@ class ShowController extends Controller
{
$manager = $this->getManager();
// enrich
/** @var User $admin */
$admin = auth()->user();
$enrichment = new RecurringEnrichment();
$enrichment->setUser($admin);
$recurrence = $enrichment->enrichSingle($recurrence);
/** @var RecurrenceTransformer $transformer */
$transformer = app(RecurrenceTransformer::class);
$transformer->setParameters($this->parameters);

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