class Solr::Delete::Request
Constants
- PATH
Attributes
delete_command[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/solr/delete/request.rb, line 10 def initialize(options = {}) options = validate_delete_options!(options) @delete_command = { delete: options } end
Public Instance Methods
run(commit: false, runner_options: nil)
click to toggle source
# File lib/solr/delete/request.rb, line 15 def run(commit: false, runner_options: nil) http_request = build_http_request(commit) options = default_runner_options.merge(runner_options || {}) Solr::Request::Runner.call(request: http_request, **options) end
Private Instance Methods
build_http_request(commit)
click to toggle source
# File lib/solr/delete/request.rb, line 33 def build_http_request(commit) Solr::Request::HttpRequest.new(path: PATH, body: delete_command, url_params: { commit: commit }, method: :post) end
default_runner_options()
click to toggle source
# File lib/solr/delete/request.rb, line 23 def default_runner_options if Solr.cloud_enabled? { node_selection_strategy: Solr::Request::Cloud::LeaderNodeSelectionStrategy } elsif Solr.master_slave_enabled? { node_selection_strategy: Solr::Request::MasterSlave::MasterNodeSelectionStrategy } else {} end end
validate_delete_options!(options)
click to toggle source
# File lib/solr/delete/request.rb, line 40 def validate_delete_options!(options) options = options.deep_symbolize_keys id, query = options.values_at(:id, :query) error_message = 'options must contain either id or query, but not both' raise ArgumentError, error_message if id.nil? && query.nil? raise ArgumentError, error_message if id && query options end