Allow filtering when return options are set
authorThomas Schüttler <tschuettler@oxfam.de>
Mon, 31 Jul 2017 10:30:23 +0000 (12:30 +0200)
committerThomas Schüttler <tschuettler@oxfam.de>
Thu, 3 Aug 2017 09:54:10 +0000 (11:54 +0200)
api/v3/Extension.php
tests/phpunit/api/v3/ExtensionTest.php

index bb3735ca79dae7cf95cf075646043d4ae3af5ff7..b618a37e83e7484ee234d37147e20ccaf034669f 100644 (file)
@@ -359,7 +359,10 @@ function civicrm_api3_extension_get($params) {
     }
   }
   $options = _civicrm_api3_get_options_from_params($params);
-  $returnFields = !empty($options['return']) ? $options['return'] : array('id');
+  $returnFields = !empty($options['return']) ? $options['return'] : array();
+  if (!in_array('id', $returnFields)) {
+    $returnFields = array_merge($returnFields, array('id'));
+  }
   return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', $returnFields);
 }
 
index 2353d156e4848a80f5e482614593a9d95552c99d..bb04b2a7175b3d80d1b99598627c82e04dab0382 100644 (file)
@@ -109,7 +109,7 @@ class api_v3_ExtensionTest extends CiviUnitTestCase {
    * Test that extension get can be filtered by id.
    */
   public function testGetExtensionByID() {
-    $result = $this->callAPISuccess('extension', 'get', array('id' => 2));
+    $result = $this->callAPISuccess('extension', 'get', array('id' => 2, 'return' => array('label')));
     $this->assertEquals(1, $result['count']);
   }