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
- #update_charge(route, method_url, params, headers) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# 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 klass.add_handler 'post /v1/charges/(.*)', :update_charge end |
Instance Method Details
#capture_charge(route, method_url, params, headers) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 75 def capture_charge(route, method_url, params, headers) route =~ method_url charge = assert_existence :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 if params[:application_fee] charge[:application_fee] = params[:application_fee] end charge[:captured] = true charge end |
#create_refund(route, method_url, params, headers) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 107 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
70 71 72 73 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 70 def get_charge(route, method_url, params, headers) route =~ method_url assert_existence :charge, $1, charges[$1] end |
#get_charges(route, method_url, params, headers) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 57 def get_charges(route, method_url, params, headers) params[:offset] ||= 0 params[:limit] ||= 10 clone = charges.clone if params[:customer] clone.delete_if { |k,v| v[:customer] != params[:customer] } end Data.mock_list_object(clone.values, params) end |
#new_charge(route, method_url, params, headers) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 15 def new_charge(route, method_url, params, headers) id = new_id('ch') if params[:source] if params[:source].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[:source] = get_card(customers[params[:customer]], params[:source]) else params[:source] = get_card_by_token(params[:source]) end elsif params[:source][:id] raise Stripe::InvalidRequestError.new("Invalid token id: #{params[:source]}", 'card', 400) end elsif params[:customer] customer = customers[params[:customer]] if customer && customer[:default_source] params[:source] = get_card(customer, customer[:default_source]) end end ensure_required_params(params) charges[id] = Data.mock_charge(params.merge :id => id, :balance_transaction => new_balance_transaction('txn')) end |
#refund_charge(route, method_url, params, headers) ⇒ Object
96 97 98 99 100 101 102 103 104 105 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 96 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 |
#update_charge(route, method_url, params, headers) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/stripe_mock/request_handlers/charges.rb', line 43 def update_charge(route, method_url, params, headers) route =~ method_url id = $1 charge = assert_existence :charge, id, charges[id] allowed = allowed_params(params) disallowed = params.keys - allowed if disallowed.count > 0 raise Stripe::InvalidRequestError.new("Received unknown parameters: #{disallowed.join(', ')}" , '', 400) end charges[id] = Util.rmerge(charge, params) end |