Class: Papapi::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/papapi/request.rb

Direct Known Subclasses

FormRequest, GridRequest

Constant Summary collapse

SERVER_CLASS_NAME =
'Gpf_Rpc_Server'
RUN_METHOD =
'run'
BODY_DATA_NAME =
'D'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(class_name, method_name, session) ⇒ Request



14
15
16
17
18
19
20
# 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

Instance Attribute Details

#class_nameObject

Returns the value of attribute class_name.



8
9
10
# File 'lib/papapi/request.rb', line 8

def class_name
  @class_name
end

#method_nameObject

Returns the value of attribute method_name.



8
9
10
# File 'lib/papapi/request.rb', line 8

def method_name
  @method_name
end

#requestsObject (readonly)

Returns the value of attribute requests.



12
13
14
# File 'lib/papapi/request.rb', line 12

def requests
  @requests
end

#sessionObject

Returns the value of attribute session.



8
9
10
# File 'lib/papapi/request.rb', line 8

def session
  @session
end

Instance Method Details

#add_request(request) ⇒ Object



30
31
32
# File 'lib/papapi/request.rb', line 30

def add_request(request)
  @requests << request
end

#response(http_response) ⇒ Object



58
59
60
# File 'lib/papapi/request.rb', line 58

def response(http_response)
  Response.new(http_response, self)
end

#sendObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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) ⇒ Object



62
63
64
# 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) ⇒ Object



22
23
24
# File 'lib/papapi/request.rb', line 22

def set_param(name, value)
  @params[name] = value
end

#set_params(p) ⇒ Object



26
27
28
# File 'lib/papapi/request.rb', line 26

def set_params(p)
  @params = @params.merge(p)
end

#to_dataObject



34
35
36
37
38
39
# File 'lib/papapi/request.rb', line 34

def to_data
  {
    "C" => @class_name,
    "M" => @method_name,
  }.merge(@params)
end