class Immobilienscout::Request
Public Class Methods
new(url, params = {})
click to toggle source
# File lib/immobilienscout/request.rb, line 8 def initialize(url, params = {}) @url = url @params = params raise ArgumentError unless valid? end
Public Instance Methods
delete()
click to toggle source
# File lib/immobilienscout/request.rb, line 66 def delete auth_header = generate_auth_header('DELETE') headers = generate_headers(auth_header) uri = URI.parse(@url) request = Net::HTTP::Delete.new(uri) request.initialize_http_header(headers) execute_request(uri, request) end
get()
click to toggle source
# File lib/immobilienscout/request.rb, line 15 def get auth_header = generate_auth_header('GET', @params) headers = generate_headers(auth_header) url_with_query = "#{@url}?#{@params.to_query}" uri = URI.parse(url_with_query) request = Net::HTTP::Get.new(uri) request.initialize_http_header(headers) execute_request(uri, request) end
post()
click to toggle source
# File lib/immobilienscout/request.rb, line 28 def post auth_header = generate_auth_header('POST') headers = generate_headers(auth_header) uri = URI.parse(@url) request = Net::HTTP::Post.new(uri) request.body = @params.to_json request.initialize_http_header(headers) execute_request(uri, request) end
post_with_multipart()
click to toggle source
# File lib/immobilienscout/request.rb, line 41 def post_with_multipart auth_header = generate_auth_header('POST') uri = URI.parse(@url) request = Net::HTTP::Post::Multipart.new(uri, @params) request.add_field('Authorization', auth_header) request.add_field('Accept', 'application/json') execute_request(uri, request) end
put()
click to toggle source
# File lib/immobilienscout/request.rb, line 53 def put auth_header = generate_auth_header('PUT') headers = generate_headers(auth_header) uri = URI.parse(@url) request = Net::HTTP::Put.new(uri) request.body = @params.to_json request.initialize_http_header(headers) execute_request(uri, request) end
Private Instance Methods
execute_request(uri, request)
click to toggle source
# File lib/immobilienscout/request.rb, line 96 def execute_request(uri, request) response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request request } Immobilienscout::ResponseParser.new(response).call end
generate_auth_header(method_type, query_params = nil)
click to toggle source
# File lib/immobilienscout/request.rb, line 84 def generate_auth_header(method_type, query_params = nil) Immobilienscout::Authenticator.new(@url, method_type, query_params).call end
generate_headers(auth_header)
click to toggle source
# File lib/immobilienscout/request.rb, line 88 def generate_headers(auth_header) { 'Authorization' => auth_header, 'Content-Type' => 'application/json', 'Accept' => 'application/json' } end
valid?()
click to toggle source
# File lib/immobilienscout/request.rb, line 80 def valid? @url.present? end