$uriVariables * @param array $context * @return SubdomainAvailability | null * @throws FileNotFoundException */ public function provide(Operation $operation, array $uriVariables = [], array $context = []): ?SubdomainAvailability { if ($operation instanceof GetCollection) { throw new \RuntimeException('not supported', Response::HTTP_METHOD_NOT_ALLOWED); } $filters = $context['filters'] ?? []; $subdomain = $filters['subdomain'] ?? null; if ($subdomain === null) { throw new \RuntimeException('missing parameter: subdomain', Response::HTTP_BAD_REQUEST); } $available = !$this->subdomainService->isRegistered($subdomain) && !$this->subdomainService->isReservedSubdomain($subdomain); $subdomainAvailability = new SubdomainAvailability(); $subdomainAvailability->setSubdomain($subdomain); $subdomainAvailability->setAvailable($available); return $subdomainAvailability; } }