Class: Tinypass::ClientBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/tinypass/builder/client_builder.rb

Constant Summary collapse

TYPE_JSON =
'j'
ENCODING_AES =
'a'
ENCODING_OPEN =
'o'
STD_ENC =
"{jax}"
ZIP_ENC =
"{jzx}"
OPEN_ENC =
"{jox}"

Instance Method Summary collapse

Constructor Details

#initialize(settings = '') ⇒ ClientBuilder

Returns a new instance of ClientBuilder.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tinypass/builder/client_builder.rb', line 12

def initialize(settings = '')
  @private_key = Tinypass.private_key
  @mask = '{'

  @builder = JsonMsgBuilder.new
  @mask << TYPE_JSON

  if settings[2] == ENCODING_OPEN
    @encoder = OpenEncoder.new
    @mask << ENCODING_OPEN
  else
    @encoder = SecureEncoder.new(@private_key)
    @mask << ENCODING_AES
  end

  @mask << 'x}'
end

Instance Method Details

#build_access_tokens(tokens) ⇒ Object



30
31
32
33
# File 'lib/tinypass/builder/client_builder.rb', line 30

def build_access_tokens(tokens)
  tokens = AccessTokenList.new(tokens) if tokens.kind_of?(AccessToken)
  @mask + @encoder.encode(@builder.build_access_tokens(tokens))
end

#build_purchase_request(requests) ⇒ Object



35
36
37
38
# File 'lib/tinypass/builder/client_builder.rb', line 35

def build_purchase_request(requests)
  requests = Array(requests)
  @mask + @encoder.encode(@builder.build_purchase_requests(requests))
end