Sha256: 7dff5b9794479dc7306a72e5f363fcd036278ef9c9009eac0a38abb468618539

Contents?: true

Size: 910 Bytes

Versions: 2

Compression:

Stored size: 910 Bytes

Contents

require "espago/api_connection"
require "espago/response"

module Espago
  class Client
    attr_accessor :public_key, :app_id, :app_password, :production
    NotAuthenticated = Class.new(StandardError)

    def initialize(options = {})
      @public_key, @app_id, @app_password = options.values_at( :public_key, :app_id, :app_password)
      @connection = options[:connection] || ApiConnection
    end

    def send_request(path, method, params = {})
      raise NotAuthenticated unless valid?
      connection = @connection.new(enviroment)
      connection.authenticate(@app_id, @app_password)
      connection.create(path, method, params)
    end

    def parse_response(request)
      Response.new(request)
    end

    private
    def enviroment
      production ? "https://secure.espago.com/api" : "https://sandbox.espago.com/api"
    end

    def valid?
      @app_id && @app_password
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
espago-0.0.9 lib/espago/client.rb
espago-0.0.7 lib/espago/client.rb