]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(OCM): Make the public API only rely on OCP 41151/head
authorJoas Schilling <coding@schilljs.com>
Thu, 12 Oct 2023 10:24:03 +0000 (12:24 +0200)
committerJoas Schilling <coding@schilljs.com>
Fri, 27 Oct 2023 08:35:20 +0000 (10:35 +0200)
Signed-off-by: Joas Schilling <coding@schilljs.com>
lib/private/OCM/Model/OCMProvider.php
lib/private/OCM/Model/OCMResource.php
lib/public/OCM/IOCMProvider.php
lib/public/OCM/IOCMResource.php

index 44f4fbebc107cf0954fec2e2d22038c8d13f44a1..1a8d943f79fae45e9b9e24334fdbb1d95c59549a 100644 (file)
@@ -26,27 +26,27 @@ declare(strict_types=1);
 
 namespace OC\OCM\Model;
 
-use JsonSerializable;
 use OCP\OCM\Exceptions\OCMArgumentException;
 use OCP\OCM\Exceptions\OCMProviderException;
 use OCP\OCM\IOCMProvider;
+use OCP\OCM\IOCMResource;
 
 /**
  * @since 28.0.0
  */
-class OCMProvider implements IOCMProvider, JsonSerializable {
+class OCMProvider implements IOCMProvider {
        private bool $enabled = false;
        private string $apiVersion = '';
        private string $endPoint = '';
-       /** @var OCMResource[] */
+       /** @var IOCMResource[] */
        private array $resourceTypes = [];
 
        /**
         * @param bool $enabled
         *
-        * @return OCMProvider
+        * @return $this
         */
-       public function setEnabled(bool $enabled): self {
+       public function setEnabled(bool $enabled): static {
                $this->enabled = $enabled;
 
                return $this;
@@ -62,9 +62,9 @@ class OCMProvider implements IOCMProvider, JsonSerializable {
        /**
         * @param string $apiVersion
         *
-        * @return OCMProvider
+        * @return $this
         */
-       public function setApiVersion(string $apiVersion): self {
+       public function setApiVersion(string $apiVersion): static {
                $this->apiVersion = $apiVersion;
 
                return $this;
@@ -80,9 +80,9 @@ class OCMProvider implements IOCMProvider, JsonSerializable {
        /**
         * @param string $endPoint
         *
-        * @return OCMProvider
+        * @return $this
         */
-       public function setEndPoint(string $endPoint): self {
+       public function setEndPoint(string $endPoint): static {
                $this->endPoint = $endPoint;
 
                return $this;
@@ -96,29 +96,29 @@ class OCMProvider implements IOCMProvider, JsonSerializable {
        }
 
        /**
-        * @param OCMResource $resource
+        * @param IOCMResource $resource
         *
         * @return $this
         */
-       public function addResourceType(OCMResource $resource): self {
+       public function addResourceType(IOCMResource $resource): static {
                $this->resourceTypes[] = $resource;
 
                return $this;
        }
 
        /**
-        * @param OCMResource[] $resourceTypes
+        * @param IOCMResource[] $resourceTypes
         *
-        * @return OCMProvider
+        * @return $this
         */
-       public function setResourceTypes(array $resourceTypes): self {
+       public function setResourceTypes(array $resourceTypes): static {
                $this->resourceTypes = $resourceTypes;
 
                return $this;
        }
 
        /**
-        * @return OCMResource[]
+        * @return IOCMResource[]
         */
        public function getResourceTypes(): array {
                return $this->resourceTypes;
@@ -151,11 +151,11 @@ class OCMProvider implements IOCMProvider, JsonSerializable {
         *
         * @param array $data
         *
-        * @return self
+        * @return $this
         * @throws OCMProviderException in case a descent provider cannot be generated from data
         * @see self::jsonSerialize()
         */
-       public function import(array $data): self {
+       public function import(array $data): static {
                $this->setEnabled(is_bool($data['enabled'] ?? '') ? $data['enabled'] : false)
                         ->setApiVersion((string)($data['apiVersion'] ?? ''))
                         ->setEndPoint($data['endPoint'] ?? '');
index 12948aa8949ac8ffcb5cb3ad5e2af56a3dc94095..c4a91f2eabf637da4495a351980449cdbd068f40 100644 (file)
@@ -26,13 +26,12 @@ declare(strict_types=1);
 
 namespace OC\OCM\Model;
 
-use JsonSerializable;
 use OCP\OCM\IOCMResource;
 
 /**
  * @since 28.0.0
  */
-class OCMResource implements IOCMResource, JsonSerializable {
+class OCMResource implements IOCMResource {
        private string $name = '';
        /** @var string[] */
        private array $shareTypes = [];
@@ -42,9 +41,9 @@ class OCMResource implements IOCMResource, JsonSerializable {
        /**
         * @param string $name
         *
-        * @return OCMResource
+        * @return $this
         */
-       public function setName(string $name): self {
+       public function setName(string $name): static {
                $this->name = $name;
 
                return $this;
@@ -60,9 +59,9 @@ class OCMResource implements IOCMResource, JsonSerializable {
        /**
         * @param string[] $shareTypes
         *
-        * @return OCMResource
+        * @return $this
         */
-       public function setShareTypes(array $shareTypes): self {
+       public function setShareTypes(array $shareTypes): static {
                $this->shareTypes = $shareTypes;
 
                return $this;
@@ -80,7 +79,7 @@ class OCMResource implements IOCMResource, JsonSerializable {
         *
         * @return $this
         */
-       public function setProtocols(array $protocols): self {
+       public function setProtocols(array $protocols): static {
                $this->protocols = $protocols;
 
                return $this;
@@ -98,17 +97,16 @@ class OCMResource implements IOCMResource, JsonSerializable {
         *
         * @param array $data
         *
-        * @return self
+        * @return $this
         * @see self::jsonSerialize()
         */
-       public function import(array $data): self {
+       public function import(array $data): static {
                return $this->setName((string)($data['name'] ?? ''))
                                        ->setShareTypes($data['shareTypes'] ?? [])
                                        ->setProtocols($data['protocols'] ?? []);
        }
 
        /**
-        *
         * @return array{
         *     name: string,
         *     shareTypes: string[],
index f99ccf1cd238e4281bfd103d70715d69feac18da..6eebf13a589553a0c6e86fdd91e7b92234ad051d 100644 (file)
@@ -26,7 +26,7 @@ declare(strict_types=1);
 
 namespace OCP\OCM;
 
-use OC\OCM\Model\OCMResource;
+use JsonSerializable;
 use OCP\OCM\Exceptions\OCMArgumentException;
 use OCP\OCM\Exceptions\OCMProviderException;
 
@@ -35,16 +35,16 @@ use OCP\OCM\Exceptions\OCMProviderException;
  * @link https://github.com/cs3org/OCM-API/
  * @since 28.0.0
  */
-interface IOCMProvider {
+interface IOCMProvider extends JsonSerializable {
        /**
         * enable OCM
         *
         * @param bool $enabled
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setEnabled(bool $enabled): self;
+       public function setEnabled(bool $enabled): static;
 
        /**
         * is set as enabled ?
@@ -59,10 +59,10 @@ interface IOCMProvider {
         *
         * @param string $apiVersion
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setApiVersion(string $apiVersion): self;
+       public function setApiVersion(string $apiVersion): static;
 
        /**
         * returns API version
@@ -77,10 +77,10 @@ interface IOCMProvider {
         *
         * @param string $endPoint
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setEndPoint(string $endPoint): self;
+       public function setEndPoint(string $endPoint): static;
 
        /**
         * get configured endpoint
@@ -93,22 +93,22 @@ interface IOCMProvider {
        /**
         * add a single resource to the object
         *
-        * @param OCMResource $resource
+        * @param IOCMResource $resource
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function addResourceType(OCMResource $resource): self;
+       public function addResourceType(IOCMResource $resource): static;
 
        /**
         * set resources
         *
-        * @param OCMResource[] $resourceTypes
+        * @param IOCMResource[] $resourceTypes
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setResourceTypes(array $resourceTypes): self;
+       public function setResourceTypes(array $resourceTypes): static;
 
        /**
         * get all set resources
@@ -135,9 +135,24 @@ interface IOCMProvider {
         *
         * @param array<string, int|string|bool|array> $data
         *
-        * @return self
+        * @return $this
         * @throws OCMProviderException in case a descent provider cannot be generated from data
         * @since 28.0.0
         */
-       public function import(array $data): self;
+       public function import(array $data): static;
+
+       /**
+        * @return array{
+        *     enabled: bool,
+        *     apiVersion: string,
+        *     endPoint: string,
+        *     resourceTypes: array{
+        *         name: string,
+        *         shareTypes: string[],
+        *         protocols: array<string, string>
+        *     }[]
+        * }
+        * @since 28.0.0
+        */
+       public function jsonSerialize(): array;
 }
index 381af61cecc4cc160d4852a65a12f740a8e8886d..242c77116f1949104c058e1194eda8af54450016 100644 (file)
@@ -26,22 +26,24 @@ declare(strict_types=1);
 
 namespace OCP\OCM;
 
+use JsonSerializable;
+
 /**
  * Model based on the Open Cloud Mesh Discovery API
  *
  * @link https://github.com/cs3org/OCM-API/
  * @since 28.0.0
  */
-interface IOCMResource {
+interface IOCMResource extends JsonSerializable {
        /**
         * set name of the resource
         *
         * @param string $name
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setName(string $name): self;
+       public function setName(string $name): static;
 
        /**
         * get name of the resource
@@ -56,10 +58,10 @@ interface IOCMResource {
         *
         * @param string[] $shareTypes
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setShareTypes(array $shareTypes): self;
+       public function setShareTypes(array $shareTypes): static;
 
        /**
         * get share types
@@ -74,10 +76,10 @@ interface IOCMResource {
         *
         * @param array<string, string> $protocols
         *
-        * @return self
+        * @return $this
         * @since 28.0.0
         */
-       public function setProtocols(array $protocols): self;
+       public function setProtocols(array $protocols): static;
 
        /**
         * get configured protocols
@@ -92,8 +94,18 @@ interface IOCMResource {
         *
         * @param array $data
         *
-        * @return self
+        * @return $this
+        * @since 28.0.0
+        */
+       public function import(array $data): static;
+
+       /**
+        * @return array{
+        *     name: string,
+        *     shareTypes: string[],
+        *     protocols: array<string, string>
+        * }
         * @since 28.0.0
         */
-       public function import(array $data): self;
+       public function jsonSerialize(): array;
 }