class WorkSnaps::Client

Public Class Methods

new(options={}) click to toggle source

Initializes a new Client object

@param options [Hash] @return [WorkSnaps::Client]

# File lib/worksnaps/client.rb, line 22
def initialize(options={})
  Wsnaps.keys.each do |key|
    instance_variable_set(:"@#{key}", options[key] || WorkSnaps.instance_variable_get(:"@#{key}"))
  end
end

Public Instance Methods

delete(path, params={}) click to toggle source

Perform an HTTP DELETE request

# File lib/worksnaps/client.rb, line 29
def delete(path, params={})
  request(:delete, path, params)
end
get(path, params={}) click to toggle source

Perform an HTTP GET request

# File lib/worksnaps/client.rb, line 34
def get(path, params={})
  request(:get, path, params)
end
post(path, params={}) click to toggle source

Perform an HTTP POST request

# File lib/worksnaps/client.rb, line 39
def post(path, params={})
  signature_params = params.values.any?{|value| value.respond_to?(:to_io)} ? {} : params
  request(:post, path, params.to_xml, signature_params)
end
put(path, params={}) click to toggle source

Perform an HTTP PUT request

# File lib/worksnaps/client.rb, line 45
def put(path, params={})
  request(:put, path, params)
end

Private Instance Methods

auth_header(method, path, params={}) click to toggle source
# File lib/worksnaps/client.rb, line 66
def auth_header(method, path, params={})
  # Oauth
  # uri = URI(@endpoint + path)
  # SimpleOAuth::Header.new(method, uri, params, WorkSnaps.oauth_credentials)

  # Basic auth
  Faraday::Request::BasicAuthentication.header(Wsnaps.api_tocken, '')
end
connection() click to toggle source

Returns a Faraday::Connection object

@return [Faraday::Connection]

# File lib/worksnaps/client.rb, line 62
def connection
  @connection ||= Faraday.new(@endpoint, @connection_options.merge(:builder => @middleware))
end
request(method, path, params={}, signature_params=params) click to toggle source
# File lib/worksnaps/client.rb, line 51
def request(method, path, params={}, signature_params=params)
  connection.send(method.to_sym, path, params) do |request|
    request.headers[:authorization] = auth_header(method.to_sym, path, signature_params).to_s
  end.env
rescue Faraday::Error::ClientError
  raise WorkSnaps::Error::ClientError
end