CRM-16173 - Move construction of RegistrationClient to container
authorTim Otten <totten@civicrm.org>
Wed, 25 Mar 2015 05:46:56 +0000 (22:46 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 14 Jul 2015 04:00:06 +0000 (21:00 -0700)
Civi/Core/Container.php
api/v3/Cxn.php

index 3df0ebfb1bf61bdbb0547c64e685d37d73dec8c1..93d5bdce0ec5245e5b75179b83355e4ebb2c8da0 100644 (file)
@@ -97,6 +97,12 @@ class Container {
     ))
       ->setFactoryService(self::SELF)->setFactoryMethod('createApiKernel');
 
+    $container->setDefinition('cxn_reg_client', new Definition(
+      '\Civi\Cxn\Rpc\RegistrationClient',
+      array()
+    ))
+      ->setFactoryService(self::SELF)->setFactoryMethod('createRegistrationClient');
+
     // Expose legacy singletons as services in the container.
     $singletons = array(
       'resources' => 'CRM_Core_Resources',
@@ -212,4 +218,10 @@ class Container {
     return $kernel;
   }
 
+  public function createRegistrationClient() {
+    $cxnStore = new \CRM_Cxn_CiviCxnStore();
+    $client = new \Civi\Cxn\Rpc\RegistrationClient(NULL, $cxnStore, \CRM_Cxn_BAO_Cxn::getSiteCallbackUrl());
+    $client->setLog(new \CRM_Utils_SystemLogger());
+    return $client;
+  }
 }
index 2d805d87bc963f0fd7a694693465b21bcd01dae1..a136fa7690b6dcf5da8a71a97cb205c4c8197623 100644 (file)
@@ -25,7 +25,6 @@
  +--------------------------------------------------------------------+
  */
 
-
 /**
  * @param array $params
  *   Array with keys:
@@ -54,11 +53,9 @@ function civicrm_api3_cxn_register($params) {
   }
   \Civi\Cxn\Rpc\AppMeta::validate($params['appMeta']);
 
-  // FIXME Move cxnStore and client into Container.
-  $cxnStore = new CRM_Cxn_CiviCxnStore();
   try {
-    $client = new \Civi\Cxn\Rpc\RegistrationClient(NULL, $cxnStore, CRM_Cxn_BAO_Cxn::getSiteCallbackUrl());
-    $client->setLog(new CRM_Utils_SystemLogger());
+    /** @var \Civi\Cxn\Rpc\RegistrationClient $client */
+    $client = \Civi\Core\Container::singleton()->get('cxn_reg_client');
     list($cxnId, $isOk) = $client->register($params['appMeta']);
     CRM_Cxn_BAO_Cxn::updateAppMeta($params['appMeta']);
   }
@@ -71,7 +68,7 @@ function civicrm_api3_cxn_register($params) {
     $result = array(
       'cxnId' => $cxnId,
     );
-    return civicrm_api3_create_success();
+    return civicrm_api3_create_success($result);
   }
   else {
     return civicrm_api3_create_error('Connection failed');