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