module StripeMock::RequestHandlers::PaymentMethods
Public Class Methods
included(klass)
click to toggle source
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 4 def PaymentMethods.included(klass) klass.add_handler 'post /v1/payment_methods', :new_payment_method klass.add_handler 'get /v1/payment_methods/(.*)', :get_payment_method klass.add_handler 'get /v1/payment_methods', :get_payment_methods klass.add_handler 'post /v1/payment_methods/(.*)/attach', :attach_payment_method klass.add_handler 'post /v1/payment_methods/(.*)/detach', :detach_payment_method klass.add_handler 'post /v1/payment_methods/(.*)', :update_payment_method end
Public Instance Methods
attach_payment_method(route, method_url, params, headers)
click to toggle source
post /v1/payment_methods/:id/attach
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 51 def attach_payment_method(route, method_url, params, headers) allowed_params = [:customer] id = method_url.match(route)[1] assert_existence :customer, params[:customer], customers[params[:customer]] payment_method = assert_existence :payment_method, id, payment_methods[id] payment_methods[id] = Util.rmerge(payment_method, params.select { |k, _v| allowed_params.include?(k) }) payment_methods[id].clone end
detach_payment_method(route, method_url, params, headers)
click to toggle source
post /v1/payment_methods/:id/detach
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 64 def detach_payment_method(route, method_url, params, headers) id = method_url.match(route)[1] payment_method = assert_existence :payment_method, id, payment_methods[id] payment_method[:customer] = nil payment_method.clone end
get_payment_method(route, method_url, params, headers)
click to toggle source
get /v1/payment_methods/:id
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 29 def get_payment_method(route, method_url, params, headers) id = method_url.match(route)[1] || params[:payment_method] payment_method = assert_existence :payment_method, id, payment_methods[id] payment_method.clone end
get_payment_methods(route, method_url, params, headers)
click to toggle source
get /v1/payment_methods
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 37 def get_payment_methods(route, method_url, params, headers) params[:offset] ||= 0 params[:limit] ||= 10 clone = payment_methods.clone if params[:customer] clone.delete_if { |_k, v| v[:customer] != params[:customer] } end Data.mock_list_object(clone.values, params) end
new_payment_method(route, method_url, params, headers)
click to toggle source
post /v1/payment_methods
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 14 def new_payment_method(route, method_url, params, headers) id = new_id('pm') ensure_payment_method_required_params(params) payment_methods[id] = Data.mock_payment_method( params.merge( id: id ) ) payment_methods[id].clone end
update_payment_method(route, method_url, params, headers)
click to toggle source
post /v1/payment_methods/:id
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 74 def update_payment_method(route, method_url, params, headers) allowed_params = [:billing_details, :card, :metadata] id = method_url.match(route)[1] payment_method = assert_existence :payment_method, id, payment_methods[id] if payment_method[:customer].nil? raise Stripe::InvalidRequestError.new( 'You must save this PaymentMethod to a customer before you can update it.', http_status: 400 ) end payment_methods[id] = Util.rmerge(payment_method, params.select { |k, _v| allowed_params.include?(k)} ) payment_methods[id].clone end
Private Instance Methods
ensure_payment_method_required_params(params)
click to toggle source
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 96 def ensure_payment_method_required_params(params) require_param(:type) if params[:type].nil? if invalid_type?(params[:type]) raise Stripe::InvalidRequestError.new( 'Invalid type: must be one of card or card_present', http_status: 400 ) end end
invalid_type?(type)
click to toggle source
# File lib/stripe_mock/request_handlers/payment_methods.rb, line 107 def invalid_type?(type) !['card', 'card_present'].include?(type) end