Class: Braintree::ClientTokenGateway
  
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
          - Object
 
          
            - Braintree::ClientTokenGateway
 
          
        
        show all
      
     
  
  
  
  
  
  
  
      - Includes:
 
      - BaseModule
 
  
  
  
  
  
  
    - Defined in:
 
    - lib/braintree/client_token_gateway.rb
 
  
  
 
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods included from BaseModule
  included
  
  
  
  
  
  
  
  
  
  #copy_instance_variables_from_object, #return_object_or_raise, #set_instance_variables_from_hash, #singleton_class
  Constructor Details
  
    
  
  
    
Returns a new instance of ClientTokenGateway.
   
 
  
  
    
      
5
6
7
8
9 
     | 
    
      # File 'lib/braintree/client_token_gateway.rb', line 5
def initialize(gateway)
  @gateway = gateway
  @config = gateway.config
  @config.assert_has_access_token_or_keys
end 
     | 
  
 
  
 
  
    Class Method Details
    
      
  
  
    ._generate_signature  ⇒ Object 
  
  
  
  
    
      
28
29
30
31
32
33
34
35 
     | 
    
      # File 'lib/braintree/client_token_gateway.rb', line 28
def self._generate_signature
  [
    :address_id, :customer_id, :proxy_merchant_id, :merchant_account_id,
    :version,
    {:domains => [:_any_key_]},
    {:options => [:make_default, :verify_card, :fail_on_duplicate_payment_method]}
  ]
end
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    #_validate_options(options)  ⇒ Object 
  
  
  
  
    
      
37
38
39
40
41
42
43 
     | 
    
      # File 'lib/braintree/client_token_gateway.rb', line 37
def _validate_options(options)
  [:make_default, :fail_on_duplicate_payment_method, :verify_card].each do |credit_card_option|
    if options[credit_card_option]
      raise ArgumentError.new("cannot specify #{credit_card_option} without a customer_id") unless options[:customer_id]
    end
  end
end
     | 
  
 
    
      
  
  
    #generate(options = {})  ⇒ Object 
  
  
  
  
    
      
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 
     | 
    
      # File 'lib/braintree/client_token_gateway.rb', line 11
def generate(options={})
  _validate_options(options)
  options[:version] ||= ClientToken::DEFAULT_VERSION
  Util.verify_keys(ClientTokenGateway._generate_signature, options)
  params = {:client_token => options}
  result = @config.http.post("#{@config.base_merchant_path}/client_token", params)
  if result[:client_token]
    result[:client_token][:value]
  else
    raise ArgumentError, result[:api_error_response][:message]
  end
end
     |