Class: Poke::API::RequestBuilder

Inherits:
Object
  • Object
show all
Extended by:
FFI::Library
Includes:
Logging
Defined in:
lib/poke-api/request_builder.rb

Instance Method Summary collapse

Methods included from Logging

formatter=, log_level=, #logger

Constructor Details

#initialize(auth, pos, endpoint) ⇒ RequestBuilder

Returns a new instance of RequestBuilder.



10
11
12
13
14
15
16
17
18
# File 'lib/poke-api/request_builder.rb', line 10

def initialize(auth, pos, endpoint)
  @access_token = auth.access_token
  @provider     = auth.provider
  @endpoint     = endpoint
  @position     = pos
  @client       = HTTPClient.new(agent_name: 'PokeAPI/0.0.1')
  @start_time   = (Time.now.to_f * 1000).to_i
  @ffi_enabled  = false
end

Instance Method Details

#request(reqs, client) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/poke-api/request_builder.rb', line 20

def request(reqs, client)
  logger.debug '[+] Creating new request'
  request_proto = build_main_request(reqs, client)
  logger.debug "[+] Generated RPC protobuf encoded request \r\n#{request_proto.inspect}"

  logger.info '[+] Executing RPC request'
  resp = execute_rpc_request(request_proto)

  resp = Response.new(resp.body, reqs)
  resp.decode_response(client)

  resp
end