mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-14 23:22:52 +01:00
48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Invoice Ninja (https://invoiceninja.com).
|
||
|
*
|
||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||
|
*
|
||
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||
|
*
|
||
|
* @license https://www.elastic.co/licensing/elastic-license
|
||
|
*/
|
||
|
|
||
|
namespace App\Casts;
|
||
|
|
||
|
use App\DataMapper\QuickbooksSettings;
|
||
|
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
||
|
|
||
|
class QuickbooksSettingsCast implements CastsAttributes
|
||
|
{
|
||
|
public function get($model, string $key, $value, array $attributes)
|
||
|
{
|
||
|
$data = json_decode($value, true);
|
||
|
|
||
|
$qb = new QuickbooksSettings();
|
||
|
$qb->accessTokenKey = $data['accessTokenKey'];
|
||
|
$qb->refresh_token = $data['refresh_token'];
|
||
|
$qb->realmID = $data['realmID'];
|
||
|
$qb->accessTokenExpiresAt = $data['accessTokenExpiresAt'];
|
||
|
$qb->refreshTokenExpiresAt = $data['refreshTokenExpiresAt'];
|
||
|
$qb->settings = $data['settings'] ?? [];
|
||
|
|
||
|
return $qb;
|
||
|
}
|
||
|
|
||
|
public function set($model, string $key, $value, array $attributes)
|
||
|
{
|
||
|
return [
|
||
|
$key => json_encode([
|
||
|
'accessTokenKey' => $value->accessTokenKey,
|
||
|
'refresh_token' => $value->refresh_token,
|
||
|
'realmID' => $value->realmID,
|
||
|
'accessTokenExpiresAt' => $value->accessTokenExpiresAt,
|
||
|
'refreshTokenExpiresAt' => $value->refreshTokenExpiresAt,
|
||
|
'settings' => $value->settings,
|
||
|
])
|
||
|
];
|
||
|
}
|
||
|
}
|