From 0dea80c9dac6982f4dd22390d0a42dc356e1a91c Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Fri, 14 Apr 2023 22:03:16 +1200 Subject: [PATCH] Cache whether relation is a list --- app/controllers/api/databases.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/databases.php b/app/controllers/api/databases.php index 0fbb74f564..5146c945ea 100644 --- a/app/controllers/api/databases.php +++ b/app/controllers/api/databases.php @@ -2744,7 +2744,9 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/documents') continue; } - if (\is_array($related) && \array_values($related) === $related) { + $isList = \is_array($related) && \array_values($related) === $related; + + if ($isList) { $relations = $related; } else { $relations = [$related]; @@ -2786,7 +2788,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/documents') } } - if (\is_array($related) && \array_values($related) === $related) { + if ($isList) { $document->setAttribute($relationship->getAttribute('key'), \array_values($relations)); } else { $document->setAttribute($relationship->getAttribute('key'), \reset($relations)); @@ -3339,7 +3341,9 @@ App::patch('/v1/databases/:databaseId/collections/:collectionId/documents/:docum continue; } - if (\is_array($related) && \array_values($related) === $related) { + $isList = \is_array($related) && \array_values($related) === $related; + + if ($isList) { $relations = $related; } else { $relations = [$related]; @@ -3382,7 +3386,7 @@ App::patch('/v1/databases/:databaseId/collections/:collectionId/documents/:docum } } - if (\is_array($related) && \array_values($related) === $related) { + if ($isList) { $document->setAttribute($relationship->getAttribute('key'), \array_values($relations)); } else { $document->setAttribute($relationship->getAttribute('key'), \reset($relations));