Social::user()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace NukaCode\Users\Models\User;
4
5
use App\Models\BaseModel;
6
use Laravel\Socialite\AbstractUser;
7
8
class Social extends BaseModel
9
{
10
    protected $table = 'user_socials';
11
12
    protected $fillable = [
13
        'user_id',
14
        'provider',
15
        'social_id',
16
        'email',
17
        'avatar',
18
        'token',
19
        'refresh_token',
20
        'expires_in'
21
    ];
22
23
    public function updateFromProvider(AbstractUser $socialUser, $provider)
24
    {
25
        $refreshToken = isset($socialUser->refreshToken) && $socialUser->refreshToken
26
            ? $socialUser->refreshToken
27
            : null;
28
29
        $attributes = [
30
            'user_id'       => $this->user_id,
31
            'provider'      => $provider,
32
            'social_id'     => $socialUser->getId(),
33
            'email'         => $socialUser->getEmail(),
34
            'avatar'        => $socialUser->getAvatar(),
35
            'token'         => $socialUser->token,
36
            'refresh_token' => $refreshToken,
37
            'expires_in'    => $socialUser->expiresIn,
38
        ];
39
40
        $this->updateOrCreate(array_only($attributes, ['user_id', 'provider', 'email']), $attributes);
41
    }
42
43
    public function user()
44
    {
45
        return $this->belongsTo(config('auth.providers.users.model'), 'user_id');
46
    }
47
}
48