From 3e1a3e24bbab3dcffad759ef6f2e6bfcb84fbba1 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sun, 8 Nov 2020 00:14:36 +0200 Subject: [PATCH] Added missing methods and models --- src/Appwrite/Utopia/Response.php | 12 ++++++++++++ src/Appwrite/Utopia/Response/Model.php | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index a1b343446..e155d99d7 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -27,6 +27,7 @@ use Appwrite\Utopia\Response\Model\Team; use Appwrite\Utopia\Response\Model\Locale; use Appwrite\Utopia\Response\Model\Log; use Appwrite\Utopia\Response\Model\Membership; +use Appwrite\Utopia\Response\Model\Permissions; use Appwrite\Utopia\Response\Model\Phone; use Appwrite\Utopia\Response\Model\Platform; use Appwrite\Utopia\Response\Model\Project; @@ -148,6 +149,7 @@ class Response extends SwooleResponse ->setModel(new BaseList('Currencies List', self::MODEL_CURRENCY_LIST, 'currencies', self::MODEL_CURRENCY)) ->setModel(new BaseList('Phones List', self::MODEL_PHONE_LIST, 'phones', self::MODEL_PHONE)) // Entities + ->setModel(new Permissions()) ->setModel(new Any()) ->setModel(new Collection()) ->setModel(new Rule()) @@ -215,6 +217,16 @@ class Response extends SwooleResponse return $this->models[$key]; } + /** + * Get Models List + * + * @return Model[] + */ + public function getModels(): array + { + return $this->models; + } + /** * Validate response objects and outputs * the response according to given format type diff --git a/src/Appwrite/Utopia/Response/Model.php b/src/Appwrite/Utopia/Response/Model.php index 225aa685b..4c82e359e 100644 --- a/src/Appwrite/Utopia/Response/Model.php +++ b/src/Appwrite/Utopia/Response/Model.php @@ -4,6 +4,12 @@ namespace Appwrite\Utopia\Response; abstract class Model { + const TYPE_STRING = 'string'; + const TYPE_INTEGER = 'integer'; + const TYPE_FLOAT = 'float'; + const TYPE_BOOLEAN = 'boolean'; + const TYPE_JSON = 'json'; + /** * @var bool */ @@ -44,6 +50,7 @@ abstract class Model protected function addRule(string $key, array $options): self { $this->rules[$key] = array_merge([ + 'require' => true, 'type' => '', 'description' => '', 'default' => null, @@ -54,6 +61,19 @@ abstract class Model return $this; } + public function getRequired() + { + $list = []; + + foreach($this->rules as $key => $rule) { + if(isset($rule['require']) || $rule['require']) { + $list[] = $key; + } + } + + return $list; + } + public function isAny(): bool { return $this->any;