]> source.dussan.org Git - nextcloud-server.git/commitdiff
Make it possible to get the appdata folder using the public API 32339/head
authorCarl Schwan <carl@carlschwan.eu>
Wed, 11 May 2022 14:45:32 +0000 (16:45 +0200)
committerCarl Schwan <carl@carlschwan.eu>
Wed, 11 May 2022 21:28:37 +0000 (23:28 +0200)
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
lib/composer/composer/autoload_classmap.php
lib/composer/composer/autoload_static.php
lib/private/Files/AppData/Factory.php
lib/private/Server.php
lib/public/Files/AppData/IAppDataFactory.php [new file with mode: 0644]

index 233c374edbf3a25cfd1e6653ccee680ae25ab9fd..d1fb89098c5cc0fa0c979e83d3c4bc859f51bfb6 100644 (file)
@@ -236,6 +236,7 @@ return array(
     'OCP\\Federation\\ICloudIdManager' => $baseDir . '/lib/public/Federation/ICloudIdManager.php',
     'OCP\\Files' => $baseDir . '/lib/public/Files.php',
     'OCP\\Files\\AlreadyExistsException' => $baseDir . '/lib/public/Files/AlreadyExistsException.php',
+    'OCP\\Files\\AppData\\IAppDataFactory' => $baseDir . '/lib/public/Files/AppData/IAppDataFactory.php',
     'OCP\\Files\\Cache\\AbstractCacheEvent' => $baseDir . '/lib/public/Files/Cache/AbstractCacheEvent.php',
     'OCP\\Files\\Cache\\CacheEntryInsertedEvent' => $baseDir . '/lib/public/Files/Cache/CacheEntryInsertedEvent.php',
     'OCP\\Files\\Cache\\CacheEntryRemovedEvent' => $baseDir . '/lib/public/Files/Cache/CacheEntryRemovedEvent.php',
index 0b59d14657d4914fbc35d762fe1d8353b5eb8e4b..0aae979596c975537fd5be3afc7a76c9cee5d6c0 100644 (file)
@@ -265,6 +265,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
         'OCP\\Federation\\ICloudIdManager' => __DIR__ . '/../../..' . '/lib/public/Federation/ICloudIdManager.php',
         'OCP\\Files' => __DIR__ . '/../../..' . '/lib/public/Files.php',
         'OCP\\Files\\AlreadyExistsException' => __DIR__ . '/../../..' . '/lib/public/Files/AlreadyExistsException.php',
+        'OCP\\Files\\AppData\\IAppDataFactory' => __DIR__ . '/../../..' . '/lib/public/Files/AppData/IAppDataFactory.php',
         'OCP\\Files\\Cache\\AbstractCacheEvent' => __DIR__ . '/../../..' . '/lib/public/Files/Cache/AbstractCacheEvent.php',
         'OCP\\Files\\Cache\\CacheEntryInsertedEvent' => __DIR__ . '/../../..' . '/lib/public/Files/Cache/CacheEntryInsertedEvent.php',
         'OCP\\Files\\Cache\\CacheEntryRemovedEvent' => __DIR__ . '/../../..' . '/lib/public/Files/Cache/CacheEntryRemovedEvent.php',
index 6d7483158f6df310c4c5a9ef5703f5e6b5562012..03f8fdedcbd729dff5d0447cf909f60df959888f 100644 (file)
@@ -27,17 +27,16 @@ declare(strict_types=1);
 namespace OC\Files\AppData;
 
 use OC\SystemConfig;
+use OCP\Files\AppData\IAppDataFactory;
+use OCP\Files\IAppData;
 use OCP\Files\IRootFolder;
 
-class Factory {
+class Factory implements IAppDataFactory {
+       private IRootFolder $rootFolder;
+       private SystemConfig $config;
 
-       /** @var IRootFolder */
-       private $rootFolder;
-
-       /** @var SystemConfig */
-       private $config;
-
-       private $folders = [];
+       /** @var array<string, IAppData> */
+       private array $folders = [];
 
        public function __construct(IRootFolder $rootFolder,
                                                                SystemConfig $systemConfig) {
@@ -45,11 +44,7 @@ class Factory {
                $this->config = $systemConfig;
        }
 
-       /**
-        * @param string $appId
-        * @return AppData
-        */
-       public function get(string $appId): AppData {
+       public function get(string $appId): IAppData {
                if (!isset($this->folders[$appId])) {
                        $this->folders[$appId] = new AppData($this->rootFolder, $this->config, $appId);
                }
index 5308de21f51ae1c79a17f5ff08996ec91c86beca..1c330c0c74fe1e8b60176803601a4895ee71cac2 100644 (file)
@@ -1439,6 +1439,8 @@ class Server extends ServerContainer implements IServerContainer {
 
                $this->registerAlias(IMetadataManager::class, MetadataManager::class);
 
+               $this->registerAlias(\OCP\Files\AppData\IAppDataFactory::class, \OC\Files\AppData\Factory::class);
+
                $this->connectDispatcher();
        }
 
@@ -2300,7 +2302,7 @@ class Server extends ServerContainer implements IServerContainer {
 
        /**
         * @return \OCP\Files\IAppData
-        * @deprecated 20.0.0
+        * @deprecated 20.0.0 Use get(\OCP\Files\AppData\IAppDataFactory::class)->get($app) instead
         */
        public function getAppDataDir($app) {
                /** @var \OC\Files\AppData\Factory $factory */
diff --git a/lib/public/Files/AppData/IAppDataFactory.php b/lib/public/Files/AppData/IAppDataFactory.php
new file mode 100644 (file)
index 0000000..b689da3
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+namespace OCP\Files\AppData;
+
+use OCP\Files\IAppData;
+
+/**
+ * A factory allows you to get the AppData folder for an application.
+ *
+ * @since 25.0.0
+ */
+interface IAppDataFactory {
+
+       /**
+        * Get the AppData folder for the specified $appId
+        * @param string $appId
+        * @return IAppData
+        * @since 25.0.0
+        */
+       public function get(string $appId): IAppData;
+}