diff options
author | Joas Schilling <coding@schilljs.com> | 2016-11-08 15:56:39 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2016-11-09 08:52:07 +0100 |
commit | 706b5c3fb6e9d911c147c92fc768df86990d09ea (patch) | |
tree | 0b7f8d67289ee4d7e667a85c92a662097812f6d2 /lib/private/RichObjectStrings | |
parent | 05cf1dab4ca7d69a837c2c9e890f078cef76c744 (diff) | |
download | nextcloud-server-706b5c3fb6e9d911c147c92fc768df86990d09ea.tar.gz nextcloud-server-706b5c3fb6e9d911c147c92fc768df86990d09ea.zip |
Use a php class for the definitions to avoid loading problems
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private/RichObjectStrings')
-rw-r--r-- | lib/private/RichObjectStrings/Validator.php | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/lib/private/RichObjectStrings/Validator.php b/lib/private/RichObjectStrings/Validator.php index 2729b4a3f1b..de7afa7a7e3 100644 --- a/lib/private/RichObjectStrings/Validator.php +++ b/lib/private/RichObjectStrings/Validator.php @@ -22,6 +22,7 @@ namespace OC\RichObjectStrings; +use OCP\RichObjectStrings\Definitions; use OCP\RichObjectStrings\InvalidObjectExeption; use OCP\RichObjectStrings\IValidator; @@ -31,9 +32,9 @@ use OCP\RichObjectStrings\IValidator; * @package OCP\RichObjectStrings * @since 9.2.0 */ -class Validator implements IValidator { +class Validator implements IValidator { - /** @var array[] */ + /** @var Definitions */ protected $definitions; /** @var array[] */ @@ -41,9 +42,11 @@ class Validator implements IValidator { /** * Constructor + * + * @param Definitions $definitions */ - public function __construct() { - $this->definitions = json_decode(file_get_contents(__DIR__ . '/../../public/RichObjectStrings/definitions.json'), true); + public function __construct(Definitions $definitions) { + $this->definitions = $definitions; } /** @@ -76,11 +79,13 @@ class Validator implements IValidator { * @throws InvalidObjectExeption */ protected function validateParameter(array $parameter) { - if (!isset($parameter['type']) || !isset($this->definitions[$parameter['type']])) { + if (!isset($parameter['type'])) { throw new InvalidObjectExeption('Object type is undefined'); } - $requiredParameters = $this->getRequiredParameters($parameter['type']); + $definition = $this->definitions->getDefinition($parameter['type']); + $requiredParameters = $this->getRequiredParameters($parameter['type'], $definition); + $missingKeys = array_diff($requiredParameters, array_keys($parameter)); if (!empty($missingKeys)) { throw new InvalidObjectExeption('Object is invalid'); @@ -89,15 +94,16 @@ class Validator implements IValidator { /** * @param string $type + * @param array $definition * @return string[] */ - protected function getRequiredParameters($type) { + protected function getRequiredParameters($type, $definition) { if (isset($this->requiredParameters[$type])) { return $this->requiredParameters[$type]; } $this->requiredParameters[$type] = []; - foreach ($this->definitions[$type]['parameters'] as $parameter => $data) { + foreach ($definition['parameters'] as $parameter => $data) { if ($data['required']) { $this->requiredParameters[$type][] = $parameter; } |