class NexosisApi::Client

Primary entry point to working with Nexosis API

class to operate on views endpoint in Nexosis API

class to operate on vocabulary endpoint in Nexosis API

Public Class Methods

new(options = {}) click to toggle source
# File lib/nexosis_api/client.rb, line 63
def initialize(options = {})
  raise ArgumentError, 'api_key was not defined' unless options[:api_key].nil? == false
  @api_key = options[:api_key]
  self.class.base_uri options[:base_uri] unless options[:base_uri].nil?
  @headers = { 'api-key' => @api_key, 'Content-Type' => 'application/json',
               'User-Agent' => 'Nexosis-Ruby-API-Client/2.1' }
  @options = { headers: @headers, format: :json }
end

Public Instance Methods

api_key(value) click to toggle source

Provide access to read or modify the api key @return [String] @since 2.0.0

# File lib/nexosis_api/client.rb, line 84
def api_key(value)
  @api_key = value unless value.nil?
  @headers['api-key'] = @api_key
  @api_key
end
get_account_quotas() click to toggle source

Gets the quota stats for the account

@return [Hash] a hash of quota values and current values

# File lib/nexosis_api/client.rb, line 75
def get_account_quotas()
  session_url = '/sessions?page=0&pageSize=1'
  response = self.class.get(session_url, @options)
  response.headers.select { |k, _v| k.to_s.start_with? 'nexosis-account' }
end

Private Instance Methods

array_query_normalizer(query_set) click to toggle source
# File lib/nexosis_api/client.rb, line 127
def array_query_normalizer(query_set)
  query_set.map { |key, value| value.map { |v| "#{key}=#{v}" } }.join('&')
end
create_query(page_number, page_size, options = {}) click to toggle source

@private

# File lib/nexosis_api/client.rb, line 114
def create_query(page_number, page_size, options = {})
  options.store(:page_number, page_number)
  options.store(:page_size, page_size)
  query = {
    'page' => [page_number],
    'pageSize' => [page_size]
  }
  query['startDate'] = [options[:start_date].iso8601.gsub(/\+/,'%2B')] unless options[:start_date].nil?
  query['endDate'] = [options[:end_date].iso8601.gsub(/\+/,'%2B')] unless options[:end_date].nil?
  query['include'] = options[:include] unless options[:include].nil?
  query
end
process_csv_to_s(csv) click to toggle source

@private

# File lib/nexosis_api/client.rb, line 93
def process_csv_to_s csv
  content = ''
  if(csv.is_a?(CSV))
    csv.each do |row|
      if(csv.headers.nil?)
        # not using row.to_csv because it uses non-compliant '\n' newline
        content.concat(row.join(',')).concat("\r\n")
      else
        content.concat(row.fields.join(',')).concat("\r\n")
      end
    end
    if(csv.headers.nil? == false)
      content.prepend(csv.headers.join(',').concat("\r\n")) unless csv.headers.nil?
    end
  else
    content = csv
  end
  content
end