From d444bb66b87aef4761a49a81897ef8298e09d6a3 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Fri, 15 Aug 2025 01:33:35 +1200 Subject: [PATCH] Truemaps for fast lookup --- .../Utopia/Database/Validator/Operation.php | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Appwrite/Utopia/Database/Validator/Operation.php b/src/Appwrite/Utopia/Database/Validator/Operation.php index ac585e26bc..25b9adcd9a 100644 --- a/src/Appwrite/Utopia/Database/Validator/Operation.php +++ b/src/Appwrite/Utopia/Database/Validator/Operation.php @@ -16,16 +16,24 @@ class Operation extends Validator 'data', ]; - /** @var array */ + /** @var array */ + private array $requiresDocumentId = [ + 'create' => true, + 'update' => true, + 'upsert' => true, + 'delete' => true, + ]; + + /** @var array */ private array $actions = [ - 'create', - 'update', - 'upsert', - 'delete', - 'bulkCreate', - 'bulkUpdate', - 'bulkUpsert', - 'bulkDelete', + 'create' => true, + 'update' => true, + 'upsert' => true, + 'delete' => true, + 'bulkCreate' => true, + 'bulkUpdate' => true, + 'bulkUpsert' => true, + 'bulkDelete' => true, ]; public function getDescription(): string @@ -66,7 +74,7 @@ class Operation extends Validator } // Validate action - if (!\in_array($value['action'], $this->actions, true)) { + if (!isset($this->actions[$value['action']])) { $this->description = "Key 'action' must be one of: " . \implode(', ', $this->actions); return false; }