aboutsummaryrefslogtreecommitdiffstats
path: root/apps/cloud_federation_api/lib/Config.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/cloud_federation_api/lib/Config.php')
-rw-r--r--apps/cloud_federation_api/lib/Config.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/apps/cloud_federation_api/lib/Config.php b/apps/cloud_federation_api/lib/Config.php
new file mode 100644
index 00000000000..23788c26dc9
--- /dev/null
+++ b/apps/cloud_federation_api/lib/Config.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\CloudFederationAPI;
+
+use OCP\Federation\ICloudFederationProviderManager;
+use Psr\Log\LoggerInterface;
+
+/**
+ * Class config
+ *
+ * handles all the config parameters
+ *
+ * @package OCA\CloudFederationAPI
+ */
+class Config {
+
+ public function __construct(
+ private ICloudFederationProviderManager $cloudFederationProviderManager,
+ private LoggerInterface $logger,
+ ) {
+ }
+
+ /**
+ * get a list of supported share types
+ *
+ * @param string $resourceType
+ * @return array
+ */
+ public function getSupportedShareTypes($resourceType) {
+ try {
+ $provider = $this->cloudFederationProviderManager->getCloudFederationProvider($resourceType);
+ return $provider->getSupportedShareTypes();
+ } catch (\Exception $e) {
+ $this->logger->error('Failed to create federation provider', ['exception' => $e]);
+ return [];
+ }
+ }
+}