Module: StripeMock::RequestHandlers::Charges
- Included in:
- Instance
- Defined in:
- lib/stripe_mock/request_handlers/charges.rb
Class Method Summary collapse
Instance Method Summary collapse
- #capture_charge(route, method_url, params, headers) ⇒ Object
- #create_refund(route, method_url, params, headers) ⇒ Object
- #get_charge(route, method_url, params, headers) ⇒ Object
- #get_charges(route, method_url, params, headers) ⇒ Object
- #new_charge(route, method_url, params, headers) ⇒ Object
- #refund_charge(route, method_url, params, headers) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 5 def Charges.included(klass) klass.add_handler 'post /v1/charges', :new_charge klass.add_handler 'get /v1/charges', :get_charges klass.add_handler 'get /v1/charges/(.*)', :get_charge klass.add_handler 'post /v1/charges/(.*)/capture', :capture_charge klass.add_handler 'post /v1/charges/(.*)/refund', :refund_charge klass.add_handler 'post /v1/charges/(.*)/refunds', :create_refund end |
Instance Method Details
#capture_charge(route, method_url, params, headers) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 44 def capture_charge(route, method_url, params, headers) route =~ method_url charge = assert_existance :charge, $1, charges[$1] if params[:amount] refund = Data.mock_refund( :balance_transaction => new_balance_transaction('txn'), :id => new_id('re'), :amount => charge[:amount] - params[:amount] ) add_refund_to_charge(refund, charge) end charge[:captured] = true charge end |
#create_refund(route, method_url, params, headers) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 72 def create_refund(route, method_url, params, headers) charge = get_charge(route, method_url, params, headers) refund = Data.mock_refund params.merge( :balance_transaction => new_balance_transaction('txn'), :id => new_id('re'), :charge => charge[:id] ) add_refund_to_charge(refund, charge) refund end |
#get_charge(route, method_url, params, headers) ⇒ Object
39 40 41 42 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 39 def get_charge(route, method_url, params, headers) route =~ method_url assert_existance :charge, $1, charges[$1] end |
#get_charges(route, method_url, params, headers) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 26 def get_charges(route, method_url, params, headers) params[:offset] ||= 0 params[:count] ||= 10 clone = charges.clone if params[:customer] clone.delete_if { |k,v| v[:customer] != params[:customer] } end clone.values[params[:offset], params[:count]] end |
#new_charge(route, method_url, params, headers) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 14 def new_charge(route, method_url, params, headers) id = new_id('ch') if params[:card] && params[:card].is_a?(String) params[:card] = get_card_by_token(params[:card]) elsif params[:card] && params[:card][:id] raise Stripe::InvalidRequestError.new("Invalid token id: #{params[:card]}", 'card', 400) end charges[id] = Data.mock_charge(params.merge :id => id, :balance_transaction => new_balance_transaction('txn')) end |
#refund_charge(route, method_url, params, headers) ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 61 def refund_charge(route, method_url, params, headers) charge = get_charge(route, method_url, params, headers) refund = Data.mock_refund params.merge( :balance_transaction => new_balance_transaction('txn'), :id => new_id('re') ) add_refund_to_charge(refund, charge) charge end |