Merge pull request #23892 from eileenmcnaughton/order
[civicrm-core.git] / api / v3 / Domain.php
index de3f425b76f588777161f46fde1bd5fdb691f968..974826b30ec1755a7c5f75db66ab024d767668f4 100644 (file)
  */
 function civicrm_api3_domain_get($params) {
 
-  $params['version'] = CRM_Utils_Array::value('domain_version', $params);
+  $params['version'] = $params['domain_version'] ?? NULL;
   unset($params['version']);
 
-  $bao = new CRM_Core_BAO_Domain();
   if (!empty($params['current_domain'])) {
-    $domainBAO = CRM_Core_Config::domainID();
-    $params['id'] = $domainBAO;
+    $params['id'] = CRM_Core_Config::domainID();
   }
   if (!empty($params['options']) && !empty($params['options']['is_count'])) {
     return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
   }
 
-  _civicrm_api3_dao_set_filter($bao, $params, TRUE);
-  $domains = _civicrm_api3_dao_to_array($bao, $params, TRUE, 'Domain');
+  // If requesting current domain, read from cache
+  if (!empty($params['id']) && $params['id'] == CRM_Core_Config::domainID()) {
+    $bao = CRM_Core_BAO_Domain::getDomain();
+    $domains = [$params['id'] => $bao->toArray()];
+  }
+  else {
+    $bao = new CRM_Core_BAO_Domain();
+    _civicrm_api3_dao_set_filter($bao, $params, TRUE);
+    $domains = _civicrm_api3_dao_to_array($bao, $params, TRUE, 'Domain');
+  }
 
   foreach ($domains as $domain) {
     if (!empty($domain['contact_id'])) {
@@ -54,7 +60,7 @@ function civicrm_api3_domain_get($params) {
       ];
 
       if (!empty($values['location']['email'])) {
-        $domain['domain_email'] = CRM_Utils_Array::value('email', $values['location']['email'][1]);
+        $domain['domain_email'] = $values['location']['email'][1]['email'] ?? NULL;
       }
 
       if (!empty($values['location']['phone'])) {