class Laa::ApplyForLegalAid::Api::Request
Constants
- HTTP_METHODS
- HTTP_METHODS_WITH_BODY
Attributes
action[R]
connection[R]
path[R]
Public Class Methods
new(action, path, connection)
click to toggle source
# File lib/laa/apply_for_legal_aid/api/request.rb, line 10 def initialize(action, path, connection) @action = action @path = path @connection = connection validate_http_method end
Public Instance Methods
call(options = {})
click to toggle source
# File lib/laa/apply_for_legal_aid/api/request.rb, line 17 def call(options = {}) # TODO: wrap the response in a response object we own connection.send(action) do |request| request.url(path, options[:query] || {}) request.body = request_body(options[:data]) if body_required? && options.has_key?(:data) end end
Private Instance Methods
body_required?()
click to toggle source
# File lib/laa/apply_for_legal_aid/api/request.rb, line 34 def body_required? HTTP_METHODS_WITH_BODY.include?(action) end
request_body(data)
click to toggle source
# File lib/laa/apply_for_legal_aid/api/request.rb, line 38 def request_body(data) return data if data.is_a?(String) data.to_json end
validate_http_method()
click to toggle source
# File lib/laa/apply_for_legal_aid/api/request.rb, line 29 def validate_http_method return if HTTP_METHODS.include?(action) raise ArgumentError, "invalid HTTP method #{action}" end