class Postgrest::HTTP
Constants
- METHODS
- RESPONSES
- USER_AGENT
Attributes
body[R]
headers[R]
http_method[R]
query[R]
request[R]
response[R]
uri[R]
Public Class Methods
new(uri:, query: {}, body: {}, headers: {}, http_method: :get)
click to toggle source
# File lib/postgrest/http.rb, line 26 def initialize(uri:, query: {}, body: {}, headers: {}, http_method: :get) @uri = uri @body = body @headers = headers @http_method = http_method.to_sym @response = nil @request = nil uri.query = decode_query_params(query) end
Public Instance Methods
call()
click to toggle source
# File lib/postgrest/http.rb, line 42 def call raise InvalidHTTPMethod unless valid_http_method? @response = Net::HTTP.start(uri.host, uri.port, use_ssl: use_ssl?) do |http| @request = create_request http.request(request) end RESPONSES[http_method].new(request, response) end
Also aliased as: execute
update_query_params(new_value = {})
click to toggle source
# File lib/postgrest/http.rb, line 36 def update_query_params(new_value = {}) @uri.query = decode_query_params(new_value) rescue NoMethodError @uri.query end
Private Instance Methods
add_headers(request)
click to toggle source
# File lib/postgrest/http.rb, line 73 def add_headers(request) headers.each { |key, value| request[key] = value } request['User-Agent'] = USER_AGENT nil end
create_request()
click to toggle source
# File lib/postgrest/http.rb, line 60 def create_request request = METHODS[http_method].new(uri) request.body = body.to_json request.content_type = 'application/json' add_headers(request) request end
decode_query_params(query_params)
click to toggle source
# File lib/postgrest/http.rb, line 56 def decode_query_params(query_params) CGI.unescape(URI.encode_www_form(query_params)) end
use_ssl?()
click to toggle source
# File lib/postgrest/http.rb, line 69 def use_ssl? uri.scheme == 'https' end
valid_http_method?()
click to toggle source
# File lib/postgrest/http.rb, line 80 def valid_http_method? METHODS.keys.include?(http_method) end