fix: add activity_logs deletion to event delete transaction
Mirror to GitHub / mirror (push) Successful in 24s
Test and Lint / backend-test (push) Successful in 1m6s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m8s
Version and Release / version-bump (push) Successful in 35s
Version and Release / trigger-drone (push) Successful in 3s

- Include activity_logs table in deletion transaction to prevent foreign key constraint error
- Maintain proper deletion order: activity_logs before events
- Fixes 500 error when deleting events that have associated activity logs

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-16 09:20:48 +02:00
parent f7b8c0c0fe
commit fe651fa38e
2 changed files with 48 additions and 20 deletions
+8 -5
View File
@@ -395,19 +395,22 @@ router.delete('/:id', adminAuth, async (req, res) => {
// Start a transaction to ensure all deletions succeed or fail together
await db.transaction(async (trx) => {
// 1. Delete access logs
// 1. Delete activity logs (audit trail)
await trx('activity_logs').where('event_id', id).del();
// 2. Delete access logs
await trx('access_logs').where('event_id', id).del();
// 2. Delete email queue entries
// 3. Delete email queue entries
await trx('email_queue').where('event_id', id).del();
// 3. Delete photos (this will also handle hero_photo_id foreign key)
// 4. Delete photos (this will also handle hero_photo_id foreign key)
await trx('photos').where('event_id', id).del();
// 4. Delete categories (photo_categories has CASCADE delete for event_id)
// 5. Delete categories (photo_categories has CASCADE delete for event_id)
await trx('photo_categories').where('event_id', id).del();
// 5. Finally delete the event
// 6. Finally delete the event
await trx('events').where('id', id).del();
// Delete event folder from storage if it exists