Customer account sync with Intuit
This commit is contained in:
@@ -4,14 +4,25 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
use App\Traits\SiteID;
|
||||
|
||||
class ProviderOauth extends Model
|
||||
{
|
||||
use SiteID;
|
||||
|
||||
protected $table = 'provider_oauth';
|
||||
|
||||
protected $fillable = ['name','active'];
|
||||
|
||||
/* RELATIONS */
|
||||
|
||||
public function accounts()
|
||||
{
|
||||
return $this->belongsToMany(Account::class,'account_provider')
|
||||
->where('account_provider.site_id',$this->site_id)
|
||||
->withPivot('ref','synctoken','created_at','updated_at');
|
||||
}
|
||||
|
||||
public function tokens()
|
||||
{
|
||||
return $this->hasMany(ProviderToken::class);
|
||||
@@ -21,4 +32,26 @@ class ProviderOauth extends Model
|
||||
{
|
||||
return $this->hasMany(UserOauth::class);
|
||||
}
|
||||
|
||||
/* METHODS */
|
||||
|
||||
public function api_class(): ?string
|
||||
{
|
||||
return config('services.provider.'.strtolower($this->name).'.api');
|
||||
}
|
||||
|
||||
public function API(ProviderToken $o,bool $tryprod=FALSE): mixed
|
||||
{
|
||||
return ($this->api_class() && $o->access_token) ? new ($this->api_class())($o,$tryprod) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Do we have API details for this supplier
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasAPIdetails(): bool
|
||||
{
|
||||
return $this->api_class() && $this->access_token && (! $this->hasAccessTokenExpired());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user