api tests fix
authormonishdeb <monish.deb@webaccessglobal.com>
Thu, 4 Jun 2015 22:29:51 +0000 (03:59 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Thu, 4 Jun 2015 22:29:51 +0000 (03:59 +0530)
CRM/Contact/BAO/Query.php

index b0a743bb99d3dd17f3438e2585e822c4a67ceb35..3f3d19b85857e1710a625233eeed1959bb2740b9 100644 (file)
@@ -5698,12 +5698,15 @@ AND   displayRelType.is_active = 1
       $pseduoOptions = CRM_Core_PseudoConstant::get($daoName, $fieldName, $pseduoExtraParam = array());
     }
 
+    //API usually have fieldValue format as array(operator => array(values)),
+    //so we need to separate operator out of fieldValue param
+    if (is_array($fieldValue) && in_array(key($fieldValue), CRM_Core_DAO::acceptedSQLOperators(), TRUE)) {
+      $op = key($fieldValue);
+      $fieldValue = $fieldValue[$op];
+    }
+
     if (is_array($fieldValue)) {
       $qillString = array();
-      if (in_array(key($fieldValue), CRM_Core_DAO::acceptedSQLOperators(), TRUE)) {
-        $op = key($fieldValue);
-        $fieldValue = $fieldValue[$op];
-      }
       if (!empty($pseduoOptions)) {
         foreach ((array) $fieldValue as $val) {
           $qillString[] = $pseduoOptions[$val];