module StripeMock::RequestHandlers::Tokens
Public Class Methods
included(klass)
click to toggle source
# File lib/stripe_mock/request_handlers/tokens.rb, line 5 def Tokens.included(klass) klass.add_handler 'post /v1/tokens', :create_token klass.add_handler 'get /v1/tokens/(.*)', :get_token end
Public Instance Methods
create_token(route, method_url, params, headers)
click to toggle source
# File lib/stripe_mock/request_handlers/tokens.rb, line 10 def create_token(route, method_url, params, headers) if params[:customer].nil? && params[:card].nil? && params[:bank_account].nil? raise Stripe::InvalidRequestError.new('You must supply either a card, customer, or bank account to create a token.', nil, http_status: 400) end cus_id = params[:customer] if cus_id && params[:source] customer = assert_existence :customer, cus_id, customers[cus_id] # params[:card] is an id; grab it from the db customer_card = get_card(customer, params[:source]) assert_existence :card, params[:source], customer_card elsif params[:card].is_a?(String) customer = assert_existence :customer, cus_id, customers[cus_id] # params[:card] is an id; grab it from the db customer_card = get_card(customer, params[:card]) assert_existence :card, params[:card], customer_card elsif params[:card] # params[:card] is a hash of cc info; "Sanitize" the card number params[:card][:fingerprint] = StripeMock::Util.fingerprint(params[:card][:number]) params[:card][:last4] = params[:card][:number][-4,4] customer_card = params[:card] elsif params[:bank_account].is_a?(String) customer = assert_existence :customer, cus_id, customers[cus_id] # params[:bank_account] is an id; grab it from the db bank_account = verify_bank_account(customer, params[:bank_account]) assert_existence :bank_account, params[:bank_account], bank_account elsif params[:bank_account] # params[:card] is a hash of cc info; "Sanitize" the card number bank_account = params[:bank_account] else customer = assert_existence :customer, cus_id, customers[cus_id] customer_card = get_card(customer, customer[:default_source]) end if bank_account token_id = generate_bank_token(bank_account.dup) bank_account = @bank_tokens[token_id] Data.mock_bank_account_token(params.merge :id => token_id, :bank_account => bank_account) else token_id = generate_card_token(customer_card.dup) card = @card_tokens[token_id] Data.mock_card_token(params.merge :id => token_id, :card => card) end end
get_token(route, method_url, params, headers)
click to toggle source
# File lib/stripe_mock/request_handlers/tokens.rb, line 61 def get_token(route, method_url, params, headers) route =~ method_url # A Stripe token can be either a bank token or a card token bank_or_card = @bank_tokens[$1] || @card_tokens[$1] assert_existence :token, $1, bank_or_card if bank_or_card[:object] == 'card' Data.mock_card_token(:id => $1, :card => bank_or_card) elsif bank_or_card[:object] == 'bank_account' Data.mock_bank_account_token(:id => $1, :bank_account => bank_or_card) end end