Fix jwt-token
This commit is contained in:
@@ -315,7 +315,59 @@ async function handleDetection(req, res) {
|
||||
}
|
||||
}
|
||||
|
||||
const detection = await DroneDetection.create(detectionRecord);
|
||||
// Create detection record with proper error handling
|
||||
let detection;
|
||||
try {
|
||||
detection = await DroneDetection.create(detectionRecord);
|
||||
console.log(`✅ Detection created successfully: ID ${detection.id}, Device ${deviceIdString}, Drone ${detectionData.drone_id}`);
|
||||
} catch (error) {
|
||||
console.error(`❌ Failed to create detection for device ${deviceIdString}, drone ${detectionData.drone_id}:`, error.message);
|
||||
|
||||
// Log to admin/management for monitoring
|
||||
console.error(`🚨 ADMIN ALERT: Database error in detection creation - Device: ${deviceIdString}, DroneID: ${detectionData.drone_id}, Error: ${error.message}`);
|
||||
|
||||
// Check for specific database constraint errors
|
||||
if (error.name === 'SequelizeValidationError') {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
error: 'Validation error',
|
||||
message: 'Detection data validation failed',
|
||||
details: error.errors?.map(e => e.message) || ['Invalid data format'],
|
||||
device_id: deviceIdString,
|
||||
drone_id: detectionData.drone_id
|
||||
});
|
||||
}
|
||||
|
||||
if (error.name === 'SequelizeUniqueConstraintError') {
|
||||
return res.status(409).json({
|
||||
success: false,
|
||||
error: 'Duplicate detection',
|
||||
message: 'Detection with this combination already exists',
|
||||
device_id: deviceIdString,
|
||||
drone_id: detectionData.drone_id
|
||||
});
|
||||
}
|
||||
|
||||
if (error.name === 'SequelizeForeignKeyConstraintError') {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
error: 'Reference error',
|
||||
message: 'Invalid reference to related data',
|
||||
device_id: deviceIdString,
|
||||
drone_id: detectionData.drone_id
|
||||
});
|
||||
}
|
||||
|
||||
// Generic database error
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
error: 'Database error',
|
||||
message: 'Failed to store detection data',
|
||||
device_id: deviceIdString,
|
||||
drone_id: detectionData.drone_id,
|
||||
logged_for_admin_review: true
|
||||
});
|
||||
}
|
||||
|
||||
// Process detection through tracking service for movement analysis (from original)
|
||||
const movementAnalysis = droneTracker.processDetection({
|
||||
|
||||
Reference in New Issue
Block a user