fix: dashboard activity endpoint JSON parsing error
Test and Lint / backend-test (push) Successful in 1m4s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m26s
Version and Release / version-bump (push) Successful in 31s
Version and Release / trigger-drone (push) Successful in 3s
Test and Lint / backend-test (push) Successful in 1m4s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m26s
Version and Release / version-bump (push) Successful in 31s
Version and Release / trigger-drone (push) Successful in 3s
- Add safe JSON parsing for activity metadata in dashboard endpoint - Handle cases where PostgreSQL returns JSON columns as objects - Prevent 500 errors when metadata contains invalid JSON 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -122,7 +122,16 @@ router.get('/activity', adminAuth, async (req, res) => {
|
|||||||
actorType: activity.actor_type,
|
actorType: activity.actor_type,
|
||||||
actorName: activity.actor_name,
|
actorName: activity.actor_name,
|
||||||
eventName: activity.event_name,
|
eventName: activity.event_name,
|
||||||
metadata: activity.metadata ? JSON.parse(activity.metadata) : {},
|
metadata: (() => {
|
||||||
|
try {
|
||||||
|
if (!activity.metadata) return {};
|
||||||
|
if (typeof activity.metadata === 'object') return activity.metadata;
|
||||||
|
return JSON.parse(activity.metadata);
|
||||||
|
} catch (e) {
|
||||||
|
console.warn('Failed to parse metadata for activity:', activity.id, e.message);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
})(),
|
||||||
createdAt: activity.created_at
|
createdAt: activity.created_at
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user