mirror of
https://github.com/nextcloud/server.git
synced 2026-04-15 22:11:17 -04:00
fix(OCM): Make the public API only rely on OCP
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
f103979b9f
commit
4dbe0677ad
4 changed files with 77 additions and 52 deletions
|
|
@ -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'] ?? '');
|
||||
|
|
|
|||
|
|
@ -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[],
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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): self;
|
||||
public function import(array $data): static;
|
||||
|
||||
/**
|
||||
* @return array{
|
||||
* name: string,
|
||||
* shareTypes: string[],
|
||||
* protocols: array<string, string>
|
||||
* }
|
||||
* @since 28.0.0
|
||||
*/
|
||||
public function jsonSerialize(): array;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue