From 5839a54b604d972c11192105896124da38fb702a Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 3 Aug 2018 13:02:23 -0700 Subject: [PATCH] Raise a tailored error when calling "transaction.search" with empty "phids" constraint Summary: Ref T13164. See PHI725. For real "*.search" methods, parameters get validated and you get an error if you use an empty list as a constraint. Since "transaction.search" isn't really a normal "*.search" method, it doesn't benefit from this. Just do the check manually for now. Test Plan: Made `transaction.search` calls with no constraints (got results); a valid costraint (got fewer results); and an invalid empty constraint (got an exception). Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13164 Differential Revision: https://secure.phabricator.com/D19562 --- .../conduit/TransactionSearchConduitAPIMethod.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/applications/transactions/conduit/TransactionSearchConduitAPIMethod.php b/src/applications/transactions/conduit/TransactionSearchConduitAPIMethod.php index 3b040ea2c3..0394432ff3 100644 --- a/src/applications/transactions/conduit/TransactionSearchConduitAPIMethod.php +++ b/src/applications/transactions/conduit/TransactionSearchConduitAPIMethod.php @@ -79,6 +79,14 @@ final class TransactionSearchConduitAPIMethod )); $with_phids = idx($constraints, 'phids'); + + if ($with_phids === array()) { + throw new Exception( + pht( + 'Constraint "phids" to "transaction.search" requires nonempty list, '. + 'empty list provided.')); + } + if ($with_phids) { $xaction_query->withPHIDs($with_phids); }