Elastica\Bulk::_processResponse PHP Method

_processResponse() protected method

protected _processResponse ( Response $response ) : ResponseSet
$response Response
return Elastica\Bulk\ResponseSet
    protected function _processResponse(Response $response)
    {
        $responseData = $response->getData();
        $actions = $this->getActions();
        $bulkResponses = [];
        if (isset($responseData['items']) && is_array($responseData['items'])) {
            foreach ($responseData['items'] as $key => $item) {
                if (!isset($actions[$key])) {
                    throw new InvalidException('No response found for action #' . $key);
                }
                $action = $actions[$key];
                $opType = key($item);
                $bulkResponseData = reset($item);
                if ($action instanceof AbstractDocumentAction) {
                    $data = $action->getData();
                    if ($data instanceof Document && $data->isAutoPopulate() || $this->_client->getConfigValue(['document', 'autoPopulate'], false)) {
                        if (!$data->hasId() && isset($bulkResponseData['_id'])) {
                            $data->setId($bulkResponseData['_id']);
                        }
                        if (isset($bulkResponseData['_version'])) {
                            $data->setVersion($bulkResponseData['_version']);
                        }
                    }
                }
                $bulkResponses[] = new BulkResponse($bulkResponseData, $action, $opType);
            }
        }
        $bulkResponseSet = new ResponseSet($response, $bulkResponses);
        if ($bulkResponseSet->hasError()) {
            throw new BulkResponseException($bulkResponseSet);
        }
        return $bulkResponseSet;
    }