summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/src/Common/Api/Operation.php
diff options
context:
space:
mode:
authorEoleDev <EoleDev@outlook.fr>2016-04-14 16:24:44 +0200
committerEoleDev <EoleDev@outlook.fr>2016-04-14 16:24:44 +0200
commit24bb5fefbdf93ce0969b7f56cc46c459ebb82a95 (patch)
tree531fc8b774c035040774234efba780a3d4fe9242 /server/vendor/php-opencloud/common/src/Common/Api/Operation.php
parent646af6fd4d14c5b5edb1372e5f68ed9bdc35b3d2 (diff)
Mise a jour et nettoyage depot
Diffstat (limited to 'server/vendor/php-opencloud/common/src/Common/Api/Operation.php')
-rw-r--r--server/vendor/php-opencloud/common/src/Common/Api/Operation.php134
1 files changed, 0 insertions, 134 deletions
diff --git a/server/vendor/php-opencloud/common/src/Common/Api/Operation.php b/server/vendor/php-opencloud/common/src/Common/Api/Operation.php
deleted file mode 100644
index 927af5a..0000000
--- a/server/vendor/php-opencloud/common/src/Common/Api/Operation.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php declare(strict_types=1);
-
-namespace OpenCloud\Common\Api;
-
-/**
- * This class represents an OpenCloud API operation. It encapsulates most aspects of the REST operation: its HTTP
- * method, the URL path, its top-level JSON key, and all of its {@see Parameter} objects.
- *
- * An operation not only represents a remote operation, but it also provides the mechanism for executing it
- * over HTTP. To do this, it uses a {@see ClientInterface} that allows a {@see GuzzleHttp\Message\Request}
- * to be created from the user values provided. Once this request is assembled, it is then sent to the
- * remote API and the response is returned to whoever first invoked the Operation class.
- *
- * @package OpenCloud\Common\Api
- */
-class Operation
-{
- /** @var string The HTTP method */
- private $method;
-
- /** @var string The URL path */
- private $path;
-
- /** @var string The top-level JSON key */
- private $jsonKey;
-
- /** @var []Parameter The parameters of this operation */
- private $params;
-
- /**
- * @param array $definition The data definition (in array form) that will populate this
- * operation. Usually this is retrieved from an {@see ApiInterface}
- * object method.
- */
- public function __construct(array $definition)
- {
- $this->method = $definition['method'];
- $this->path = $definition['path'];
-
- if (isset($definition['jsonKey'])) {
- $this->jsonKey = $definition['jsonKey'];
- }
-
- $this->params = self::toParamArray($definition['params']);
- }
-
- /**
- * @return string
- */
- public function getPath(): string
- {
- return $this->path;
- }
-
- /**
- * @return string
- */
- public function getMethod(): string
- {
- return $this->method;
- }
-
- /**
- * Indicates whether this operation supports a parameter.
- *
- * @param $key The name of a parameter
- *
- * @return bool
- */
- public function hasParam(string $key): bool
- {
- return isset($this->params[$key]);
- }
-
- /**
- * @param $name
- *
- * @return Parameter
- */
- public function getParam(string $name)
- {
- return isset($this->params[$name]) ? $this->params[$name] : null;
- }
-
- /**
- * @return string
- */
- public function getJsonKey(): string
- {
- return $this->jsonKey ?: '';
- }
-
- /**
- * A convenience method that will take a generic array of data and convert it into an array of
- * {@see Parameter} objects.
- *
- * @param array $data A generic data array
- *
- * @return array
- */
- public static function toParamArray(array $data): array
- {
- $params = [];
-
- foreach ($data as $name => $param) {
- $params[$name] = new Parameter($param + ['name' => $name]);
- }
-
- return $params;
- }
-
- /**
- * This method will validate all of the user-provided values and throw an exception if any
- * failures are detected. This is useful for basic sanity-checking before a request is
- * serialized and sent to the API.
- *
- * @param array $userValues The user-defined values
- *
- * @return bool TRUE if validation passes
- * @throws \Exception If validate fails
- */
- public function validate(array $userValues): bool
- {
- foreach ($this->params as $paramName => $param) {
- if (array_key_exists($paramName, $userValues)) {
- $param->validate($userValues[$paramName]);
- } elseif ($param->isRequired()) {
- throw new \Exception(sprintf('"%s" is a required option, but it was not provided', $paramName));
- }
- }
-
- return true;
- }
-} \ No newline at end of file