Class: BasecommSdk::Client

Inherits:
Object
  • Object
show all
Includes:
BasecommSdk
Defined in:
lib/basecomm_sdk/client.rb

Constant Summary collapse

DEFAULT_BASE_URL =
'https://gateway.basecommerce.com'
DEFAULT_SANDBOX_URL =
'https://gateway.basecommercesandbox.com'

Constants included from BasecommSdk

VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from BasecommSdk

#logger, root

Constructor Details

#initialize(args) ⇒ Client

Returns a new instance of Client.



11
12
13
14
15
16
17
18
19
# File 'lib/basecomm_sdk/client.rb', line 11

def initialize(args)
  @gateway_username = args[:gateway_username]
  @gateway_password = args[:gateway_password]
  @key = args[:key]
  @sandbox = args[:sandbox]
  @url = args.fetch(:url) do
    @sandbox ? DEFAULT_SANDBOX_URL : DEFAULT_BASE_URL
  end
end

Instance Attribute Details

#gateway_passwordObject (readonly)

Returns the value of attribute gateway_password.



8
9
10
# File 'lib/basecomm_sdk/client.rb', line 8

def gateway_password
  @gateway_password
end

#gateway_usernameObject (readonly)

Returns the value of attribute gateway_username.



8
9
10
# File 'lib/basecomm_sdk/client.rb', line 8

def gateway_username
  @gateway_username
end

#keyObject (readonly)

Returns the value of attribute key.



8
9
10
# File 'lib/basecomm_sdk/client.rb', line 8

def key
  @key
end

#sandboxObject (readonly)

Returns the value of attribute sandbox.



8
9
10
# File 'lib/basecomm_sdk/client.rb', line 8

def sandbox
  @sandbox
end

#urlObject

Returns the value of attribute url.



9
10
11
# File 'lib/basecomm_sdk/client.rb', line 9

def url
  @url
end

Instance Method Details

#add_bank_account(bank_account) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/basecomm_sdk/client.rb', line 39

def ()
  response = do_request(
      api_endpoint(__method__),
      encrypt_payload(.to_json)
  )
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_account
  )
  BankAccount.from_json(decrypted_payload)
end

#add_bank_card(bank_card) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/basecomm_sdk/client.rb', line 51

def add_bank_card(bank_card)
  json = bank_card.to_json
  logger.debug("#{__method__}: #{json}")
  response = do_request(
      api_endpoint(__method__),
      encrypt_payload(json)
  )
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_card
  )
  BankCard.from_json(decrypted_payload)
end

#get_bank_account_transaction(transaction_id) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/basecomm_sdk/client.rb', line 30

def (transaction_id)
  response = do_request(api_endpoint(__method__), transaction_id)
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_account_transaction
  )
  BankAccountTransaction.from_json(decrypted_payload)
end

#get_bank_card_transaction(transaction_id) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/basecomm_sdk/client.rb', line 21

def get_bank_card_transaction(transaction_id)
  response = do_request(api_endpoint(__method__), transaction_id)
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_card_transaction
  )
  BankCardTransaction.from_json(decrypted_payload)
end

#pingObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/basecomm_sdk/client.rb', line 93

def ping
  json = {'PING' => 'PING'}.to_json
  endpoint = '/pcms/?f=API_PingPong'

  begin
    response = do_request(
        endpoint,
        encrypt_payload(json)
    )
    result = decrypt_payload_to_json(
        response.body,
        :success
    )
    parsed_result = JSON.parse(result)
    parsed_result.fetch('success', 'failure') == 'success'
  rescue
    false
  end
end

#process_bank_account_transaction(bat) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/basecomm_sdk/client.rb', line 65

def (bat)
  json = bat.to_json
  logger.debug("#{__method__}: #{json}")
  response = do_request(
      api_endpoint(__method__),
      encrypt_payload(json)
  )
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_account_transaction
  )
  BankAccountTransaction.from_json(decrypted_payload)
end

#process_bank_card_transaction(bct) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/basecomm_sdk/client.rb', line 79

def process_bank_card_transaction(bct)
  json = bct.to_json
  logger.debug("#{__method__}: #{json}")
  response = do_request(
      api_endpoint(__method__),
      encrypt_payload(json)
  )
  decrypted_payload = decrypt_payload_to_json(
      response.body,
      :bank_card_transaction
  )
  BankCardTransaction.from_json(decrypted_payload)
end