changes
This commit is contained in:
@@ -310,6 +310,42 @@ class RegistrationController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function correctShot(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'session_id' => 'required|exists:game_sessions,id',
|
||||
'shot_number' => 'required|integer|in:1,2,3',
|
||||
'result' => 'required|boolean',
|
||||
]);
|
||||
|
||||
$session = GameSession::with('registration')->findOrFail($request->session_id);
|
||||
|
||||
$shot = $session->shots()->where('shot_number', $request->shot_number)->first();
|
||||
|
||||
if ($shot) {
|
||||
$shot->update(['result' => $request->result]);
|
||||
} else {
|
||||
GameShot::create([
|
||||
'game_session_id' => $session->id,
|
||||
'shot_number' => $request->shot_number,
|
||||
'result' => $request->result,
|
||||
]);
|
||||
}
|
||||
|
||||
$sessionScore = $session->calculateScore();
|
||||
$session->update(['score' => $sessionScore]);
|
||||
|
||||
$registration = $session->registration;
|
||||
$registration->update([
|
||||
'total_score' => $registration->sessions()->sum('score')
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'ok',
|
||||
'total_score' => $registration->fresh()->total_score,
|
||||
]);
|
||||
}
|
||||
|
||||
//Leaderboard
|
||||
public function leaderboard()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user