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:
2025-09-03 22:08:08 +09:00
parent f55f44013f
commit 1698776589

View File

@ -670,53 +670,54 @@ def checkin_from_rogapp(request):
"requires_manual_review": bool(gps_coordinates.get('accuracy', 0) > 10), # 10m以上は要審査 "requires_manual_review": bool(gps_coordinates.get('accuracy', 0) > 10), # 10m以上は要審査
"image_url": s3_image_url # S3画像URLを返す "image_url": s3_image_url # S3画像URLを返す
}) })
except Exception as e: except Exception as e:
# より詳細なエラー情報をログに記録 # より詳細なエラー情報をログに記録
import traceback import traceback
error_details = { error_details = {
"error_type": type(e).__name__, "error_type": type(e).__name__,
"error_message": str(e), "error_message": str(e),
"traceback": traceback.format_exc(), "traceback": traceback.format_exc(),
"request_data": request.data if hasattr(request, 'data') else "No data", "request_data": request.data if hasattr(request, 'data') else "No data",
"user_agent": user_agent if 'user_agent' in locals() else "Unknown", "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}") return Response({
"status": "ERROR",
# より具体的なエラーメッセージを返す "message": error_message,
if "データベース" in str(e).lower() or "database" in str(e).lower(): "error_code": "CHECKIN_API_ERROR"
error_message = "データベースの構造に問題があります。アプリを再起動してください。" }, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
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)
""" """
解説 Goal API from rogapp - 解説
この実装では以下の処理を行っています: この実装では以下の処理を行っています:
1.イベントコード、チーム名、画像URL、ゴール時間のパラメータを受け取ります 1. イベントコード、チーム名、画像URL、ゴール時間のパラメータを受け取ります
2.パラメータが不足している場合はエラーを返します 2. パラメータが不足している場合はエラーを返します
3.指定されたイベントとチームの存在を確認します 3. 指定されたイベントとチームの存在を確認します
4.チームがスタートしているかを確認します 4. チームがスタートしているかを確認します
- スタートしていない場合はエラーを返します - スタートしていない場合はエラーを返します
5.既にゴールしているかチェックします 5. 既にゴールしているかチェックします
- ゴール済みの場合は警告メッセージを返します - ゴール済みの場合は警告メッセージを返します
6.ゴール時間を処理します(提供されていない場合は現在時刻を使用) 6. ゴール時間を処理します(提供されていない場合は現在時刻を使用)
7.チームのスコアを計算します 7. チームのスコアを計算します
8.スコアボードを生成します(実際の生成ロジックは実装によって異なります) 8. スコアボードを生成します(実際の生成ロジックは実装によって異なります)
9.ゴール情報を登録します 9. ゴール情報を登録します
10.成功した場合、ゴール情報、スコア、スコアボードURLを含む成功メッセージを返します 10. 成功した場合、ゴール情報、スコア、スコアボードURLを含む成功メッセージを返します
スコアボードの生成部分は、実際のシステムの要件に合わせて詳細に実装する必要があります。 スコアボードの生成部分は、実際のシステムの要件に合わせて詳細に実装する必要があります。
この例では、単純にPDFファイルのパスとURLを生成していますが、 この例では、単純にPDFファイルのパスとURLを生成していますが、