debuggerFactory = $debuggerFactory; } /** * Sends HTTP request to Signifyd API with configured client. * * Each request/response pair is handled by debugger. * If debug mode for Signifyd integration enabled in configuration * debug information is recorded to debug.log. * * @param ZendClient $client * @param int|null $storeId * @return \Zend_Http_Response * @throws ApiCallException */ public function send(ZendClient $client, $storeId = null): \Zend_Http_Response { try { $response = $client->request(); $this->debuggerFactory->create($storeId)->success( $client->getUri(true), $client->getLastRequest(), $response->getStatus() . ' ' . $response->getMessage(), $response->getBody() ); return $response; } catch (\Exception $e) { $this->debuggerFactory->create($storeId)->failure( $client->getUri(true), $client->getLastRequest(), $e ); throw new ApiCallException( 'Unable to process Signifyd API: ' . $e->getMessage(), $e->getCode(), $e, $client->getLastRequest() ); } } }