Implement detailed error handling for model submission conflicts in API and UI, enhancing user feedback for already submitted models. Update logging for better traceability of submission errors.
Browse files- api_service.py +15 -0
- ui_submit_model.py +26 -9
api_service.py
CHANGED
|
@@ -289,6 +289,21 @@ class APIService:
|
|
| 289 |
'message': result.get('message', 'Geçersiz veri'),
|
| 290 |
'error': result.get('error')
|
| 291 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 292 |
else:
|
| 293 |
logger.error(f"Model gönderimi hatası: HTTP {response.status_code}")
|
| 294 |
return {
|
|
|
|
| 289 |
'message': result.get('message', 'Geçersiz veri'),
|
| 290 |
'error': result.get('error')
|
| 291 |
}
|
| 292 |
+
elif response.status_code == 409:
|
| 293 |
+
# HTTP 409 Conflict - Model already exists
|
| 294 |
+
try:
|
| 295 |
+
result = response.json()
|
| 296 |
+
error_message = result.get('message', 'Model zaten gönderilmiş')
|
| 297 |
+
except:
|
| 298 |
+
error_message = 'Model zaten gönderilmiş'
|
| 299 |
+
|
| 300 |
+
logger.error(f"Model gönderimi hatası (409): {error_message}")
|
| 301 |
+
return {
|
| 302 |
+
'success': False,
|
| 303 |
+
'message': f'⚠️ {error_message}',
|
| 304 |
+
'error': 'Model already submitted',
|
| 305 |
+
'status_code': 409
|
| 306 |
+
}
|
| 307 |
else:
|
| 308 |
logger.error(f"Model gönderimi hatası: HTTP {response.status_code}")
|
| 309 |
return {
|
ui_submit_model.py
CHANGED
|
@@ -294,16 +294,33 @@ def add_submit_model_tab(block, api_service):
|
|
| 294 |
)
|
| 295 |
else:
|
| 296 |
error_msg = result.get('error', 'Bilinmeyen hata')
|
|
|
|
| 297 |
logger.error(f"API submission failed: {error_msg}")
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 307 |
|
| 308 |
except Exception as e:
|
| 309 |
logger.error(f"API submission exception: {e}")
|
|
|
|
| 294 |
)
|
| 295 |
else:
|
| 296 |
error_msg = result.get('error', 'Bilinmeyen hata')
|
| 297 |
+
status_code = result.get('status_code')
|
| 298 |
logger.error(f"API submission failed: {error_msg}")
|
| 299 |
+
|
| 300 |
+
# Handle specific error cases
|
| 301 |
+
if status_code == 409 or 'already submitted' in error_msg.lower():
|
| 302 |
+
return (
|
| 303 |
+
f'''
|
| 304 |
+
<div style="color: orange; padding: 15px; border: 1px solid orange; border-radius: 8px; background: #fffbeb;">
|
| 305 |
+
⚠️ <strong>Model Zaten Gönderilmiş!</strong><br><br>
|
| 306 |
+
<strong>Model:</strong> {model_name}<br>
|
| 307 |
+
<strong>Versiyon:</strong> {version}<br><br>
|
| 308 |
+
<strong>Not:</strong> Bu model daha önce sisteme gönderilmiş ve değerlendirme kuyruğunda bulunmaktadır.<br>
|
| 309 |
+
Lütfen farklı bir model veya versiyon deneyin.
|
| 310 |
+
</div>
|
| 311 |
+
''',
|
| 312 |
+
model_name, version # Keep the fields for user to modify
|
| 313 |
+
)
|
| 314 |
+
else:
|
| 315 |
+
return (
|
| 316 |
+
f'''
|
| 317 |
+
<div style="color: red; padding: 15px; border: 1px solid red; border-radius: 8px; background: #fef2f2;">
|
| 318 |
+
❌ <strong>API Gönderim Hatası!</strong><br>
|
| 319 |
+
<strong>Hata:</strong> {error_msg}
|
| 320 |
+
</div>
|
| 321 |
+
''',
|
| 322 |
+
model_name, version # Keep the fields for user to modify
|
| 323 |
+
)
|
| 324 |
|
| 325 |
except Exception as e:
|
| 326 |
logger.error(f"API submission exception: {e}")
|