SocialAccountService   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 3
c 2
b 0
f 1
lcom 0
cbo 4
dl 0
loc 32
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B createOrGetUser() 0 29 3
1
<?php
2
namespace App;
3
4
use Laravel\Socialite\Contracts\User as ProviderUser;
5
6
class SocialAccountService {
7
8
    public function createOrGetUser(ProviderUser $providerUser){
9
10
        $account = SocialAccount::whereProvider('facebook')
11
            ->whereProviderUserId($providerUser->getId())
12
            ->first();
13
14
        if ($account) {
15
            return $account->user;
16
        } else {
17
            $account = new  SocialAccount([
18
                'provider_user_id' => $providerUser->getId(),
19
                'provider' => 'facebook'
20
            ]);
21
22
            $user = User::whereEmail($providerUser->getEmail())->first();
23
24
            if (!$user) {
25
                $user = User::create([
26
                     'email' => $providerUser->getEmail(),
27
                    'name' => $providerUser->getName(),
28
                ]);
29
            }
30
        }
31
        $account->user()->associate($user);
32
        $account->save();
33
34
        return $user;
35
36
    }
37
}