Class: VolleyRequest

Inherits:
Com::Android::Volley::Request
  • Object
show all
Defined in:
lib/android/volley_request.rb

Constant Summary collapse

METHOD_CODES =
{
  get: 0,
  post: 1,
  put: 2,
  delete: 3,
  head: 4,
  options: 5,
  trace: 6,
  patch: 7,
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#callbackObject

Returns the value of attribute callback.



2
3
4
# File 'lib/android/volley_request.rb', line 2

def callback
  @callback
end

#original_requestObject

Returns the value of attribute original_request.



2
3
4
# File 'lib/android/volley_request.rb', line 2

def original_request
  @original_request
end

Class Method Details

.create(request, callback) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/android/volley_request.rb', line 15

def self.create(request, callback)
  volley_request = new(METHOD_CODES[request.http_method], request.url, nil)
  volley_request.original_request = request
  volley_request.headers = request.headers.to_hash
  volley_request.body = request.body
  volley_request.callback = callback
  volley_request
end

Instance Method Details

#build_response(networkResponse) ⇒ Object



48
49
50
51
# File 'lib/android/volley_request.rb', line 48

def build_response(networkResponse)
  body = parse_body_from_response(networkResponse)
  Motion::HTTP::Response.new(original_request, networkResponse.statusCode, Motion::HTTP::Headers.new(networkResponse.headers), body)
end

#deliverError(error) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/android/volley_request.rb', line 34

def deliverError(error)
  if error.networkResponse
    response = build_response(error.networkResponse)
    deliverResponse(response)
  else
    Motion::HTTP.logger.error("Error while requesting #{original_request.url}: #{error.getMessage}")
    error.getStackTrace.each do |line|
      puts line.toString
    end
    response = Motion::HTTP::Response.new(original_request, nil, nil, error.getMessage)
    callback.call(response) if callback
  end
end

#deliverResponse(response) ⇒ Object



29
30
31
32
# File 'lib/android/volley_request.rb', line 29

def deliverResponse(response)
  Motion::HTTP.logger.log_response(response)
  callback.call(response) if callback
end

#parseNetworkResponse(networkResponse) ⇒ Object



24
25
26
27
# File 'lib/android/volley_request.rb', line 24

def parseNetworkResponse(networkResponse)
  response = build_response(networkResponse)
  Com::Android::Volley::Response.success(response, Com::Android::Volley::Toolbox::HttpHeaderParser.parseCacheHeaders(networkResponse))
end