class OTX::Base

Base Class for API access, provides initial wrapper around Faraday performs base request

Public Class Methods

new(key, server="https://otx.alienvault.com") click to toggle source

Initialise object

@param key [String] API Key for AlienVault OTX API @param server [String] Base URL for API, defaults to 'otx.alienvault.com'

# File lib/otx_ruby/base.rb, line 13
def initialize(key, server="https://otx.alienvault.com")
  @key = key
  @server = server

  @conn = Faraday.new(:url => @server) do |faraday|
    faraday.request  :url_encoded             # form-encode POST params
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
  end
end

Public Instance Methods

get(url, params={}) click to toggle source

GET the provided URL

@param url [String] URL to make API request to @param params [Hash] Additional parameters to be added to the requests

# File lib/otx_ruby/base.rb, line 29
def get(url, params={})
  response = @conn.get do |req|
    req.url url
    req.headers['X-OTX-API-KEY'] = @key
    req.params = params
  end

  # Parse and return JSON object as hash to caller
  return Oj.load(response.body)
end
patch(url, params={}) click to toggle source

PATCH to the provided URL

@param url [String] URL to make API request to @param params [Hash] Additional parameters to be added to the requests

# File lib/otx_ruby/base.rb, line 63
def patch(url, params={})
  response = @conn.patch do |req|
    req.url url
    req.headers['X-OTX-API-KEY'] = @key
    req.params = params
  end

  # Parse and return JSON object as hash to caller
  return Oj.load(response.body)
end
post(url, params={}) click to toggle source

POST to the provided URL

@param url [String] URL to make API request to @param params [Hash] Additional parameters to be added to the requests

# File lib/otx_ruby/base.rb, line 46
def post(url, params={})
  response = @conn.post do |req|
    req.url url
    req.headers['X-OTX-API-KEY'] = @key
    req.params = params
  end

  # Parse and return JSON object as hash to caller
  return Oj.load(response.body)
end