TenantAtlas/app/Services/Providers/MicrosoftGraphOptionsResolver.php

32 lines
857 B
PHP

<?php
namespace App\Services\Providers;
use App\Models\Tenant;
final class MicrosoftGraphOptionsResolver
{
public function __construct(
private readonly ProviderConnectionResolver $connections,
private readonly ProviderGateway $gateway,
) {}
/**
* @return array<string, mixed>
*/
public function resolveForTenant(Tenant $tenant, array $overrides = []): array
{
$resolution = $this->connections->resolveDefault($tenant, 'microsoft');
if (! $resolution->resolved || $resolution->connection === null) {
throw ProviderConfigurationRequiredException::forTenant(
$tenant,
provider: 'microsoft',
resolution: $resolution,
);
}
return $this->gateway->graphOptions($resolution->connection, $overrides);
}
}