@@ -3,15 +3,31 @@ module RequestHandlers
3
3
module Tokens
4
4
5
5
def Tokens . included ( klass )
6
- klass . add_handler 'post /v1/tokens' , :create_token
6
+ klass . add_handler 'post /v1/tokens' , :create_token
7
+ klass . add_handler 'get /v1/tokens/(.*)' , :get_token
7
8
end
8
9
9
10
def create_token ( route , method_url , params , headers )
10
- card = Data . mock_card ( params [ :card ] . merge ( last4 : params [ :card ] [ :number ] [ -4 , 4 ] , customer : nil ) )
11
- id = generate_card_token ( card )
12
- Data . mock_token ( :id => id , :card => card )
11
+ # "Sanitize" card number
12
+ params [ :card ] [ :last4 ] = params [ :card ] [ :number ] [ -4 , 4 ]
13
+ token_id = generate_card_token ( params [ :card ] )
14
+ card = @card_tokens [ token_id ]
15
+
16
+ Data . mock_token ( params . merge :id => token_id , :card => card )
13
17
end
14
18
19
+ def get_token ( route , method_url , params , headers )
20
+ route =~ method_url
21
+ # A Stripe token can be either a bank token or a card token
22
+ bank_or_card = @bank_tokens [ $1] || @card_tokens [ $1]
23
+ assert_existance :token , $1, bank_or_card
24
+
25
+ if bank_or_card [ :object ] == 'card'
26
+ Data . mock_token ( :id => $1, :card => bank_or_card )
27
+ elsif bank_or_card [ :object ] == 'bank_account'
28
+ Data . mock_token ( :id => $1, :bank_account => bank_or_card )
29
+ end
30
+ end
15
31
end
16
32
end
17
33
end
0 commit comments