示例#1
0
 /**
  * @param \Civi\API\Event\RespondEvent $event
  *   API response event.
  *
  * @throws \Exception
  */
 public function onApiRespond(\Civi\API\Event\RespondEvent $event)
 {
     $apiRequest = $event->getApiRequest();
     $result = $event->getResponse();
     if (\CRM_Utils_Array::value('is_error', $result, 0) == 0) {
         $this->callNestedApi($event->getApiKernel(), $apiRequest['params'], $result, $apiRequest['action'], $apiRequest['entity'], $apiRequest['version']);
         $event->setResponse($result);
     }
 }
 /**
  * @param \Civi\API\Event\RespondEvent $event
  *   API response event.
  */
 public function onApiRespond(\Civi\API\Event\RespondEvent $event)
 {
     $apiRequest = $event->getApiRequest();
     $result = $event->getResponse();
     // For output filtering, process $apiWrappers in reverse order
     foreach (array_reverse($this->getWrappers($apiRequest)) as $apiWrapper) {
         $result = $apiWrapper->toApiOutput($apiRequest, $result);
     }
     $event->setResponse($result);
 }
 /**
  * Close any pending transactions
  */
 function onApiRespond(\Civi\API\Event\RespondEvent $event)
 {
     $apiRequest = $event->getApiRequest();
     if (isset($this->transactions[$apiRequest['id']])) {
         if (civicrm_error($event->getResponse())) {
             $this->transactions[$apiRequest['id']]->rollback();
         }
         unset($this->transactions[$apiRequest['id']]);
     }
 }
示例#4
0
 /**
  * @param \Civi\API\Event\RespondEvent $event
  *   API response event.
  */
 public function onApiRespond(\Civi\API\Event\RespondEvent $event)
 {
     $apiRequest = $event->getApiRequest();
     $result = $event->getResponse();
     if (function_exists('xdebug_time_index') && \CRM_Utils_Array::value('debug', $apiRequest['params']) && is_array($result)) {
         $result['xdebug']['peakMemory'] = xdebug_peak_memory_usage();
         $result['xdebug']['memory'] = xdebug_memory_usage();
         $result['xdebug']['timeIndex'] = xdebug_time_index();
         $event->setResponse($result);
     }
 }
示例#5
0
 /**
  * Apply any filtering rules based on the chosen whitelist rule.
  * @param RespondEvent $event
  */
 public function onApiRespond(RespondEvent $event)
 {
     $apiRequest = $event->getApiRequest();
     $id = $apiRequest['id'];
     if (isset($this->activeRules[$id])) {
         $event->setResponse($this->activeRules[$id]->filter($apiRequest, $event->getResponse()));
         unset($this->activeRules[$id]);
     }
 }