Commit Graph

144 Commits

Author SHA1 Message Date
Buster Neece 2b3d89907a
Make more exceptions based on HttpException. 2024-05-17 11:50:12 -05:00
Buster Neece e2edc8cfd2
Make more exceptions HttpExceptions. 2024-05-17 11:21:53 -05:00
Buster Neece 1c9d9fb5f7
Simplify and clean up exception handling. 2024-01-25 19:28:57 -06:00
Buster Neece f379464937
Podcast controller overhaul:
- Make public-facing podcast API endpoints separate from the CRUD API used by station operators
 - Make Podcast a request attribute (like stations) to simplify several controllers
  - Move API generation for podcasts and episodes into an ApiGenerator class.
2024-01-25 16:54:31 -06:00
Buster Neece 4ccce52705
Use common trait for searching across controllers; add type strictness to several $request->getParam calls on controllers. 2024-01-15 11:24:27 -06:00
Buster Neece 222676e45a
Public static asset cache overhaul:
- Make all public static assets (album art, streamer art, podcast/episode art, etc) serve with no sessions or other user-specific information
 - Make "timestamp" an explicit URL parameter and avoid weird parsing of IDs mixed with timestamps
 - Make static caching a universal middleware for uniform results across controllers
 - Update public art URL paths to reference station short names instead of numeric IDs
2023-12-28 14:07:55 -06:00
Buster Neece cc7183c933
Use nginx to temp cache album art to further reduce load on PHP. 2023-12-26 19:21:47 -06:00
Buster Neece 01dfadb351
Revert weird way of doing dd() in favor of using PHP-FPM on dev. 2023-12-24 20:33:40 -06:00
Buster Neece 0f651a3dc5
Add new "dumpdie" function that uses an exception to write to the PSR response and thus still works with RoadRunner. 2023-12-23 18:10:32 -06:00
Buster Neece 4e669ab20f
Update AppFactory and HttpFactory to support long-running services like Roadrunner. 2023-12-22 16:21:10 -06:00
Buster Neece c90b217e73
Fixes #6804 -- Clean up exceptions:
- Make more exceptions translated
 - Consolidate duplicate exception classes
 - Make public-facing exceptions friendlier (don't show "Exception on File LXX" except in console log)
2023-12-17 10:33:17 -06:00
Buster Neece 9fe90b1d3c
Merge commit '8ea5b1b85e9477cd6f1bbff475839b4e88986be5' 2023-12-04 00:48:40 -06:00
Buster Neece aa0ca7f6da
Add operation IDs to several other API operations. 2023-09-18 02:30:59 -05:00
Buster Neece 4d3217ff91
Make ServerRequest properly throw exceptions. 2023-08-28 05:12:47 -05:00
Buster Neece 0669d003c9
Bulk rename vars to camelCase (except controllers). 2023-06-08 06:32:32 -05:00
Buster Neece a7dd57429e
Implement SettingsAwareTrait. 2023-06-08 03:24:28 -05:00
Buster Neece 7d1b987d32
Alphabetize imports. 2023-06-08 02:32:25 -05:00
Buster Neece 9122250823
Final fix for removing "App\Entity" namespace. 2023-06-07 12:54:54 -05:00
Buster Neece 6314fa7a09
Removing "App\Entity" imports, part 3 2023-06-07 11:11:40 -05:00
Buster Neece cbc6a1f4fc
Add EnvironmentAwareTrait. 2023-06-07 01:25:57 -05:00
Buster Neece bdb23594ad
Tighten allowed IPs to avoid brute-force workarounds. 2023-04-28 01:47:44 -05:00
Buster Neece ede5e88a49
Make FlashLevels an enum. 2023-02-23 23:10:58 -06:00
Buster Neece 3068f7c4e7
Fix errors with Webhooks and error templates. 2022-11-17 09:13:41 -06:00
Buster Neece c69ed7570e
Re-internalize Flysystem extensions. 2022-11-13 02:00:56 -06:00
Buster Neece 9d915aba3c
Remove string-to-Uri-to-string in many places; update to take advantage of Slim Router perf update. 2022-11-06 14:42:50 -06:00
Buster Neece 0b45914584
More Router optimization. 2022-11-04 19:42:18 -05:00
Buster Neece 870afbfecd
Router refactor. 2022-11-04 19:03:47 -05:00
Buster Neece 3be5fa159b
#5763 -- Don't use X-Accel-Redirect for art; fix mime-type detection on local adapter. 2022-10-08 17:19:35 -05:00
Buster "Silver Eagle" Neece 16fca14476
Make protected functions private where appropriate. 2022-08-22 23:29:04 -05:00
Buster "Silver Eagle" Neece c87c1c343b
PHP dependencies update.
Changelogs summary:

 - symfony/string updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/string/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/string/releases/tag/v6.1.3

 - symfony/console updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/console/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/console/releases/tag/v6.1.3

 - doctrine/event-manager updated from 1.1.1 to 1.1.2 patch
   See changes: https://github.com/doctrine/event-manager/compare/1.1.1...1.1.2
   Release notes: https://github.com/doctrine/event-manager/releases/tag/1.1.2

 - doctrine/persistence updated from 3.0.2 to 3.0.3 patch
   See changes: https://github.com/doctrine/persistence/compare/3.0.2...3.0.3
   Release notes: https://github.com/doctrine/persistence/releases/tag/3.0.3

 - doctrine/dbal updated from 3.3.7 to 3.4.0 minor
   See changes: https://github.com/doctrine/dbal/compare/3.3.7...3.4.0
   Release notes: https://github.com/doctrine/dbal/releases/tag/3.4.0

 - doctrine/orm updated from 2.12.3 to 2.13.0 minor
   See changes: https://github.com/doctrine/orm/compare/2.12.3...2.13.0
   Release notes: https://github.com/doctrine/orm/releases/tag/2.13.0

 - symfony/serializer updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/serializer/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/serializer/releases/tag/v6.1.3

 - league/flysystem downgraded from 3.x-dev@5c79557 to 3.2.0 minor
   See changes: https://github.com/thephpleague/flysystem/compare/5c79557...3.2.0
   Release notes: https://github.com/thephpleague/flysystem/releases/tag/3.2.0

 - symfony/css-selector updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/css-selector/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/css-selector/releases/tag/v6.1.3

 - symfony/yaml updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/yaml/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/yaml/releases/tag/v6.1.3

 - symfony/var-dumper updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/var-dumper/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/var-dumper/releases/tag/v6.1.3

 - symfony/finder updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/finder/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/finder/releases/tag/v6.1.3

 - psy/psysh updated from v0.11.5 to v0.11.8 patch
   See changes: https://github.com/bobthecow/psysh/compare/v0.11.5...v0.11.8
   Release notes: https://github.com/bobthecow/psysh/releases/tag/v0.11.8

 - codeception/codeception updated from 5.0.0-RC5 to 5.0.0 patch
   See changes: https://github.com/Codeception/Codeception/compare/5.0.0-RC5...5.0.0
   Release notes: https://github.com/Codeception/Codeception/releases/tag/5.0.0

 - symfony/dom-crawler updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/dom-crawler/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/dom-crawler/releases/tag/v6.1.3

 - symfony/browser-kit updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/browser-kit/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/browser-kit/releases/tag/v6.1.3

 - composer/ca-bundle updated from 1.3.2 to 1.3.3 patch
   See changes: https://github.com/composer/ca-bundle/compare/1.3.2...1.3.3
   Release notes: https://github.com/composer/ca-bundle/releases/tag/1.3.3

 - symfony/filesystem updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/filesystem/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/filesystem/releases/tag/v6.1.3

 - laminas/laminas-code updated from 4.5.2 to 4.6.0 minor
   See changes: https://github.com/laminas/laminas-code/compare/4.5.2...4.6.0
   Release notes: https://github.com/laminas/laminas-code/releases/tag/4.6.0

 - doctrine/migrations updated from 3.5.1 to 3.5.2 patch
   See changes: https://github.com/doctrine/migrations/compare/3.5.1...3.5.2
   Release notes: https://github.com/doctrine/migrations/releases/tag/3.5.2

 - gettext/gettext updated from v5.6.1 to v5.7.0 minor
   See changes: https://github.com/php-gettext/Gettext/compare/v5.6.1...v5.7.0
   Release notes: https://github.com/php-gettext/Gettext/releases/tag/v5.7.0

 - aws/aws-sdk-php updated from 3.228.5 to 3.232.2 minor
   See changes: https://github.com/aws/aws-sdk-php/compare/3.228.5...3.232.2
   Release notes: https://github.com/aws/aws-sdk-php/releases/tag/3.232.2

 - league/flysystem-aws-s3-v3 updated from 3.0.21 to 3.2.0 minor
   See changes: https://github.com/thephpleague/flysystem-aws-s3-v3/compare/3.0.21...3.2.0
   Release notes: https://github.com/thephpleague/flysystem-aws-s3-v3/releases/tag/3.2.0

 - league/flysystem-sftp-v3 updated from 3.0.21 to 3.2.0 minor
   See changes: https://github.com/thephpleague/flysystem-sftp-v3/compare/3.0.21...3.2.0
   Release notes: https://github.com/thephpleague/flysystem-sftp-v3/releases/tag/3.2.0

 - matomo/device-detector updated from 6.0.1 to 6.0.2 patch
   See changes: https://github.com/matomo-org/device-detector/compare/6.0.1...6.0.2
   Release notes: https://github.com/matomo-org/device-detector/releases/tag/6.0.2

 - mezzio/mezzio-session updated from 1.6.0 to 1.9.1 minor
   See changes: https://github.com/mezzio/mezzio-session/compare/1.6.0...1.9.1
   Release notes: https://github.com/mezzio/mezzio-session/releases/tag/1.9.1

 - mezzio/mezzio-session-cache updated from 1.7.0 to 1.8.0 minor
   See changes: https://github.com/mezzio/mezzio-session-cache/compare/1.7.0...1.8.0
   Release notes: https://github.com/mezzio/mezzio-session-cache/releases/tag/1.8.0

 - monolog/monolog updated from 3.1.0 to 3.2.0 minor
   See changes: https://github.com/Seldaek/monolog/compare/3.1.0...3.2.0
   Release notes: https://github.com/Seldaek/monolog/releases/tag/3.2.0

 - symfony/translation updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/translation/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/translation/releases/tag/v6.1.3

 - nesbot/carbon updated from 2.58.0 to 2.61.0 minor
   See changes: https://github.com/briannesbitt/Carbon/compare/2.58.0...2.61.0
   Release notes: https://github.com/briannesbitt/Carbon/releases/tag/2.61.0

 - pagerfanta/core updated from v3.6.1 to v3.6.2 patch
   See changes: https://github.com/Pagerfanta/core/compare/v3.6.1...v3.6.2
   Release notes: https://github.com/Pagerfanta/core/releases/tag/v3.6.2

 - pagerfanta/doctrine-collections-adapter updated from v3.6.1 to v3.6.2 patch
   See changes: https://github.com/Pagerfanta/doctrine-collections-adapter/compare/v3.6.1...v3.6.2
   Release notes: https://github.com/Pagerfanta/doctrine-collections-adapter/releases/tag/v3.6.2

 - pagerfanta/doctrine-orm-adapter updated from v3.6.1 to v3.6.2 patch
   See changes: https://github.com/Pagerfanta/doctrine-orm-adapter/compare/v3.6.1...v3.6.2
   Release notes: https://github.com/Pagerfanta/doctrine-orm-adapter/releases/tag/v3.6.2

 - php-di/php-di updated from v7.x-dev@8d35559 to v7.x-dev@5458204 patch
   See changes: https://github.com/PHP-DI/PHP-DI/compare/8d35559...5458204

 - symfony/process updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/process/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/process/releases/tag/v6.1.3

 - symfony/var-exporter updated from v6.1.1 to v6.1.3 patch
   See changes: https://github.com/symfony/var-exporter/compare/v6.1.1...v6.1.3
   Release notes: https://github.com/symfony/var-exporter/releases/tag/v6.1.3

 - symfony/cache updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/cache/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/cache/releases/tag/v6.1.3

 - php-http/discovery updated from 1.14.2 to 1.14.3 patch
   See changes: https://github.com/php-http/discovery/compare/1.14.2...1.14.3
   Release notes: https://github.com/php-http/discovery/releases/tag/1.14.3

 - symfony/expression-language updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/expression-language/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/expression-language/releases/tag/v6.1.3

 - phpstan/phpstan updated from 1.7.15 to 1.8.2 minor
   See changes: https://github.com/phpstan/phpstan/compare/1.7.15...1.8.2
   Release notes: https://github.com/phpstan/phpstan/releases/tag/1.8.2

 - phpstan/phpstan-doctrine updated from 1.3.9 to 1.3.11 patch
   See changes: https://github.com/phpstan/phpstan-doctrine/compare/1.3.9...1.3.11
   Release notes: https://github.com/phpstan/phpstan-doctrine/releases/tag/1.3.11

 - ramsey/uuid updated from 4.3.1 to 4.4.0 minor
   See changes: https://github.com/ramsey/uuid/compare/4.3.1...4.4.0
   Release notes: https://github.com/ramsey/uuid/releases/tag/4.4.0

 - roave/security-advisories updated from dev-latest@82cfc46 to dev-latest@8b99cfd
   See changes: https://github.com/Roave/SecurityAdvisories/compare/82cfc46...8b99cfd

 - skoerfgen/acmecert updated from 3.2.0 to 3.2.1 patch
   See changes: https://github.com/skoerfgen/ACMECert/compare/3.2.0...3.2.1
   Release notes: https://github.com/skoerfgen/ACMECert/releases/tag/3.2.1

 - slevomat/coding-standard updated from 8.1.0 to 8.3.0 minor
   See changes: https://github.com/slevomat/coding-standard/compare/8.1.0...8.3.0
   Release notes: https://github.com/slevomat/coding-standard/releases/tag/8.3.0

 - thecodingmachine/safe updated from v2.2.1 to v2.2.3 patch
   See changes: https://github.com/thecodingmachine/safe/compare/v2.2.1...v2.2.3
   Release notes: https://github.com/thecodingmachine/safe/releases/tag/v2.2.3

 - symfony/messenger updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/messenger/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/messenger/releases/tag/v6.1.3

 - symfony/beanstalkd-messenger updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/beanstalkd-messenger/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/beanstalkd-messenger/releases/tag/v6.1.3

 - symfony/mime updated from v6.1.1 to v6.1.3 patch
   See changes: https://github.com/symfony/mime/compare/v6.1.1...v6.1.3
   Release notes: https://github.com/symfony/mime/releases/tag/v6.1.3

 - symfony/mailer updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/mailer/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/mailer/releases/tag/v6.1.3

 - symfony/property-info updated from v6.1.2 to v6.1.3 patch
   See changes: https://github.com/symfony/property-info/compare/v6.1.2...v6.1.3
   Release notes: https://github.com/symfony/property-info/releases/tag/v6.1.3

 - symfony/property-access updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/property-access/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/property-access/releases/tag/v6.1.3

 - symfony/lock updated from v6.1.1 to v6.1.3 patch
   See changes: https://github.com/symfony/lock/compare/v6.1.1...v6.1.3
   Release notes: https://github.com/symfony/lock/releases/tag/v6.1.3

 - symfony/rate-limiter updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/rate-limiter/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/rate-limiter/releases/tag/v6.1.3

 - symfony/redis-messenger updated from v6.1.0 to v6.1.3 patch
   See changes: https://github.com/symfony/redis-messenger/compare/v6.1.0...v6.1.3
   Release notes: https://github.com/symfony/redis-messenger/releases/tag/v6.1.3

 - symfony/validator updated from v6.1.1 to v6.1.3 patch
   See changes: https://github.com/symfony/validator/compare/v6.1.1...v6.1.3
   Release notes: https://github.com/symfony/validator/releases/tag/v6.1.3

 - phpoption/phpoption updated from 1.8.1 to 1.9.0 minor
   See changes: https://github.com/schmittjoh/php-option/compare/1.8.1...1.9.0
   Release notes: https://github.com/schmittjoh/php-option/releases/tag/1.9.0

 - graham-campbell/result-type updated from v1.0.4 to v1.1.0 minor
   See changes: https://github.com/GrahamCampbell/Result-Type/compare/v1.0.4...v1.1.0
   Release notes: https://github.com/GrahamCampbell/Result-Type/releases/tag/v1.1.0

 - doctrine/annotations updated from 1.13.2 to 1.13.3 patch
   See changes: https://github.com/doctrine/annotations/compare/1.13.2...1.13.3
   Release notes: https://github.com/doctrine/annotations/releases/tag/1.13.3

 - zircote/swagger-php updated from 4.4.5 to 4.4.7 patch
   See changes: https://github.com/zircote/swagger-php/compare/4.4.5...4.4.7
   Release notes: https://github.com/zircote/swagger-php/releases/tag/4.4.7

 - brick/math updated from 0.9.3 to 0.10.1 minor
   See changes: https://github.com/brick/math/compare/0.9.3...0.10.1
   Release notes: https://github.com/brick/math/releases/tag/0.10.1

 - spomky-labs/otphp updated from v10.0.3 to v11.0.1 major
   See changes: https://github.com/Spomky-Labs/otphp/compare/v10.0.3...v11.0.1
   Release notes: https://github.com/Spomky-Labs/otphp/releases/tag/v11.0.1
2022-08-07 18:03:23 -05:00
Buster "Silver Eagle" Neece e0e3001a78
Class finalization part 1. 2022-07-01 01:06:29 -05:00
Buster "Silver Eagle" Neece ad3d2b2c69
Adapter simplification:
- Remove the stub "None"/"Remote" adapters; return null for disabled adapters
  - Add capability checks to adapter enums
  - Remove the Remote proxy
2022-06-21 20:48:32 -05:00
Buster "Silver Eagle" Neece 42e5b5210b
Expand custom nginx config. 2022-05-28 23:07:56 -05:00
Buster "Silver Eagle" Neece dee9278e16
Use Guzzle's built-in PSR-17 factories. 2022-05-19 23:50:28 -05:00
Buster "Silver Eagle" Neece 41ac7bd810
Fix CSV export to include UTF-8 BOM. 2022-05-19 22:53:53 -05:00
Buster "Silver Eagle" Neece fec35a2432
Switch to php-gettext 5.x:
- Don't use compiled PHP translations, switch back to gettext .mo compiled files
 - Bring npm easygettext back for JS parsing and generation
2022-04-27 12:50:39 -05:00
Buster "Silver Eagle" Neece 27fd5eead1
Add environment file to show detailed errors. 2022-03-25 21:36:49 -05:00
Buster "Silver Eagle" Neece d2ecc4664f
#5028 -- Update LS to use proper system HTTP requests. 2022-01-25 01:59:16 -06:00
Buster "Silver Eagle" Neece 09d79b763f
#4976 -- Alert users when base URL mismatches. 2022-01-14 04:19:55 -06:00
Buster "Silver Eagle" Neece b23f28ab2a
Merge commit 'e6397a893da04c0a28c2306d39233b8a072e54e0' 2022-01-07 02:26:40 -06:00
Buster "Silver Eagle" Neece 1c814fc4c2
Code fixes and deprecated 8.1 fixes. 2021-12-10 21:48:19 -06:00
Buster "Silver Eagle" Neece a8d3193eea
#4754 -- Further harden URI resilience. 2021-11-25 09:47:18 -06:00
Buster "Silver Eagle" Neece 9286747b62
Fix ErrorHandler flash messages, login referrer, etc. 2021-11-15 11:25:05 -06:00
Buster "Silver Eagle" Neece 7425e4a04c
Add class to JSON errors; avoid repeating timeouts for 403s. 2021-11-15 10:00:44 -06:00
Buster "Silver Eagle" Neece f34583897e
Code cleanup. 2021-11-07 14:59:07 -06:00
Buster "Silver Eagle" Neece 88186fe6fb
Fixes #4754 -- Allow malformed URIs in baseUrl in settings. 2021-11-03 14:38:03 -05:00
Buster "Silver Eagle" Neece 7710301819
Further lower the log level of HttpExceptions. 2021-08-27 22:25:54 -05:00
Buster "Silver Eagle" Neece 5cbacd5df6
System-Wide Strict Types (#4405) 2021-07-19 00:53:45 -05:00
Buster "Silver Eagle" Neece 5c6eb85e35
Make per-request items "request-aware" instead of using DI factories.
DI factories can't be cached as efficiently and incur a performance penalty on every request being handled by the system; using "request-aware" classes that clone themselves for each request solves the same problem in a far more performant way, cutting several ms off of every request.
2021-07-06 06:34:22 -05:00
Buster "Silver Eagle" Neece 553c8bdb9d
Apply tighter sanitization to base URLs. 2021-06-10 18:28:55 -05:00