refactoring v1

This commit is contained in:
Milos Holba
2022-01-08 14:36:57 +01:00
parent 22733619d1
commit f017be476f
9 changed files with 284 additions and 670 deletions
@@ -1,6 +1,7 @@
<?php
namespace App\Users\Controllers\Authentication;
use App\Users\DTO\CreateUserData;
use App\Http\Controllers\Controller;
use App\Users\Actions\CreateNewUserAction;
use App\Users\Requests\RegisterUserRequest;
@@ -14,6 +15,8 @@ class RegisterAuthenticationController extends Controller
public function __invoke(RegisterUserRequest $request)
{
($this->createNewUser)($request);
$data = CreateUserData::fromRequest($request);
($this->createNewUser)($data);
}
}
@@ -1,56 +0,0 @@
<?php
namespace App\Users\Controllers\Authentication;
use App\Users\Models\User;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;
use App\Users\Actions\CreateNewUserAction;
use Illuminate\Contracts\Auth\StatefulGuard;
class SocialiteAuthenticationController extends Controller
{
public function __construct(
protected StatefulGuard $guard,
public CreateNewUserAction $createNewUser,
) {
}
public function redirect($provider)
{
$url = Socialite::driver($provider)->stateless()->redirect()->getTargetUrl();
return response()->json([
'url' => $url
]);
}
public function callback($provider)
{
// Get socialite user
if (app()->runningInConsole()) {
$provider_user = Socialite::driver($provider)->user();
} else {
$provider_user = Socialite::driver($provider)->stateless()->user();
}
// Check if user exist already
$user = User::whereEmail($provider_user->email)->first();
if($user) {
// Login User
$this->guard->login($user);
} else {
// Add user avatar from socialite
$provider_user->avatar = store_socialite_avatar($provider_user->avatar);
// Add provider name
$provider_user->oauth_provider = $provider;
// Create User
($this->createNewUser)($provider_user);
}
return response('Loged in', 200);
}
}