You are here

function elasticsearch_connector_sequence_get_next in Elasticsearch Connector 7.2

Same name and namespace in other branches
  1. 7 modules/elasticsearch_connector_sequence/elasticsearch_connector_sequence.module \elasticsearch_connector_sequence_get_next()

Generate a sequence/autoincrement id.

Parameters

string $sequence_id:

Return value

integer

File

modules/elasticsearch_connector_sequence/elasticsearch_connector_sequence.module, line 33
Module implementing a logic to have an sequence functionality, similar to MySQL sequence and PostgreSQL

Code

function elasticsearch_connector_sequence_get_next($sequence_id) {
  $cluster_id = elasticsearch_connector_sequence_get_cluster_id();
  if ($cluster_id) {
    $client = elasticsearch_connector_get_client_by_id($cluster_id);
    $index_name = elasticsearch_connector_sequence_get_index_name();
    $type = variable_get('elasticsearch_connector_sequence_type', ELASTICSEARCH_CONNECTOR_SEQUENCE_DEFAULT_TYPE);
    if ($client && $index_name) {
      $doc['index'] = $index_name;
      $doc['type'] = $type;
      $doc['id'] = $sequence_id;
      $doc['body'] = array();
      try {
        $response = $client
          ->index($doc);
        return $response['_version'];
      } catch (Exception $e) {
        watchdog('ec_sequence', $e
          ->getMessage(), array(), WATCHDOG_ERROR);
        return FALSE;
      }
    }
  }
  return FALSE;
}