class Server

Public Class Methods

new(server='api.emailsrvr.com', version_prefix='/v0', user_key='xxxxxxxxxxxxxxxxxxxx', secret_hash='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') click to toggle source
# File lib/racked/server.rb, line 12
def initialize(server='api.emailsrvr.com', version_prefix='/v0', user_key='xxxxxxxxxxxxxxxxxxxx', secret_hash='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
  @server = server
  @version_prefix = version_prefix
  @user_key = user_key
  @secret_hash = secret_hash
end

Public Instance Methods

delete(url_string, format) click to toggle source
# File lib/racked/server.rb, line 40
def delete(url_string, format)
  uri = full_uri(url_string)
  headers = prepared_headers
  headers['Accept'] = format
  request = Net::HTTP::Delete.new(request_uri(uri), headers)
  http_response = make_request request, uri
end
full_uri(url_string) click to toggle source
# File lib/racked/server.rb, line 83
def full_uri url_string
  URI.parse('http://' + @server + @version_prefix + url_string)
end
get(url_string, format) click to toggle source

HTTP Request Verbs

# File lib/racked/server.rb, line 32
def get(url_string, format)
  uri = full_uri(url_string)
  headers = prepared_headers
  headers['Accept'] = format
  request = Net::HTTP::Get.new(request_uri(uri), headers)
  http_response = make_request request, uri
end
headers_auth_creds(apiKey, secretKey) click to toggle source
# File lib/racked/server.rb, line 103
def headers_auth_creds apiKey, secretKey
  userAgent = 'Ruby Test Client'
  timestamp = DateTime.now.strftime('%Y%m%d%H%M%S')
  
  data_to_sign = apiKey + userAgent + timestamp + secretKey
  
  hash = Base64.encode64(Digest::SHA1.digest(data_to_sign))
  signature = apiKey + ":" + timestamp + ":" + hash
  
  headers = Hash['User-Agent' => userAgent, 'X-Api-Signature' => signature]
end
json_format() click to toggle source
# File lib/racked/server.rb, line 25
def json_format
  'application/json'
end
make_request(request, uri) click to toggle source

HTTP Request Helpers

# File lib/racked/server.rb, line 69
def make_request request, uri
  response = Net::HTTP::start(uri.host, uri.port)  do |http|
    begin
      http.request request
    rescue Exception => e
      puts e.message
      puts e.backtrace.inspect
      retry
    end
  end
  
  response
end
post(url_string, fields_hash, format) click to toggle source
# File lib/racked/server.rb, line 57
def post(url_string, fields_hash, format)
  uri = full_uri(url_string)
  headers = prepared_headers
  headers['Accept'] = format
  request = Net::HTTP::Post.new(request_uri(uri), headers)
  request.set_form_data(fields_hash)
  http_response = make_request request, uri
end
prepared_headers() click to toggle source
# File lib/racked/server.rb, line 96
def prepared_headers
  headers = Hash.new
  headers.merge! headers_auth_creds(@user_key, @secret_hash)
  headers['Accept'] = xml_format
  headers
end
put(url_string, fields_hash, format) click to toggle source
# File lib/racked/server.rb, line 48
def put(url_string, fields_hash, format)
  uri = full_uri(url_string)
  headers = prepared_headers
  headers['Accept'] = format
  request = Net::HTTP::Put.new(request_uri(uri), headers)
  request.set_form_data(fields_hash)
  http_response = make_request request, uri
end
request_uri(uri) click to toggle source
# File lib/racked/server.rb, line 87
def request_uri uri
  request = uri.path
  if ! uri.query.nil?
    request = request + '?' + uri.query
  end
  p [:request_uri, request]
  request
end
xml_format() click to toggle source

Response Type Enums

# File lib/racked/server.rb, line 21
def xml_format
  'text/xml'
end