Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
RefreshToken
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 6
42
0.00% covered (danger)
0.00%
0 / 1
 setCustomIdAttribute
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getCustomIdAttribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 accessToken
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 revoke
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 transient
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getConnectionName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Http\Models\Passport;
4
5use App\Http\Models\Moloquent;
6use App\Observers\RefreshTokenObserver;
7use Illuminate\Database\Eloquent\Attributes\ObservedBy;
8use Illuminate\Database\Eloquent\Relations\BelongsTo;
9use Laravel\Passport\Passport;
10
11#[ObservedBy([RefreshTokenObserver::class])]
12class RefreshToken extends Moloquent
13{
14    /**
15     * The database table used by the model.
16     *
17     * @var string
18     */
19    protected $table = 'oauth_refresh_tokens';
20    protected $fillable = ['id', 'custom_id', 'access_token_id', 'revoked', 'expires_at'];
21    // protected $primaryKey = 'id';
22    public $incrementing = false;
23    protected $keyType = 'string';
24
25    public function setCustomIdAttribute($value)
26    {
27        $this->attributes['id'] = $value;
28        $this->attributes['custom_id'] = $value;
29    }
30
31    public function getCustomIdAttribute($value = null)
32    {
33        return $this->attributes['custom_id'] ?? null;
34    }
35    /**
36     * The attributes that should be cast to native types.
37     *
38     * @var array
39     */
40    protected $casts = [
41        'expires_at' => 'datetime',
42        'revoked' => 'bool',
43    ];
44
45    /**
46     * Indicates if the model should be timestamped.
47     *
48     * @var bool
49     */
50    public $timestamps = false;
51
52    /**
53     * Get the access token that the refresh token belongs to.
54     */
55    public function accessToken(): BelongsTo
56    {
57        return $this->belongsTo(Passport::tokenModel());
58    }
59
60    /**
61     * Revoke the token instance.
62     */
63    public function revoke(): bool
64    {
65        return $this->forceFill(['revoked' => true])->save();
66    }
67
68    /**
69     * Determine if the token is a transient JWT token.
70     */
71    public function transient(): bool
72    {
73        return false;
74    }
75
76    /**
77     * Get the current connection name for the model.
78     */
79    public function getConnectionName(): ?string
80    {
81        return config('passport.storage.database.connection') ?? $this->connection;
82    }
83
84}