/** * @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']]); } }
/** * @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); } }
/** * 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]); } }