class Papapi::Request

Constants

BODY_DATA_NAME
RUN_METHOD
SERVER_CLASS_NAME

Attributes

class_name[RW]
method_name[RW]
requests[R]
session[RW]

Public Class Methods

new(class_name, method_name, session) click to toggle source
# File lib/papapi/request.rb, line 14
def initialize (class_name, method_name, session)
  @class_name = class_name
  @method_name = method_name
  @session = session
  @params = {}
  @requests = []
end

Public Instance Methods

add_request(request) click to toggle source
# File lib/papapi/request.rb, line 30
def add_request(request)
  @requests << request
end
response(http_response) click to toggle source
# File lib/papapi/request.rb, line 58
def response(http_response)
  Response.new(http_response, self)
end
send() click to toggle source
# File lib/papapi/request.rb, line 41
def send
  vars = {
      "C" => SERVER_CLASS_NAME,
      "M" => RUN_METHOD,
      "isFromApi" => "Y",
      "requests" => ([self] + @requests).map { |r| r.to_data }
  }
  vars['S'] = @session.id if @session && @session.id

  request_body = {BODY_DATA_NAME => vars.to_json }

  p "REQUEST# #{vars}" if @session.debug
  http_response = send_now(@session.url, request_body)
  p "RESPONE# #{http_response.body}" if session.debug
  response(http_response)
end
send_now(url, request_body) click to toggle source
# File lib/papapi/request.rb, line 62
def send_now(url, request_body)
  Net::HTTP.post_form(URI.parse(url), request_body)
end
set_param(name, value) click to toggle source
# File lib/papapi/request.rb, line 22
def set_param(name, value)
  @params[name] = value
end
set_params(p) click to toggle source
# File lib/papapi/request.rb, line 26
def set_params(p)
  @params = @params.merge(p)
end
to_data() click to toggle source
# File lib/papapi/request.rb, line 34
def to_data
  {
    "C" => @class_name,
    "M" => @method_name,
  }.merge(@params)
end