lib/elasticsearch/api/actions/get.rb in elasticsearch-api-7.4.0 vs lib/elasticsearch/api/actions/get.rb in elasticsearch-api-7.5.0.pre.pre

- old
+ new

@@ -3,75 +3,76 @@ # See the LICENSE file in the project root for more information module Elasticsearch module API module Actions - - # Return a specified document. + # Returns a document. # - # The response contains full document, as stored in Elasticsearch, incl. `_source`, `_version`, etc. - # - # @example Get a document - # - # client.get index: 'myindex', type: 'mytype', id: '1' - # - # @option arguments [String] :id The document ID (*Required*) - # @option arguments [String] :index The name of the index (*Required*) - # @option arguments [String] :type The type of the document (use `_all` to fetch the first document matching the ID across all types) + # @option arguments [String] :id The document ID + # @option arguments [String] :index The name of the index + # @option arguments [String] :type The type of the document (use `_all` to fetch the first document matching the ID across all types) *Deprecated* # @option arguments [List] :stored_fields A comma-separated list of stored fields to return in the response - # @option arguments [String] :parent The ID of the parent document # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random) # @option arguments [Boolean] :realtime Specify whether to perform the operation in realtime or search mode # @option arguments [Boolean] :refresh Refresh the shard containing the document before performing the operation # @option arguments [String] :routing Specific routing value # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field - # @option arguments [List] :_source_exclude A list of fields to exclude from the returned _source field - # @option arguments [List] :_source_include A list of fields to extract and return from the _source field # @option arguments [Number] :version Explicit version number for concurrency control - # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force) + # @option arguments [String] :version_type Specific version type + # (options: internal,external,external_gte,force) + # - # @see http://elasticsearch.org/guide/reference/api/get/ + # *Deprecation notice*: + # Specifying types in urls has been deprecated + # Deprecated since version 7.0.0 # - def get(arguments={}) + # + # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-get.html + # + def get(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] - raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] - arguments[:type] ||= DEFAULT_DOC + raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] - method = HTTP_GET - path = Utils.__pathify Utils.__escape(arguments[:index]), - Utils.__escape(arguments[:type]), - Utils.__escape(arguments[:id]) + arguments = arguments.clone - params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__) - body = nil + _id = arguments.delete(:id) - params[:fields] = Utils.__listify(params[:fields]) if params[:fields] + _index = arguments.delete(:index) + _type = arguments.delete(:type) + + method = Elasticsearch::API::HTTP_GET + path = if _index && _type && _id + "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}" + else + "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}" + end + params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__) + + body = nil if Array(arguments[:ignore]).include?(404) Utils.__rescue_from_not_found { perform_request(method, path, params, body).body } else perform_request(method, path, params, body).body end end # Register this action with its valid params when the module is loaded. # - # @since 6.1.1 + # @since 6.2.0 ParamsRegistry.register(:get, [ - :stored_fields, - :parent, - :preference, - :realtime, - :refresh, - :routing, - :_source, - :_source_excludes, - :_source_includes, - :_source_exclude, - :_source_include, - :version, - :version_type ].freeze) + :stored_fields, + :preference, + :realtime, + :refresh, + :routing, + :_source, + :_source_excludes, + :_source_includes, + :version, + :version_type + ].freeze) end - end + end end