VerifyController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Configuration;
  5. use App\Models\DiscordUser;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Validation\ValidationException;
  9. class VerifyController extends Controller
  10. {
  11. /**
  12. * @param Request $request
  13. * @return JsonResponse
  14. * @throws ValidationException
  15. */
  16. public function verify(Request $request){
  17. $request->validate([
  18. 'user_id' => 'required|exists:discord_users,id'
  19. ] , [
  20. 'exists' => "You have not linked your account to our site"
  21. ]);
  22. $discordUser = DiscordUser::findOrFail($request->input('user_id'));
  23. if(is_null($discordUser->user)){
  24. throw ValidationException::withMessages([
  25. 'user_id' => ['User does not exist']
  26. ]);
  27. }
  28. if (!is_null($discordUser->user->discord_verified_at)) {
  29. throw ValidationException::withMessages([
  30. 'user_id' => ['Already verified!']
  31. ]);
  32. }
  33. $discordUser->user->update([
  34. 'discord_verified_at' => now()
  35. ]);
  36. $discordUser->user->increment('credits' , Configuration::getValueByKey('CREDITS_REWARD_AFTER_VERIFY_DISCORD'));
  37. $discordUser->user->increment('server_limit' , Configuration::getValueByKey('SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD'));
  38. return response()->json($discordUser , 200);
  39. }
  40. }