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
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 51 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
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 79 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
46 47 48 49 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 46 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
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 33 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 25 26 27 28 29 30 31 |
# 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) # if a customer is provided, the card parameter is assumed to be the actual # card id, not a token. in this case we'll find the card in the customer # object and return that. if params[:customer] params[:card] = get_card(customers[params[:customer]], params[:card]) else params[:card] = get_card_by_token(params[:card]) end 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
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 68 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 |