diff --git a/app/Http/Controllers/Auth/GoogleController.php b/app/Http/Controllers/Auth/GoogleController.php index 99e1007..5e37888 100644 --- a/app/Http/Controllers/Auth/GoogleController.php +++ b/app/Http/Controllers/Auth/GoogleController.php @@ -59,12 +59,7 @@ class GoogleController extends Controller if (!$user) { // auto register - $customer = $this->memberAuthRepository->register([ - 'email' => $email, - 'name' => $name, - ]); - - $user = $customer->user; + $user = $this->memberAuthRepository->loginGoogle($name, $email, $avatar); } diff --git a/app/Repositories/Member/Auth/MemberAuthRepository.php b/app/Repositories/Member/Auth/MemberAuthRepository.php index 15727a6..2499b69 100644 --- a/app/Repositories/Member/Auth/MemberAuthRepository.php +++ b/app/Repositories/Member/Auth/MemberAuthRepository.php @@ -350,7 +350,7 @@ class MemberAuthRepository $customer = Customer::create([ 'number' => $number, 'name' => $data['name'], - 'phone' => $data['phone'] ?? '08', + 'phone' => $data['phone'] ?? null, 'email' => $data['email'] ?? null, 'referal' => $data['referral'] ?? null, 'company' => 'AGI', @@ -429,4 +429,26 @@ class MemberAuthRepository throw $e; } } + + public function loginGoogle($name, $email, $photo = null) + { + // check users table + $user = User::where('email', $email)->first(); + + if ($user == null) { + $role = Role::where("name","CUSTOMER")->firstOrCreate([ + "name" => "CUSTOMER" + ]); + + $user = User::create([ + 'name'=> $name, + 'email'=> $email, + 'password' => bcrypt(str()->random(8) . uniqid()), + 'photo' => $photo, + 'role_id'=> $role->id, // customer + ]); + } + + return $user; + } } diff --git a/lang/en/signin.php b/lang/en/signin.php index 1ac0253..9a6cd6b 100644 --- a/lang/en/signin.php +++ b/lang/en/signin.php @@ -40,4 +40,5 @@ return [ 'login_success' => 'Login successful', 'login_failed' => 'Login failed. Please try again.', 'password_field_required' => 'Password field is required for email login', + 'google_failed' => 'Login with Google failed. Please try again.', ]; diff --git a/lang/id/signin.php b/lang/id/signin.php index 9864256..9759b50 100644 --- a/lang/id/signin.php +++ b/lang/id/signin.php @@ -40,4 +40,5 @@ return [ 'login_success' => 'Login berhasil', 'login_failed' => 'Login gagal. Silakan coba lagi.', 'password_field_required' => 'Kolom kata sandi diperlukan untuk login email', + 'google_failed' => 'Login dengan Google gagal. Silakan coba lagi.', ]; \ No newline at end of file