feat: add leader board
This commit is contained in:
@@ -32,7 +32,6 @@ public function loginV2(Request $request)
|
||||
$response = Http::acceptJson()->withToken($data['token'])->get('https://api.approagency.ir/api/status', [
|
||||
'package_name' => $request['package_name']
|
||||
]);
|
||||
|
||||
if (!$response->successful()) {
|
||||
return response()->json(['message' => 'invalid token'], 401);
|
||||
}
|
||||
@@ -49,22 +48,28 @@ public function loginV2(Request $request)
|
||||
if (!$user) {
|
||||
$user = User::where('email', $response['email'])->first();
|
||||
}
|
||||
$mobile = $response['mobile'] ?? null;
|
||||
|
||||
// If mobile already exists, set it null to avoid duplicate error
|
||||
if ($mobile && User::where('mobile', $mobile)->where('id', '!=', $user?->id)->exists()) {
|
||||
$mobile = null;
|
||||
}
|
||||
// If user still doesn't exist, create new
|
||||
if (!$user) {
|
||||
$user = User::create([
|
||||
'email' => $response['email'],
|
||||
'identifier' => $response['uuid'] ?? null,
|
||||
'password' => config('app.default_password'),
|
||||
'name' => trim(($response['first_name'] ?? '') . ' ' . ($response['last_name'] ?? '')),
|
||||
'mobile' => $response['mobile'] ?? null,
|
||||
]);
|
||||
} else {
|
||||
// Only update name and mobile for existing user
|
||||
$user->name = trim(($response['first_name'] ?? '') . ' ' . ($response['last_name'] ?? ''));
|
||||
$user->mobile = $response['mobile'] ?? $user->mobile;
|
||||
$user->save(); // Do NOT update identifier!
|
||||
}
|
||||
$user = User::create([
|
||||
'email' => $response['email'],
|
||||
'identifier' => $response['uuid'] ?? null,
|
||||
'password' => config('app.default_password'),
|
||||
'name' => trim(($response['first_name'] ?? '') . ' ' . ($response['last_name'] ?? '')),
|
||||
'mobile' => $mobile,
|
||||
]);
|
||||
} else {
|
||||
// Only update name and mobile for existing user
|
||||
$user->name = trim(($response['first_name'] ?? '') . ' ' . ($response['last_name'] ?? ''));
|
||||
$user->mobile = $mobile ?? $user->mobile;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
|
||||
$access_token = $user->createToken('user')->plainTextToken;
|
||||
|
||||
@@ -556,4 +561,12 @@ public function googleLogin(Request $request)
|
||||
'token' => $token,
|
||||
]);
|
||||
}
|
||||
|
||||
public function leaderBoard(){
|
||||
$users = User::where('xp', '>', 0)
|
||||
->orderBy('xp', 'desc')
|
||||
->get();
|
||||
|
||||
return $users;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,8 @@
|
||||
Route::post('/profile', [UserController::class, 'updateProfile']);
|
||||
Route::get('/profile', [UserController::class, 'profile']);
|
||||
|
||||
////-- leader board
|
||||
Route::get('/leader-board', [UserController::class, 'leaderBoard']);
|
||||
|
||||
///-- mood routes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user