prepare_args = isset( $definition['prepare_args'] ) ? $definition['prepare_args'] : null; $this->create_request = isset( $definition['create_request'] ) ? $definition['create_request'] : null; } /** * Creates a request object. * * @since 1.170.0 * * @param Data_Request $data_request Data request object. * @return mixed Request instance. */ public function create_request( Data_Request $data_request ) { $args = is_callable( $this->prepare_args ) ? call_user_func( $this->prepare_args, $data_request->data ) : array(); return is_callable( $this->create_request ) ? call_user_func( $this->create_request, $args ) : null; } /** * Parses a response. * * @since 1.170.0 * * @param mixed $response Request response. * @param Data_Request $data Data request object. * @return mixed Parsed response data. */ public function parse_response( $response, Data_Request $data ) { if ( $response instanceof SearchAnalyticsQueryResponse ) { return $response->getRows(); } if ( is_object( $response ) && method_exists( $response, 'getRows' ) ) { return $response->getRows(); } return $response; } }