class SimplePin::Pin
Attributes
auth[RW]
base_url[RW]
Public Class Methods
new(key = '', env = :test)
click to toggle source
Create a new Pin
instance
key: Your Pin secret key env: The environment you want to use.
# File lib/simple_pin.rb, line 12 def initialize(key = '', env = :test) @key = key env = env.to_sym @auth = { username: @key, password: '' } @base_url = if env == :live 'https://api.pin.net.au/1/' else 'https://test-api.pin.net.au/1/' end end
Public Instance Methods
create_card(options = {})
click to toggle source
Creates a card given a hash of options pin.net.au/docs/api/cards returns: a card object
# File lib/simple_pin.rb, line 43 def create_card(options = {}) build_response(make_request(:post, url: 'cards', options: options)) end
create_charge(options = {})
click to toggle source
Create a charge given charge details and a card, pin.net.au/docs/api/charges returns: a charge object
# File lib/simple_pin.rb, line 34 def create_charge(options = {}) build_response(make_request(:post, url: 'charges', options: options)) end
create_customer(options = {})
click to toggle source
Create a customer given customer details and a card_token pin.net.au/docs/api/customers returns: a customer object
# File lib/simple_pin.rb, line 52 def create_customer(options = {}) build_response(make_request(:post, url: 'customers', options: options)) end
Private Instance Methods
build_response(response)
click to toggle source
# File lib/simple_pin.rb, line 58 def build_response(response) fail PinError, error_message(response) unless response.code == 201 response['response'] end
error_message(response)
click to toggle source
# File lib/simple_pin.rb, line 71 def error_message(response) %(Pin API returned code #{response.code} for #{@base_url}, with error: '#{response.body}') end
make_request(method, args)
click to toggle source
Sends an authenticated request to pin’s server
# File lib/simple_pin.rb, line 66 def make_request(method, args) @args = args HTTParty.send(method, "#{@base_url}#{args[:url]}", body: @args[:options], basic_auth: @auth) end