Security hardening: fixed 13 vulnerabilities, added AI-powered SupportController (Gemini), and stabilized Flutter Complaint logic

This commit is contained in:
Hamza-Ayed
2026-04-24 22:55:56 +03:00
parent cc85fe1815
commit 540c5cc7ab
11 changed files with 292 additions and 71 deletions

View File

@@ -156,35 +156,23 @@ class RatingController extends Controller
/** GET /v2/ratings/app — Legacy GET support */
public function getAppFeedback(Request $request): JsonResponse
{
$passengerId = $request->input('passengerId');
if (!$passengerId) {
return response()->json(['status' => 'failure', 'message' => 'passengerId is required']);
}
$passengerId = $request->attributes->get('_jwt_user_id');
$data = DB::connection('primary')->table('feedBack')
->where('passengerId', $passengerId)
->orderBy('datecreated', 'desc')
->get();
if ($data->isEmpty()) {
return response()->json(['status' => 'failure', 'message' => 'No feedback found']);
}
return response()->json([
'status' => 'success',
'message' => $data
]);
return response()->json(['status' => 'success', 'message' => $data]);
}
/** POST /v2/ratings/app — Legacy POST support */
public function storeAppFeedback(Request $request): JsonResponse
{
$passengerId = $request->input('passengerId');
$passengerId = $request->attributes->get('_jwt_user_id');
$feedBack = $request->input('feedBack');
if (!$passengerId || !$feedBack) {
return response()->json(['status' => 'failure', 'message' => 'Missing parameters']);
if (!$feedBack) {
return response()->json(['status' => 'failure', 'message' => 'Missing feedback text']);
}
// V1 Encrypts this data
@@ -200,7 +188,8 @@ class RatingController extends Controller
return response()->json(['status' => 'success', 'message' => 'Feedback saved successfully']);
} catch (\Exception $e) {
return response()->json(['status' => 'failure', 'message' => 'Database error: ' . $e->getMessage()]);
\Log::error('RatingController Feedback Error: ' . $e->getMessage());
return response()->json(['status' => 'failure', 'message' => 'An error occurred while saving feedback']);
}
}
}