class AccessWatch::Client
Constants
- CERTIFICATE_AUTHORITIES_PATH
- HTTPS
Attributes
api_endpoint[R]
api_key[R]
api_secret[R]
api_timeout[R]
Public Class Methods
new(options)
click to toggle source
# File lib/access_watch/client.rb, line 10 def initialize(options) @api_secret = options[:api_secret] @api_timeout = options[:api_timeout] || 1 @api_key = options[:api_key] or raise "AccessWatch api_key is mandatory." @api_endpoint = options[:api_endpoint] || "https://access.watch/api/1.0/" end
Public Instance Methods
default_headers()
click to toggle source
# File lib/access_watch/client.rb, line 32 def default_headers { "Api-Key" => api_key, "Accept" => "application/json", "Content-Type" => "application/json", "User-Agent" => user_agent, } end
get(path, params = nil)
click to toggle source
# File lib/access_watch/client.rb, line 24 def get(path, params = nil) uri = URI.parse(api_endpoint + path) uri.query = URI.encode_www_form(params) if params request = Net::HTTP::Get.new(uri.request_uri, default_headers) response = http(uri).request(request) response.body end
post(path, data)
click to toggle source
# File lib/access_watch/client.rb, line 17 def post(path, data) uri = URI(api_endpoint + path) post = Net::HTTP::Post.new(uri.path, default_headers) post.body = data.to_json resp = http(uri).request(post) end
user_agent()
click to toggle source
# File lib/access_watch/client.rb, line 41 def user_agent return @user_agent if @user_agent result = "Access Watch/#{AccessWatch::VERSION} Ruby/#{RUBY_VERSION}" result += " Rails/#{Rails.version}" if defined?(Rails) @user_agent = result end
Private Instance Methods
http(uri)
click to toggle source
# File lib/access_watch/client.rb, line 53 def http(uri) http = Net::HTTP.new(uri.host, uri.port) http.open_timeout = api_timeout if uri.scheme == HTTPS http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.ca_file = CERTIFICATE_AUTHORITIES_PATH http.use_ssl = true end http end