user(); $user_id = $token['sub']; $oldUserRankings = LeaderboardMaster::with('user')->get(); $currentDate = now()->toDateString(); $previousDate = now()->subDay()->toDateString(); // Check if a record for the current user and current day already exists $existingRecord = mood_o_meter::where('user_id', $user_id) // ->whereDate('created_at', now()->toDateString()) ->whereDate('updated_at', $currentDate) ->where('is_active','0') ->first(); if ($existingRecord) { // Update the existing mood record $existingRecord->update([ 'mood_o_meter' => $req->input('mood_o_meter'), 'is_active' => '0', ]); return response([ 'status' => "Mood already added for today", ], 200); } else { // Check if a record for the current user and previous day exists // $previousRecord = mood_o_meter::where('user_id', $user_id) // ->whereDate('updated_at', $previousDate) // // ->first(); // if ($previousRecord) { // Create a new mood record for the current day mood_o_meter::where('user_id', $user_id) ->update([ 'mood_o_meter' => $req->input('mood_o_meter'), 'is_active' => '0' ]); // } // else { // // mood_o_meter::create([ // 'user_id' => $user_id, // 'mood_o_meter' => $req->input('mood_o_meter'), // 'is_active' => '0', // ]); // } // Update is_active column based on the current time $ranking = LeaderboardMaster::with('user')->where('user_id', $user_id)->first(); // Check if user exists in another table $leaderboardMaster = LeaderboardMaster::where('user_id', $user_id)->first(); if ($leaderboardMaster) { // Update points if user exists $leaderboardMaster->increment('total_score', 1); } else { // Create a new entry with 1 point if user doesn't exist LeaderboardMaster::create([ 'user_id' => $token['sub'], 'total_score' => 1, ]); } $newUserRanking = LeaderboardMaster::where('user_id', $user_id)->first(); if ($newUserRanking) { // dd($oldUserRankings); // $message = 'Hello World'; // echo '
';
// print_r($ranking);
// exit();
// foreach ($oldUserRankings as $ranking) {
$previousTotalScore = $ranking->total_score;
$currentTotalScore = $newUserRanking->total_score;
if ($ranking->user_id == $user_id) {
if ($previousTotalScore === null) {
$ranking->progress_bar = '0'; // Initial entry
} elseif ($currentTotalScore > $previousTotalScore) {
$ranking->progress_bar = '0'; // Total score increased
$message = "You earned 1 point!";
} elseif ($currentTotalScore < $previousTotalScore) {
$ranking->progress_bar = '1'; // Total score decreased
$message = "Your score decreased.";
} else {
$ranking->progress_bar = '2'; // Total score remained the same
$message = "Your score remains the same.";
}
$ranking->save(); // Save the updated progress_bar value
}
// }
// dd($userRanking,$newUserRanking);
return response()->json([
'success' => true,
'progress_bar' => $message,
]);
}
return response([
'status' => "Success",
], 200);
}
}
} catch (Exception $ex) {
return response([
'status' => "failed",
], 500);
}
}
public function get_mood_o_meter() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = mood_o_meter::where('user_id', $user_id)->value('is_active');
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_mood_o_meter_mood() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = mood_o_meter::where('user_id', $user_id)->value('mood_o_meter');
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
}