Fix try-except structure and docstring in checkin API
- Correct indentation for except block - Fix broken docstring formatting - Ensure proper Python syntax compliance - Resolve remaining syntax errors
This commit is contained in:
@ -670,53 +670,54 @@ def checkin_from_rogapp(request):
|
||||
"requires_manual_review": bool(gps_coordinates.get('accuracy', 0) > 10), # 10m以上は要審査
|
||||
"image_url": s3_image_url # S3画像URLを返す
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
# より詳細なエラー情報をログに記録
|
||||
import traceback
|
||||
error_details = {
|
||||
"error_type": type(e).__name__,
|
||||
"error_message": str(e),
|
||||
"traceback": traceback.format_exc(),
|
||||
|
||||
except Exception as e:
|
||||
# より詳細なエラー情報をログに記録
|
||||
import traceback
|
||||
error_details = {
|
||||
"error_type": type(e).__name__,
|
||||
"error_message": str(e),
|
||||
"traceback": traceback.format_exc(),
|
||||
"request_data": request.data if hasattr(request, 'data') else "No data",
|
||||
"user_agent": user_agent if 'user_agent' in locals() else "Unknown",
|
||||
"client_ip": client_ip if 'client_ip' in locals() else "Unknown"
|
||||
}
|
||||
"client_ip": client_ip if 'client_ip' in locals() else "Unknown"
|
||||
}
|
||||
|
||||
logger.error(f"[CHECKIN] ❌ DETAILED ERROR: {error_details}")
|
||||
|
||||
# より具体的なエラーメッセージを返す
|
||||
if "データベース" in str(e).lower() or "database" in str(e).lower():
|
||||
error_message = "データベースの構造に問題があります。アプリを再起動してください。"
|
||||
elif "s3" in str(e).lower() or "boto" in str(e).lower():
|
||||
error_message = "画像アップロードに問題があります。しばらく後に再試行してください。"
|
||||
elif "import" in str(e).lower() or "module" in str(e).lower():
|
||||
error_message = "サーバーモジュールの読み込みエラーです。管理者にお問い合わせください。"
|
||||
else:
|
||||
error_message = "サーバーエラーが発生しました。しばらく後に再試行してください。"
|
||||
|
||||
logger.error(f"[CHECKIN] ❌ DETAILED ERROR: {error_details}")
|
||||
|
||||
# より具体的なエラーメッセージを返す
|
||||
if "データベース" in str(e).lower() or "database" in str(e).lower():
|
||||
error_message = "データベースの構造に問題があります。アプリを再起動してください。"
|
||||
elif "s3" in str(e).lower() or "boto" in str(e).lower():
|
||||
error_message = "画像アップロードに問題があります。しばらく後に再試行してください。"
|
||||
elif "import" in str(e).lower() or "module" in str(e).lower():
|
||||
error_message = "サーバーモジュールの読み込みエラーです。管理者にお問い合わせください。"
|
||||
else:
|
||||
error_message = "サーバーエラーが発生しました。しばらく後に再試行してください。"
|
||||
|
||||
return Response({
|
||||
"status": "ERROR",
|
||||
"message": error_message,
|
||||
"error_code": "CHECKIN_API_ERROR"
|
||||
}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
return Response({
|
||||
"status": "ERROR",
|
||||
"message": error_message,
|
||||
"error_code": "CHECKIN_API_ERROR"
|
||||
}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
|
||||
"""
|
||||
解説
|
||||
Goal API from rogapp - 解説
|
||||
この実装では以下の処理を行っています:
|
||||
|
||||
1.イベントコード、チーム名、画像URL、ゴール時間のパラメータを受け取ります
|
||||
2.パラメータが不足している場合はエラーを返します
|
||||
3.指定されたイベントとチームの存在を確認します
|
||||
4.チームがスタートしているかを確認します
|
||||
- スタートしていない場合はエラーを返します
|
||||
5.既にゴールしているかチェックします
|
||||
- ゴール済みの場合は警告メッセージを返します
|
||||
6.ゴール時間を処理します(提供されていない場合は現在時刻を使用)
|
||||
7.チームのスコアを計算します
|
||||
8.スコアボードを生成します(実際の生成ロジックは実装によって異なります)
|
||||
9.ゴール情報を登録します
|
||||
10.成功した場合、ゴール情報、スコア、スコアボードURLを含む成功メッセージを返します
|
||||
1. イベントコード、チーム名、画像URL、ゴール時間のパラメータを受け取ります
|
||||
2. パラメータが不足している場合はエラーを返します
|
||||
3. 指定されたイベントとチームの存在を確認します
|
||||
4. チームがスタートしているかを確認します
|
||||
- スタートしていない場合はエラーを返します
|
||||
5. 既にゴールしているかチェックします
|
||||
- ゴール済みの場合は警告メッセージを返します
|
||||
6. ゴール時間を処理します(提供されていない場合は現在時刻を使用)
|
||||
7. チームのスコアを計算します
|
||||
8. スコアボードを生成します(実際の生成ロジックは実装によって異なります)
|
||||
9. ゴール情報を登録します
|
||||
10. 成功した場合、ゴール情報、スコア、スコアボードURLを含む成功メッセージを返します
|
||||
|
||||
スコアボードの生成部分は、実際のシステムの要件に合わせて詳細に実装する必要があります。
|
||||
この例では、単純にPDFファイルのパスとURLを生成していますが、
|
||||
|
||||
Reference in New Issue
Block a user