class EasyPing::Charge

Constants

REQUIRED

Public Class Methods

create(*args) click to toggle source
# File lib/easy_ping/action.rb, line 136
def self.create(*args)
  new(EasyPing::Base.config).charge(*args)
end
new(config) click to toggle source
Calls superclass method EasyPing::Action::new
# File lib/easy_ping/action.rb, line 140
def initialize(config)
   super(config)
  @settings = config.to_options.merge default_charge_options
end

Public Instance Methods

all(params={}) click to toggle source
# File lib/easy_ping/action.rb, line 165
def all(params={})
  params = indifferent_hash params

  # map keys to API request format
  params = compile params

  raw_response = client.run :get, api_endpoint, params
  EasyPing::Model::Wrapper.parse! raw_response, config
end
charge(*args) click to toggle source
# File lib/easy_ping/action.rb, line 145
def charge(*args)
  params = indifferent_params(args, 'order_number', 'amount', 'subject', 'body')
  params = @settings.merge params

  # map keys to API request format and verify params
  params = compile params
  verify! params, charge_requires

  # run request and parse return result
  raw_response = client.run(:post, api_endpoint, params)
  EasyPing::Model::Wrapper.parse! raw_response, config
end
find(*args) click to toggle source
# File lib/easy_ping/action.rb, line 158
def find(*args)
  params = indifferent_params(args, 'charge_id')

  raw_response = client.run :get, "#{api_endpoint}/#{params['charge_id']}"
  EasyPing::Model::Wrapper.parse! raw_response, config
end

Private Instance Methods

api_endpoint() click to toggle source
# File lib/easy_ping/action.rb, line 176
def api_endpoint
  '/v1/charges'
end
charge_requires() click to toggle source
# File lib/easy_ping/action.rb, line 193
def charge_requires
  [
    'order_no', 'app[id]', 'channel', 'amount', 'client_ip',
    'currency', 'subject', 'body'
  ]
end
default_charge_options() click to toggle source
# File lib/easy_ping/action.rb, line 189
def default_charge_options
  { 'client_ip' => '127.0.0.1' }
end
mappings() click to toggle source
# File lib/easy_ping/action.rb, line 180
def mappings
  {
    'order_number' => 'order_no',
    'app_id'       => 'app[id]',
    'app'          => 'app[id]',
    'offset'       => 'starting_after'
  }
end