12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
-
- namespace App\Actions\FilamentCompanies;
-
- use Illuminate\Auth\Access\AuthorizationException;
- use Illuminate\Support\Facades\Gate;
- use Laravel\Socialite\Contracts\User;
- use Wallo\FilamentCompanies\ConnectedAccount;
- use Wallo\FilamentCompanies\Contracts\UpdatesConnectedAccounts;
-
- class UpdateConnectedAccount implements UpdatesConnectedAccounts
- {
- /**
- * Update a given connected account.
- *
- * @throws AuthorizationException
- */
- public function update(mixed $user, ConnectedAccount $connectedAccount, string $provider, User $providerUser): ConnectedAccount
- {
- Gate::forUser($user)->authorize('update', $connectedAccount);
-
- $connectedAccount->forceFill([
- 'provider' => strtolower($provider),
- 'provider_id' => $providerUser->getId(),
- 'name' => $providerUser->getName(),
- 'nickname' => $providerUser->getNickname(),
- 'email' => $providerUser->getEmail(),
- 'avatar_path' => $providerUser->getAvatar(),
- 'token' => $providerUser->token,
- 'secret' => $providerUser->tokenSecret ?? null,
- 'refresh_token' => $providerUser->refreshToken ?? null,
- 'expires_at' => property_exists($providerUser, 'expiresIn') ? now()->addSeconds($providerUser->expiresIn) : null,
- ])->save();
-
- return $connectedAccount;
- }
- }
|