managarten/apps
Till JS ecec3d56fe fix(contacts): optimize storage usage and fix photo orphan bug
Bug fix:
- ContactService.delete() now cleans up S3 photo before DB deletion
  (previously left orphaned files in storage)
- ContactModule imports PhotoModule for dependency injection

PhotoService improvements:
- Use maxSizeBytes in upload() instead of manual validateFileSize()
- Use getPublicUrl()/result.url instead of manual URL construction
  via getStorageConfig() + BUCKETS concatenation
- Add cacheControl header for immutable photo assets (1 year)
- Add upload hooks for structured logging via Logger
- Add deletePhotoByUrl() for contact deletion cleanup
- Add deleteAllUserPhotos() for account deletion via deleteByPrefix()
- Store photos in 'photos' subfolder for cleaner key structure
- Remove unused getStorageConfig/BUCKETS imports

Test fix:
- Add PhotoService mock to ContactService spec

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 20:01:43 +01:00
..
calendar feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
chat feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
clock feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
contacts fix(contacts): optimize storage usage and fix photo orphan bug 2026-03-20 20:01:43 +01:00
context feat(error-tracking): complete GlitchTip integration for all backends 2026-03-19 21:47:27 +01:00
docs 🌙 feat(docs): set dark mode as default theme 2026-01-29 18:22:23 +01:00
manacore feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
manadeck feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
matrix feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
mukke feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
nutriphi feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
photos feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
picture feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
planta feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
presi feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
questions feat(error-tracking): complete GlitchTip integration for all backends 2026-03-19 21:47:27 +01:00
skilltree feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
storage feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
todo feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00
traces feat(error-tracking): complete GlitchTip integration for all backends 2026-03-19 21:47:27 +01:00
zitare feat(games): add whopixels hosting at whopxl.mana.how 2026-03-20 19:57:50 +01:00