Module: StripeMock::RequestHandlers::PaymentIntents
- Included in:
- Instance
- Defined in:
- lib/stripe_mock/request_handlers/payment_intents.rb
Constant Summary collapse
- ALLOWED_PARAMS =
[:description, :metadata, :receipt_email, :shipping, :destination, :payment_method, :payment_method_types, :setup_future_usage, :transfer_data, :amount, :currency]
Class Method Summary collapse
Instance Method Summary collapse
- #cancel_payment_intent(route, method_url, params, headers) ⇒ Object
- #capture_payment_intent(route, method_url, params, headers) ⇒ Object
- #confirm_payment_intent(route, method_url, params, headers) ⇒ Object
- #get_payment_intent(route, method_url, params, headers) ⇒ Object
- #get_payment_intents(route, method_url, params, headers) ⇒ Object
- #new_payment_intent(route, method_url, params, headers) ⇒ Object
- #update_payment_intent(route, method_url, params, headers) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 6 def PaymentIntents.included(klass) klass.add_handler 'post /v1/payment_intents', :new_payment_intent klass.add_handler 'get /v1/payment_intents', :get_payment_intents klass.add_handler 'get /v1/payment_intents/(.*)', :get_payment_intent klass.add_handler 'post /v1/payment_intents/(.*)/confirm', :confirm_payment_intent klass.add_handler 'post /v1/payment_intents/(.*)/capture', :capture_payment_intent klass.add_handler 'post /v1/payment_intents/(.*)/cancel', :cancel_payment_intent klass.add_handler 'post /v1/payment_intents/(.*)', :update_payment_intent end |
Instance Method Details
#cancel_payment_intent(route, method_url, params, headers) ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 87 def cancel_payment_intent(route, method_url, params, headers) route =~ method_url payment_intent = assert_existence :payment_intent, $1, payment_intents[$1] payment_intent[:status] = 'canceled' payment_intent end |
#capture_payment_intent(route, method_url, params, headers) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 73 def capture_payment_intent(route, method_url, params, headers) route =~ method_url payment_intent = assert_existence :payment_intent, $1, payment_intents[$1] succeeded_payment_intent(payment_intent) end |
#confirm_payment_intent(route, method_url, params, headers) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 80 def confirm_payment_intent(route, method_url, params, headers) route =~ method_url payment_intent = assert_existence :payment_intent, $1, payment_intents[$1] succeeded_payment_intent(payment_intent) end |
#get_payment_intent(route, method_url, params, headers) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 64 def get_payment_intent(route, method_url, params, headers) route =~ method_url payment_intent_id = $1 || params[:payment_intent] payment_intent = assert_existence :payment_intent, payment_intent_id, payment_intents[payment_intent_id] payment_intent = payment_intent.clone payment_intent end |
#get_payment_intents(route, method_url, params, headers) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 51 def get_payment_intents(route, method_url, params, headers) params[:offset] ||= 0 params[:limit] ||= 10 clone = payment_intents.clone if params[:customer] clone.delete_if { |k,v| v[:customer] != params[:customer] } end Data.mock_list_object(clone.values, params) end |
#new_payment_intent(route, method_url, params, headers) ⇒ Object
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/payment_intents.rb', line 16 def new_payment_intent(route, method_url, params, headers) id = new_id('pi') ensure_payment_intent_required_params(params) status = case params[:amount] when 3184 then 'requires_action' when 3178 then 'requires_payment_method' when 3055 then 'requires_capture' else 'succeeded' end last_payment_error = params[:amount] == 3178 ? last_payment_error_generator(code: 'card_declined', decline_code: 'insufficient_funds', message: 'Not enough funds.') : nil payment_intents[id] = Data.mock_payment_intent( params.merge( id: id, status: status, last_payment_error: last_payment_error ) ) if params[:confirm] && status == 'succeeded' payment_intents[id] = succeeded_payment_intent(payment_intents[id]) end payment_intents[id].clone end |
#update_payment_intent(route, method_url, params, headers) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/stripe_mock/request_handlers/payment_intents.rb', line 43 def update_payment_intent(route, method_url, params, headers) route =~ method_url id = $1 payment_intent = assert_existence :payment_intent, id, payment_intents[id] payment_intents[id] = Util.rmerge(payment_intent, params.select{ |k,v| ALLOWED_PARAMS.include?(k)}) end |