Commit Graph

396 Commits

Author SHA1 Message Date
ges a1c9e471e0 refactor: replace inline Locale.ROOT calls with StringNormalizer in TwitchUserLookupService 2026-04-24 16:19:39 +02:00
ges d8f492db2d test: add AccountServiceTest (6 tests) covering deleteAccount behaviour 2026-04-24 16:16:40 +02:00
ges 7b72cbafc9 refactor: inline private normalize() wrappers; use StringNormalizer.toLowerCaseRoot() directly
Remove boilerplate private normalize(String) wrappers from:
- ChannelDirectoryService
- ChannelSettingsService
- AccountService
- AuditLogService (keepsg normalizeFilter() which adds null-if-blank semantics)

Add StringNormalizer import to AuditLogService; remove now-unused Locale import.
2026-04-24 16:13:27 +02:00
ges 41ba1e242e refactor: add VisualAsset.shallowCopy() to eliminate 9-field manual entity copy in previewTransform 2026-04-23 11:16:44 +02:00
ges 4b5cb6023c refactor+test: extend StringNormalizer, migrate SystemAdministratorService, add SystemAdministratorServiceTest
- Add StringNormalizer.normalize() (trim + toLowerCase ROOT) for username normalization
- Migrate SystemAdministratorService private normalize() to use StringNormalizer.normalize()
- Remove now-unused Locale import from SystemAdministratorService
- Add StringNormalizerTest coverage for new normalize() method
- Add SystemAdministratorServiceTest with 10 unit tests covering all public methods
2026-04-23 11:14:02 +02:00
ges 6dabdd5662 refactor: remove hand-rolled ObjectMapper singleton in MarketplaceScriptSeedLoader; replace TODO comments with Javadoc
- Replace JsonSupport inner class (AtomicReference lazy singleton) with simple static final ObjectMapper field
- Replace TODO code-smell comments in TwitchEmoteService, SevenTvEmoteService, and MarketplaceScriptSeedLoader with descriptive Javadoc
- Use normalize() consistently in ChannelDirectoryService.topicFor()
2026-04-23 11:10:37 +02:00
ges 8c04b9c755 test: add StringNormalizerTest and AssetCleanupService unit tests 2026-04-21 16:36:48 +02:00
ges 2e6ead0382 refactor: extract ChannelAdminApiController and clean up ChannelDirectoryService
- Extract admin endpoint group (add/remove/list admins, suggestions) into dedicated ChannelAdminApiController
- ChannelApiController reduced from 665 to 520 lines; removes 3 dependency injections
- ChannelDirectoryService: extract resolveOrderForSort() helper from bulk-reorder comparator lambda
- Remove TODO comment from ChannelApiController (partially addressed by this split)
2026-04-21 16:32:00 +02:00
ges 3511936a29 refactor: move SchemaMigration responsibilities to Flyway migrations V13 and V14
- V13: create oauth2_authorized_client table and SPRING_SESSION_ATTRIBUTES upsert trigger
- V14: normalize oauth2_authorized_client timestamp columns (one-time data migration)
- SchemaMigration now only retains legacy backward-compat code for pre-Flyway databases
- Remove normalizeAuthorizedClientTimestamps() and ensureSessionAttributeUpsertTrigger() from SchemaMigration
- Add clear comment explaining SchemaMigration is legacy code only
2026-04-21 16:20:48 +02:00
ges 1a2e2344da refactor+test: add MarketplaceService and SettingsService unit tests; use StringNormalizer in AccountService 2026-04-21 16:15:25 +02:00
ges b6ca67d96c refactor: eliminate code duplication across AssetPatch, OAuthTokenCipher, upload guards, SecurityConfig, and normalize helpers
- Add AssetPatch.forOrder() and simplify AssetPatch.fromVisibility() factory
- Replace null-chain AssetPatch constructors in ChannelDirectoryService with forOrder()
- Extract OAuthTokenCipher.buildFromKeys() to deduplicate two fromEnvironment() overloads
- Replace inline upload-size guards in createAsset/createScriptAttachment with enforceUploadLimit()
- Make script attachment content endpoint public for all channels (not just hard-coded 'gasolinebased')
- Extract StringNormalizer.toLowerCaseRoot() utility and use it in ChannelDirectoryService/ChannelSettingsService
2026-04-21 16:12:31 +02:00
ges f62d01c30a refactor: standardize logger field name to LOG across all production classes 2026-04-21 16:05:20 +02:00
ges c9c5dc6eab fix: update test to use MarketplaceService.listScripts after method was moved 2026-04-21 16:03:07 +02:00
ges 009c8f21fb Extract ChannelSettingsService for canvas and script-overlay settings; add ChannelSettingsServiceTest 2026-04-21 15:47:25 +02:00
ges 0dd1a7418d Extract AllowedDomainNormalizer utility; remove @Autowired, dead constants, and inline VISUAL_ASSET_TYPES duplication 2026-04-21 15:28:54 +02:00
ges b741fb176a Add tests for VersionService, GithubReleaseService, AuditLogService, AuthorizationService, MarketplaceScriptSeedLoader; fix duplicate import in ChannelDirectoryService 2026-04-21 15:23:40 +02:00
ges 3bcd6d6747 Add volume limiter 2026-03-13 16:36:21 +01:00
ges e7af8907b4 Add GitInfoService 2026-03-13 15:21:53 +01:00
ges 0975c039a0 Cleanup chanenls 2026-02-13 14:16:52 +01:00
ges c4bed3f050 Add todos 2026-02-10 13:44:21 +01:00
ges 45fb1921da Bump version 0.0.3 2026-02-09 17:15:45 +01:00
ges ed5007538b Add instant updates to assset transformations 2026-02-09 17:15:29 +01:00
ges 0f088dc83b Bump version 2026-02-09 16:40:35 +01:00
ges fe6fb68b53 Reduce repaints of asset list 0.0.2 2026-02-09 16:33:25 +01:00
ges 1c6d115181 Fix ordering 2026-02-09 16:28:05 +01:00
ges 1c118aab0c Update AGENTS.md file 2026-02-09 16:27:59 +01:00
ges d6271b1758 Deferred emote sync 2026-01-30 08:51:55 +01:00
ges f9613c7c2f Add emote sync 2026-01-29 16:56:20 +01:00
ges 1d48b7d5e7 Major refactor 2026-01-27 23:15:29 +01:00
ges 39bb599219 Refactor models 2026-01-27 15:40:55 +01:00
ges 9cf25a4351 New CI 0.0.1 2026-01-26 18:20:46 +01:00
ges ebdd9e9f18 Add missing transactions 2026-01-26 18:05:23 +01:00
ges b57420d727 Add domain allow-list for script assets 2026-01-25 14:01:53 +01:00
ges b115e16f11 Add text rendering and ttf support 2026-01-25 11:51:37 +01:00
ges d22a2ca93c Add APNG support 2026-01-25 11:38:08 +01:00
ges 92a5578e06 Add keepalive 2026-01-25 11:06:26 +01:00
ges c96918340a Separate audit log db 2026-01-23 18:14:09 +01:00
ges e578007115 Remove docs chip in logout 2026-01-23 17:05:00 +01:00
ges 8c8cd0f42d Add docs link 2026-01-23 17:03:47 +01:00
ges 6ee91c8b0c Add social embed 2026-01-23 17:03:06 +01:00
ges d78db75aeb Use int values for canvas size 2026-01-23 16:33:51 +01:00
ges f881d73dcc Remove redundant badge 2026-01-23 16:30:30 +01:00
ges 2da8b6b81e Pagination on audit log 2026-01-23 13:59:32 +01:00
ges 5ac181fdf2 Clean up zindex 2026-01-23 00:53:04 +01:00
ges dee1f577e8 Add lichess marketplace script logo 2026-01-23 00:39:39 +01:00
ges 445c96110a Fix command invocation 2026-01-23 00:34:31 +01:00
ges 6925e3f560 Update source 2026-01-23 00:26:51 +01:00
ges c25f7d9bc9 Add lichess marketplace script 2026-01-23 00:04:35 +01:00
ges a7368d2172 Remove useless headers 2026-01-22 23:07:51 +01:00
ges 33263b685c Normalize settings on save 2026-01-22 22:44:21 +01:00