Module: Gangway::Call

Includes:
Session
Included in:
Subscriber
Defined in:
lib/gangway/call.rb

Constant Summary

Constants included from Session

Session::ENDPOINTS

Instance Method Summary collapse

Instance Method Details

#call(method, params) ⇒ Object



7
8
9
10
# File 'lib/gangway/call.rb', line 7

def call(method, params)
  res = session.call(method, message: {session_id: session_id}.merge(params))
  return Hash.from_xml(res.body.values.first[:out])
end

#new_session_idObject



26
27
28
29
# File 'lib/gangway/call.rb', line 26

def new_session_id
  res = new_session(:session).call :login, message: {username: ENV['EWAY_USERNAME'], password: ENV['EWAY_PASSWORD']}
  res.body[:login_response][:out]
end

#sessionObject



12
13
14
# File 'lib/gangway/call.rb', line 12

def session
  @session ||= new_session(:subscriber)
end

#session_idObject



16
17
18
19
20
21
22
23
24
# File 'lib/gangway/call.rb', line 16

def session_id
  @last_update ||= Time.now
  if Time.now >= @last_update + 3600
    @last_update = Time.now
    @session_id = new_session_id
  else
    @session_id ||= new_session_id
  end
end