42 lines
839 B
PHP
42 lines
839 B
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Http\Services\PhantasialandApi;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class ThemeParkUser extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $fillable = [
|
|
'username',
|
|
'password',
|
|
];
|
|
|
|
|
|
public function authenticate(): void
|
|
{
|
|
if(!$this->isTokenExpired()) {
|
|
return;
|
|
}
|
|
|
|
$this->refreshToken();
|
|
}
|
|
|
|
private function refreshToken(): void
|
|
{
|
|
$api = app(PhantasialandApi::class);
|
|
$token = $api->getAccessToken($this);
|
|
$this->access_token = $token;
|
|
$this->access_token_expires_at = now()->addMonths(11);
|
|
$this->save();
|
|
}
|
|
|
|
private function isTokenExpired(): bool
|
|
{
|
|
return $this?->access_token_expires_at < now();
|
|
}
|
|
}
|