class Holded::APIRequest
Constants
- BASE_API_URL
Public Class Methods
new(builder:)
click to toggle source
# File lib/holded/api_request.rb, line 11 def initialize(builder:) @request_builder = builder @url = build_api_url @http = build_http end
Public Instance Methods
delete(params: nil)
click to toggle source
# File lib/holded/api_request.rb, line 41 def delete(params: nil) validate_api_key request = Net::HTTP::Delete.new(@url, build_headers) request = configure_request(request: request, params: params) response = @http.request(request) parse_response(response: response) end
get(params: nil)
click to toggle source
# File lib/holded/api_request.rb, line 17 def get(params: nil) validate_api_key request = Net::HTTP::Get.new(@url, build_headers) request = configure_request(request: request, params: params) response = @http.request(request) parse_response(response: response) end
post(params: nil)
click to toggle source
# File lib/holded/api_request.rb, line 25 def post(params: nil) validate_api_key request = Net::HTTP::Post.new(@url, build_headers) request = configure_request(request: request, params: params) response = @http.request(request) parse_response(response: response) end
put(params: nil)
click to toggle source
# File lib/holded/api_request.rb, line 33 def put(params: nil) validate_api_key request = Net::HTTP::Put.new(@url, build_headers) request = configure_request(request: request, params: params) response = @http.request(request) parse_response(response: response) end
Protected Instance Methods
api_key()
click to toggle source
# File lib/holded/api_request.rb, line 86 def api_key @request_builder.api_key end
validate_api_key()
click to toggle source
# File lib/holded/api_request.rb, line 81 def validate_api_key api_key = self.api_key raise Exceptions::APIKeyNotFoundError, 'You must set an api_key' unless api_key end
Private Instance Methods
build_api_url()
click to toggle source
# File lib/holded/api_request.rb, line 52 def build_api_url URI(BASE_API_URL + @request_builder.path) end
build_headers()
click to toggle source
# File lib/holded/api_request.rb, line 63 def build_headers { "key" => api_key, "Content-Type" => "application/json" } end
build_http()
click to toggle source
# File lib/holded/api_request.rb, line 56 def build_http http = Net::HTTP.new(@url.host, @url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http end
configure_request(request:, params: nil)
click to toggle source
# File lib/holded/api_request.rb, line 70 def configure_request(request:, params: nil) request.body = params.to_json if params request end
parse_response(response:)
click to toggle source
# File lib/holded/api_request.rb, line 75 def parse_response(response:) Response.new(request_response: response) end