@@ -19,7 +19,6 @@ public function index($id_room){
1919 }
2020 else if ($ room ->status == 1 ){
2121 $ kumpulan_soal = $ this ->getAllSoalForRoom ($ room );
22- dd ($ kumpulan_soal );
2322 return view ('room ' , compact ('kumpulan_soal ' ));
2423 }
2524 }
@@ -50,7 +49,6 @@ public function store(Request $request){
5049 return redirect ()->route ('soal ' , $ room ->kode )->with ([
5150 'id_room ' => $ room ->kode
5251 ]);
53- // return redirect('/room/create');
5452 }
5553
5654 public function soal ($ id_room ){
@@ -89,40 +87,62 @@ public function start(Request $request, $id_room){
8987 }
9088
9189 public function scoreboard ($ id_room ){
92- $ skors = Skor::all ()->where ('room_id ' , $ id_room );
93- $ current_skor = array_map (function ($ skor ) {return array (User::find ($ skor ->user_id )->username => (int )$ skor ->skor );}, $ skors );
94- arsort ($ current_skor );
90+ $ room = Room::all ()->where ('kode ' , $ id_room )->first ();
91+ $ room_id = $ room ->id ;
92+ $ skors = Skor::where ('room_id ' , $ room_id )->orderBy ('skor_user ' , 'desc ' )->get ();
93+ $ current_skor = array ();
94+ foreach ($ skors as $ skor ){
95+ array_push ($ current_skor , array (User::find ($ skor ->user_id )->username => (int )$ skor ->skor_user ));
96+ }
9597 $ data = $ current_skor ;
9698 return view ('scoreboard ' , compact ('data ' ));
9799 }
98100
101+ public function scoreboard_data ($ id_room ){
102+ $ room = Room::all ()->where ('kode ' , $ id_room )->first ();
103+ $ room_id = $ room ->id ;
104+ $ skors = Skor::where ('room_id ' , $ room_id )->orderBy ('skor_user ' , 'desc ' )->get ();
105+ $ current_skor = array ();
106+ foreach ($ skors as $ skor ){
107+ array_push ($ current_skor , array (User::find ($ skor ->user_id )->username => (int )$ skor ->skor_user ));
108+ }
109+ $ data = $ current_skor ;
110+ return compact ('data ' );
111+ }
112+
99113 public function submit (Request $ request ){
100114 $ jawaban = new Jawaban ();
101115 $ jawaban ->soal_id = $ request ->soal_id ;
102116 $ jawaban ->user_id = $ request ->user_id ;
103117 $ jawaban ->jawaban = $ request ->jawaban ;
104118 $ jawaban ->save ();
105- $ this ->updateScoreBoard ($ request );
119+ $ benar = $ this ->updateScoreBoard ($ request );
106120 //broadcast
121+ return redirect ()->route ('room.scoreboard ' , ['id_room ' => $ request ->id_room ])->with ([
122+ 'benar ' => $ benar
123+ ]);
107124 }
108125
109126 private function updateScoreBoard ($ request ){
110127 $ soal = Soal::all ()->find ($ request ->soal_id );
111128 $ score = 0 ;
129+ $ benar = 0 ;
112130 if ($ request ->jawaban == $ soal ->jawaban ){
113- $ remaining_time = 300 - $ request ->elapsed_time ;
114- $ percentage = $ remaining_time /300 ;
131+ $ remaining_time = 15 - $ request ->elapsed_time ;
132+ $ percentage = $ remaining_time /15 ;
115133 $ score = 100 * $ percentage ;
134+ $ benar = 1 ;
116135 }
117136 $ skor = $ this ->checkIfScoreExisted ($ request ->room_id , $ request ->user_id );
137+ $ room = Room::all ()->where ('kode ' , $ request ->id_room )->first ();
118138 if (!$ skor ){
119139 $ skor = new Skor ();
120140 $ skor ->user_id = $ request ->user_id ;
121- $ skor ->room_id = $ request -> room_id ;
141+ $ skor ->room_id = $ room -> id ;
122142 $ skor ->skor_user = 0 ;
123143 }
124144 $ skor ->skor_user = $ skor ->skor_user + $ score ;
125-
145+ return $ benar ;
126146 }
127147
128148 private function checkIfScoreExisted ($ room_id , $ user_id ){
0 commit comments