cloudIdManager->resolveCloudId($shareWith); $remoteDomain = $cloudId->getRemote(); try { $remoteProvider = $this->ocmDiscoveryService->discover($remoteDomain); $capabilities = $remoteProvider->getCapabilities(); $useExchangeToken = $capabilities->hasExchangeToken(); $this->logger->debug('OCM provider capabilities discovered', [ 'remote' => $remoteDomain, 'capabilities' => $capabilities->toArray(), 'useExchangeToken' => $useExchangeToken, ]); } catch (OCMProviderException $e) { $this->logger->warning('Failed to discover OCM provider, using legacy share method', [ 'remote' => $remoteDomain, 'exception' => $e->getMessage(), ]); } } catch (\InvalidArgumentException $e) { $this->logger->warning('Invalid cloud ID format, using legacy share method', [ 'shareWith' => $shareWith, 'exception' => $e->getMessage(), ]); } return new CloudFederationShare( $shareWith, $name, $description, $providerId, $owner, $ownerDisplayName, $sharedBy, $sharedByDisplayName, $shareType, $resourceType, $sharedSecret, $useExchangeToken, $remoteDomain ); } /** * get a Cloud FederationNotification object to prepare a notification you * want to send * * @return ICloudFederationNotification * * @since 14.0.0 */ #[\Override] public function getCloudFederationNotification() { return new CloudFederationNotification(); } }