44
55use App \Models \QuestionResponse ;
66use App \Models \Quiz ;
7- use Auth ;
7+ use Illuminate \ Support \ Facades \ Auth ;
88use Illuminate \Http \Request ;
9- use Illuminate \Support \Facades \Session ;
109use Symfony \Component \HttpFoundation \Response ;
1110
1211class QuestionResponseController extends Controller
@@ -20,30 +19,46 @@ public function store(Request $request, Quiz $quiz)
2019 if ($ quiz ->isTimeLimitExceeded ($ team )) {
2120 flash ('Your time limit exceeded! ' )->error ();
2221
23- return $ this ->getJsonOrRedirect (Response::HTTP_UNAUTHORIZED );
22+ if ($ request ->expectsJson ()) {
23+ return response ()->json ([
24+ 'status ' => 'error ' ,
25+ 'message ' => 'Your time limit exceeded! '
26+ ], Response::HTTP_FORBIDDEN );
27+ }
28+
29+ return redirect ()->back ();
2430 }
2531
2632 flash ('Your response has been recorded! All The Best! ' )->success ();
2733
28- return $ this ->getJsonOrRedirect (Response::HTTP_ACCEPTED );
29- }
30-
31- private function getJsonOrRedirect ($ status = 202 )
32- {
33- if (! request ()->expectsJson ()) {
34- return redirect ()->back ();
34+ if ($ request ->expectsJson ()) {
35+ return response ()->json ([
36+ 'status ' => 'success ' ,
37+ 'message ' => 'Your response has been recorded! All The Best! '
38+ ], Response::HTTP_OK );
3539 }
3640
37- return response ()->json ([
38- 'message ' => Session::pull ('flash_notification ' )->toArray ()[0 ],
39- ], $ status );
41+ return redirect ()->back ();
4042 }
4143
4244 public function saveQuestionResponse (Request $ request , Quiz $ quiz )
4345 {
4446 $ team = $ quiz ->event ->participatingTeamByUser (Auth::user ());
45- $ quizResponseId = $ quiz ->participationByTeam ($ team )->id ;
4647
48+ if (!$ quiz ->isVerified ()) {
49+
50+ if ($ request ->expectsJson ()) {
51+ return response ()->json ([
52+ 'status ' => 'error ' ,
53+ 'message ' => 'Quiz must be verified before submitting responses. '
54+ ], Response::HTTP_FORBIDDEN );
55+ }
56+
57+ flash ('Quiz must be verified before submitting responses. ' )->error ();
58+ return redirect ()->back ();
59+ }
60+
61+ $ quizResponseId = $ quiz ->participationByTeam ($ team )->id ;
4762 $ questionId = $ request ->question_id ;
4863 $ responseKey = $ request ->response_key ;
4964
@@ -52,13 +67,19 @@ public function saveQuestionResponse(Request $request, Quiz $quiz)
5267 ['response_keys ' => $ responseKey ]
5368 );
5469
55- return response ()->json ([
56- 'message ' => 'Your response has been saved! ' ,
57- 'question_response ' => [
58- 'question_id ' => $ questionId ,
59- 'question_response_id ' => $ questionResponse ->id ,
60- 'response_key ' => $ responseKey ,
61- ],
62- ]);
70+
71+ if ($ request ->expectsJson ()) {
72+ return response ()->json ([
73+ 'message ' => 'Your response has been saved! ' ,
74+ 'question_response ' => [
75+ 'question_id ' => $ questionId ,
76+ 'question_response_id ' => $ questionResponse ->id ,
77+ 'response_key ' => $ responseKey ,
78+ ]
79+ ]);
80+ }
81+
82+ flash ('Your response has been saved! ' )->success ();
83+ return redirect ()->back ();
6384 }
6485}
0 commit comments