Sha256: b26e5eb5d029b1fb1bc7723c011395e2f657811db848f392473718ae25f7c3c1

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module Pin
  class Base
    include HTTParty

    def initialize(key: "", env: :live)
      @key = key
      env = env.to_sym
      @@auth = {username: key, password: ''}
      @@base_url = if env == :live
        "https://api.pin.net.au/1/"
      elsif env == :test
        "https://test-api.pin.net.au/1/"
      else
        raise "'env' option must be :live or :test. Leave blank for live payments"
      end
    end

    def key
      @key
    end

    def uri
      @@base_url
    end

    protected

    def self.auth_get(url, token: nil)
      HTTParty.get("#{@@base_url}#{url}", basic_auth: @@auth)
    end

    def self.auth_post(url, options = {})
      HTTParty.post("#{@@base_url}#{url}", body: options, basic_auth: @@auth)
    end

    def self.auth_put(url, options = {})
      HTTParty.put("#{@@base_url}#{url}", body: options, basic_auth: @@auth)
    end

    def self.build_response(response)
      response.parsed_response['response']
    end

    def self.build_collection_response(response)
      models = []
      if response.code == 200
        response.parsed_response['response'].each do |model|
          models << model
        end
      end
      models
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pin_up-0.1.0 lib/pin_up/base.rb