RegisterController.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\User;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Support\Facades\Hash;
  8. use Illuminate\Auth\Events\Registered;
  9. use Illuminate\Support\Facades\Validator;
  10. use Illuminate\Foundation\Auth\RegistersUsers;
  11. class RegisterController extends Controller
  12. {
  13. /*
  14. |--------------------------------------------------------------------------
  15. | Register Controller
  16. |--------------------------------------------------------------------------
  17. |
  18. | This controller handles the registration of new users as well as their
  19. | validation and creation. By default this controller uses a trait to
  20. | provide this functionality without requiring any additional code.
  21. |
  22. */
  23. use RegistersUsers;
  24. /**
  25. * check if a user exists
  26. * @param Request $request [description]
  27. * @return json
  28. */
  29. public function checkUser()
  30. {
  31. $user = DB::table('users')->first();
  32. return response()->json(['username' => isset($user->name) ? $user->name : null], 200);
  33. }
  34. /**
  35. * Handle a registration request for the application.
  36. *
  37. * @param \Illuminate\Http\Request $request
  38. * @return \Illuminate\Http\JsonResponse
  39. */
  40. public function register(Request $request)
  41. {
  42. // check if a user already exists
  43. if( DB::table('users')->count() > 0 ) {
  44. // return response()->json(['message' => __('errors.already_one_user_registered')], 400);
  45. throw \Illuminate\Validation\ValidationException::withMessages(['taken' => __('errors.already_one_user_registered')]);
  46. }
  47. $this->validator($request->all())->validate();
  48. event(new Registered($user = $this->create($request->all())));
  49. //$this->guard()->login($user);
  50. return response()->json([
  51. 'message' => 'account created',
  52. 'token' => $user->createToken('MyApp')->accessToken,
  53. 'name' => $user->name,
  54. ]);
  55. }
  56. /**
  57. * Get a validator for an incoming registration request.
  58. *
  59. * @param array $data
  60. * @return \Illuminate\Contracts\Validation\Validator
  61. */
  62. protected function validator(array $data)
  63. {
  64. return Validator::make($data, [
  65. 'name' => ['required', 'string', 'max:255'],
  66. 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
  67. 'password' => ['required', 'string', 'min:8', 'confirmed'],
  68. ]);
  69. }
  70. /**
  71. * Create a new user instance after a valid registration.
  72. *
  73. * @param array $data
  74. * @return \App\User
  75. */
  76. protected function create(array $data)
  77. {
  78. return User::create([
  79. 'name' => $data['name'],
  80. 'email' => $data['email'],
  81. 'password' => Hash::make($data['password']),
  82. ]);
  83. }
  84. }