Class: EventStore::HTTP::Session::Leader

Inherits:
Object
  • Object
show all
Includes:
EventStore::HTTP::Session
Defined in:
lib/event_store/http/session/leader.rb

Instance Method Summary collapse

Methods included from EventStore::HTTP::Session

build, configure, #configure_retry, #establish_connection, included, #net_http, #reconnect, #reset_request

Instance Method Details

#configureObject



7
8
9
# File 'lib/event_store/http/session/leader.rb', line 7

def configure
  connect.extend Connect::Leader
end

#request(request) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/event_store/http/session/leader.rb', line 11

def request(request)
  request['ES-RequireMaster'] ||= 'True'

  response = super

  if Net::HTTPRedirection === response
    location = URI.parse response['location']

    leader_ip_address = location.host

    net_http = reconnect leader_ip_address

    reset_request request

    response = request request
  end

  response
end