cardconnect 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +11 -0
  3. data/.rubocop.yml +10 -0
  4. data/.travis.yml +7 -0
  5. data/README.md +2 -0
  6. data/Rakefile +70 -42
  7. data/cardconnect.gemspec +8 -8
  8. data/lib/cardconnect.rb +1 -4
  9. data/lib/cardconnect/configuration.rb +0 -1
  10. data/lib/cardconnect/connection.rb +12 -16
  11. data/lib/cardconnect/error.rb +1 -1
  12. data/lib/cardconnect/services/authorization/authorization.rb +1 -3
  13. data/lib/cardconnect/services/authorization/authorization_request.rb +6 -5
  14. data/lib/cardconnect/services/authorization/authorization_response.rb +7 -7
  15. data/lib/cardconnect/services/capture/capture.rb +0 -2
  16. data/lib/cardconnect/services/capture/capture_request.rb +4 -5
  17. data/lib/cardconnect/services/capture/capture_response.rb +3 -4
  18. data/lib/cardconnect/services/deposit/deposit.rb +1 -3
  19. data/lib/cardconnect/services/deposit/deposit_request.rb +8 -11
  20. data/lib/cardconnect/services/deposit/deposit_response.rb +4 -5
  21. data/lib/cardconnect/services/inquire/inquire.rb +0 -2
  22. data/lib/cardconnect/services/inquire/inquire_request.rb +3 -4
  23. data/lib/cardconnect/services/inquire/inquire_response.rb +3 -4
  24. data/lib/cardconnect/services/refund/refund.rb +1 -2
  25. data/lib/cardconnect/services/refund/refund_request.rb +5 -6
  26. data/lib/cardconnect/services/refund/refund_response.rb +7 -7
  27. data/lib/cardconnect/services/service_endpoint.rb +10 -14
  28. data/lib/cardconnect/services/settlement_status/settlement_status.rb +0 -2
  29. data/lib/cardconnect/services/settlement_status/settlement_status_request.rb +8 -11
  30. data/lib/cardconnect/services/settlement_status/settlement_status_response.rb +4 -5
  31. data/lib/cardconnect/services/void/void.rb +1 -2
  32. data/lib/cardconnect/services/void/void_request.rb +5 -6
  33. data/lib/cardconnect/services/void/void_response.rb +8 -7
  34. data/lib/cardconnect/utils.rb +0 -2
  35. data/lib/cardconnect/version.rb +1 -1
  36. data/test/api_request_stubs.rb +56 -52
  37. data/test/api_response_stubs.rb +87 -92
  38. data/test/cardconnect/configuration_test.rb +0 -1
  39. data/test/cardconnect/connection_test.rb +1 -1
  40. data/test/cardconnect/services/authorization/authorization_request_test.rb +44 -27
  41. data/test/cardconnect/services/authorization/authorization_response_test.rb +24 -18
  42. data/test/cardconnect/services/authorization/authorization_test.rb +1 -4
  43. data/test/cardconnect/services/capture/capture_request_test.rb +8 -8
  44. data/test/cardconnect/services/capture/capture_response_test.rb +7 -7
  45. data/test/cardconnect/services/capture/capture_test.rb +1 -3
  46. data/test/cardconnect/services/deposit/deposit_request_test.rb +9 -9
  47. data/test/cardconnect/services/deposit/deposit_response_test.rb +17 -15
  48. data/test/cardconnect/services/deposit/deposit_test.rb +4 -4
  49. data/test/cardconnect/services/inquire/inquire_request_test.rb +3 -3
  50. data/test/cardconnect/services/inquire/inquire_response_test.rb +12 -12
  51. data/test/cardconnect/services/inquire/inquire_test.rb +5 -5
  52. data/test/cardconnect/services/refund/refund_request_test.rb +3 -3
  53. data/test/cardconnect/services/refund/refund_response_test.rb +15 -13
  54. data/test/cardconnect/services/refund/refund_test.rb +1 -2
  55. data/test/cardconnect/services/settlement_status/settlement_status_request_test.rb +12 -11
  56. data/test/cardconnect/services/settlement_status/settlement_status_response_test.rb +9 -8
  57. data/test/cardconnect/services/settlement_status/settlement_status_test.rb +4 -4
  58. data/test/cardconnect/services/void/void_request_test.rb +3 -3
  59. data/test/cardconnect/services/void/void_response_test.rb +16 -14
  60. data/test/cardconnect/services/void/void_test.rb +1 -2
  61. data/test/cardconnect_test.rb +0 -1
  62. data/test/test_helper.rb +15 -13
  63. metadata +6 -3
@@ -1,7 +1,6 @@
1
1
  module CardConnect
2
2
  module Service
3
3
  class Capture < ServiceEndpoint
4
-
5
4
  # Initializes a Capture Service
6
5
  #
7
6
  # @param connection [CardConnect::Connection]
@@ -11,7 +10,6 @@ module CardConnect
11
10
  @resource_name = '/capture'
12
11
  @rest_method = 'put'
13
12
  end
14
-
15
13
  end
16
14
  end
17
15
  end
@@ -3,13 +3,13 @@ module CardConnect
3
3
  class CaptureRequest
4
4
  include Utils
5
5
 
6
- REQUIRED_FIELDS = [:merchid, :retref]
6
+ REQUIRED_FIELDS = [:merchid, :retref].freeze
7
7
 
8
- OPTIONAL_FIELDS = [:authcode, :amount, :invoiceid, :ponumber, :taxamnt]
8
+ OPTIONAL_FIELDS = [:authcode, :amount, :invoiceid, :ponumber, :taxamnt].freeze
9
9
 
10
10
  FIELDS = REQUIRED_FIELDS + OPTIONAL_FIELDS
11
11
 
12
- attr_accessor *FIELDS
12
+ attr_accessor(*FIELDS)
13
13
  attr_reader :errors
14
14
 
15
15
  # Initializes a new Capture Request
@@ -31,7 +31,7 @@ module CardConnect
31
31
  def payload
32
32
  payload = {}
33
33
  FIELDS.each do |field|
34
- payload.merge!({field => send(field)})
34
+ payload.merge!(field => send(field))
35
35
  end
36
36
  payload
37
37
  end
@@ -44,7 +44,6 @@ module CardConnect
44
44
  value.nil? || value.empty? ? errors.push("#{field.capitalize} is missing") : next
45
45
  end
46
46
  end
47
-
48
47
  end
49
48
  end
50
49
  end
@@ -3,9 +3,9 @@ module CardConnect
3
3
  class CaptureResponse
4
4
  include Utils
5
5
 
6
- FIELDS = [:merchid, :account, :amount, :retref, :setlstat]
6
+ FIELDS = [:merchid, :account, :amount, :retref, :setlstat].freeze
7
7
 
8
- attr_accessor *FIELDS
8
+ attr_accessor(*FIELDS)
9
9
 
10
10
  def initialize(response)
11
11
  set_attributes(response, FIELDS)
@@ -14,11 +14,10 @@ module CardConnect
14
14
  def body
15
15
  body = {}
16
16
  FIELDS.each do |attr|
17
- body.merge!({attr => send(attr)})
17
+ body.merge!(attr => send(attr))
18
18
  end
19
19
  body
20
20
  end
21
-
22
21
  end
23
22
  end
24
23
  end
@@ -1,7 +1,6 @@
1
1
  module CardConnect
2
2
  module Service
3
3
  class Deposit < ServiceEndpoint
4
-
5
4
  # Initializes a Deposit Service
6
5
  #
7
6
  # @param connection [CardConnect::Connection]
@@ -11,7 +10,6 @@ module CardConnect
11
10
  @resource_name = '/deposit'
12
11
  @rest_method = 'get'
13
12
  end
14
-
15
13
  end
16
14
  end
17
- end
15
+ end
@@ -5,11 +5,11 @@ module CardConnect
5
5
  class DepositRequest
6
6
  include Utils
7
7
 
8
- REQUIRED_FIELDS = [:merchid, :date]
8
+ REQUIRED_FIELDS = [:merchid, :date].freeze
9
9
 
10
10
  FIELDS = REQUIRED_FIELDS
11
11
 
12
- attr_accessor *FIELDS
12
+ attr_accessor(*FIELDS)
13
13
  attr_reader :errors
14
14
 
15
15
  # Initializes a new Deposit Request
@@ -29,7 +29,7 @@ module CardConnect
29
29
 
30
30
  # Builds the request payload
31
31
  def payload
32
- payload = "?"
32
+ payload = '?'
33
33
  FIELDS.each do |field|
34
34
  payload += "#{field}=#{send(field)}&"
35
35
  end
@@ -51,14 +51,11 @@ module CardConnect
51
51
  end
52
52
 
53
53
  def validate_date_format
54
- begin
55
- raise if date.length != 4
56
- Date.parse(date, '%m%d')
57
- rescue => e
58
- errors.push("Date format is invalid. Please use MMDD format")
59
- end
54
+ raise if date.length != 4
55
+ Date.parse(date, '%m%d')
56
+ rescue
57
+ errors.push('Date format is invalid. Please use MMDD format')
60
58
  end
61
-
62
59
  end
63
60
  end
64
- end
61
+ end
@@ -4,9 +4,9 @@ module CardConnect
4
4
  include Utils
5
5
 
6
6
  FIELDS = [:depositid, :merchid, :respproc, :accttype, :action, :actdate,
7
- :postdate, :currency, :amount, :feeamnt, :cbakamnt, :resptext, :txns]
7
+ :postdate, :currency, :amount, :feeamnt, :cbakamnt, :resptext, :txns].freeze
8
8
 
9
- attr_accessor *FIELDS
9
+ attr_accessor(*FIELDS)
10
10
  attr_reader :errors
11
11
 
12
12
  def initialize(response)
@@ -23,7 +23,7 @@ module CardConnect
23
23
  def body
24
24
  body = {}
25
25
  FIELDS.each do |attr|
26
- body.merge!({attr => send(attr)})
26
+ body.merge!(attr => send(attr))
27
27
  end
28
28
  body
29
29
  end
@@ -32,9 +32,8 @@ module CardConnect
32
32
 
33
33
  def parse_transactions
34
34
  return if txns.nil?
35
- txns.each_with_index { |txn, i| self.txns[i] = symbolize_keys(txn) }
35
+ txns.each_with_index { |txn, i| txns[i] = symbolize_keys(txn) }
36
36
  end
37
-
38
37
  end
39
38
  end
40
39
  end
@@ -1,7 +1,6 @@
1
1
  module CardConnect
2
2
  module Service
3
3
  class Inquire < ServiceEndpoint
4
-
5
4
  # Initializes a Inquire Service
6
5
  #
7
6
  # @param connection [CardConnect::Connection]
@@ -11,7 +10,6 @@ module CardConnect
11
10
  @resource_name = '/inquire'
12
11
  @rest_method = 'get'
13
12
  end
14
-
15
13
  end
16
14
  end
17
15
  end
@@ -3,11 +3,11 @@ module CardConnect
3
3
  class InquireRequest
4
4
  include Utils
5
5
 
6
- REQUIRED_FIELDS = [:merchid, :retref]
6
+ REQUIRED_FIELDS = [:merchid, :retref].freeze
7
7
 
8
8
  FIELDS = REQUIRED_FIELDS
9
9
 
10
- attr_accessor *FIELDS
10
+ attr_accessor(*FIELDS)
11
11
  attr_reader :errors
12
12
 
13
13
  # Initializes a new Inquire Request
@@ -38,7 +38,6 @@ module CardConnect
38
38
  value.nil? || value.empty? ? errors.push("#{field.capitalize} is missing") : next
39
39
  end
40
40
  end
41
-
42
41
  end
43
42
  end
44
- end
43
+ end
@@ -4,9 +4,9 @@ module CardConnect
4
4
  include Utils
5
5
 
6
6
  FIELDS = [:merchid, :account, :amount, :currency, :retref, :respcode,
7
- :respproc, :respstat, :resptext, :setlstat]
7
+ :respproc, :respstat, :resptext, :setlstat].freeze
8
8
 
9
- attr_accessor *FIELDS
9
+ attr_accessor(*FIELDS)
10
10
  attr_reader :errors
11
11
 
12
12
  def initialize(response)
@@ -21,11 +21,10 @@ module CardConnect
21
21
  def body
22
22
  body = {}
23
23
  FIELDS.each do |attr|
24
- body.merge!({attr => send(attr)})
24
+ body.merge!(attr => send(attr))
25
25
  end
26
26
  body
27
27
  end
28
-
29
28
  end
30
29
  end
31
30
  end
@@ -1,7 +1,6 @@
1
1
  module CardConnect
2
2
  module Service
3
3
  class Refund < ServiceEndpoint
4
-
5
4
  # Initializes a Refund Service
6
5
  #
7
6
  # @param connection [CardConnect::Connection]
@@ -13,4 +12,4 @@ module CardConnect
13
12
  end
14
13
  end
15
14
  end
16
- end
15
+ end
@@ -3,13 +3,13 @@ module CardConnect
3
3
  class RefundRequest
4
4
  include Utils
5
5
 
6
- REQUIRED_FIELDS = [:merchid, :retref]
6
+ REQUIRED_FIELDS = [:merchid, :retref].freeze
7
7
 
8
- OPTIONAL_FIELDS = [:amount]
8
+ OPTIONAL_FIELDS = [:amount].freeze
9
9
 
10
10
  FIELDS = REQUIRED_FIELDS + OPTIONAL_FIELDS
11
11
 
12
- attr_accessor *FIELDS
12
+ attr_accessor(*FIELDS)
13
13
  attr_reader :errors
14
14
 
15
15
  # Initializes a new Refund Request
@@ -31,7 +31,7 @@ module CardConnect
31
31
  def payload
32
32
  payload = {}
33
33
  FIELDS.each do |field|
34
- payload.merge!({field => send(field)})
34
+ payload.merge!(field => send(field))
35
35
  end
36
36
  payload
37
37
  end
@@ -44,7 +44,6 @@ module CardConnect
44
44
  value.nil? || value.empty? ? errors.push("#{field.capitalize} is missing") : next
45
45
  end
46
46
  end
47
-
48
47
  end
49
48
  end
50
- end
49
+ end
@@ -3,14 +3,14 @@ module CardConnect
3
3
  class RefundResponse
4
4
  include Utils
5
5
 
6
- FIELDS = [:merchid, :amount, :retref, :authcode, :respcode, :respproc, :respstat, :resptext]
6
+ FIELDS = [:merchid, :amount, :retref, :authcode, :respcode, :respproc, :respstat, :resptext].freeze
7
7
 
8
- attr_accessor *FIELDS
8
+ attr_accessor(*FIELDS)
9
9
  attr_reader :errors
10
10
 
11
- STATUS_APPROVED = 'A'
12
- STATUS_RETRY = 'B'
13
- STATUS_DECLINED = 'C'
11
+ STATUS_APPROVED = 'A'.freeze
12
+ STATUS_RETRY = 'B'.freeze
13
+ STATUS_DECLINED = 'C'.freeze
14
14
 
15
15
  def initialize(response)
16
16
  set_attributes(response, FIELDS)
@@ -25,7 +25,7 @@ module CardConnect
25
25
  def body
26
26
  body = {}
27
27
  FIELDS.each do |attr|
28
- body.merge!({attr => send(attr)})
28
+ body.merge!(attr => send(attr))
29
29
  end
30
30
  body
31
31
  end
@@ -37,4 +37,4 @@ module CardConnect
37
37
  end
38
38
  end
39
39
  end
40
- end
40
+ end
@@ -22,12 +22,12 @@ module CardConnect
22
22
 
23
23
  def build_request(params = {})
24
24
  req = symbolize_keys(params)
25
- req = req.merge(merchid: @config.merchant_id) unless req.has_key?(:merchid)
25
+ req = req.merge(merchid: @config.merchant_id) unless req.key?(:merchid)
26
26
  @request = request_class.new(req)
27
27
  end
28
28
 
29
29
  def submit
30
- raise CardConnect::Error, "Request has not been built" if request.nil?
30
+ raise CardConnect::Error, 'Request has not been built' if request.nil?
31
31
  @response = send(rest_method)
32
32
  end
33
33
 
@@ -38,19 +38,15 @@ module CardConnect
38
38
  end
39
39
 
40
40
  def get
41
- begin
42
- response_class.new(connection.get(path + request.payload).body)
43
- rescue Faraday::ResourceNotFound => e
44
- puts e.message
45
- end
41
+ response_class.new(connection.get(path + request.payload).body)
42
+ rescue Faraday::ResourceNotFound => e
43
+ puts e.message
46
44
  end
47
45
 
48
46
  def put
49
- begin
50
- response_class.new(connection.put(path, request.payload).body)
51
- rescue Faraday::ResourceNotFound => e
52
- puts e.message
53
- end
47
+ response_class.new(connection.put(path, request.payload).body)
48
+ rescue Faraday::ResourceNotFound => e
49
+ puts e.message
54
50
  end
55
51
 
56
52
  def request_class
@@ -62,8 +58,8 @@ module CardConnect
62
58
  end
63
59
 
64
60
  def string_to_class(str)
65
- str.split('::').inject(Object) { |mod, class_name| mod.const_get(class_name) }
61
+ str.split('::').inject(Object) { |a, e| a.const_get(e) }
66
62
  end
67
63
  end
68
64
  end
69
- end
65
+ end
@@ -1,7 +1,6 @@
1
1
  module CardConnect
2
2
  module Service
3
3
  class SettlementStatus < ServiceEndpoint
4
-
5
4
  # Initializes a Settlement Status Service
6
5
  #
7
6
  # @param connection [CardConnect::Connection]
@@ -11,7 +10,6 @@ module CardConnect
11
10
  @resource_name = '/settlestat'
12
11
  @rest_method = 'get'
13
12
  end
14
-
15
13
  end
16
14
  end
17
15
  end
@@ -5,11 +5,11 @@ module CardConnect
5
5
  class SettlementStatusRequest
6
6
  include Utils
7
7
 
8
- REQUIRED_FIELDS = [:merchid, :date]
8
+ REQUIRED_FIELDS = [:merchid, :date].freeze
9
9
 
10
10
  FIELDS = REQUIRED_FIELDS
11
11
 
12
- attr_accessor *FIELDS
12
+ attr_accessor(*FIELDS)
13
13
  attr_reader :errors
14
14
 
15
15
  # Initializes a new Settlement Status Request
@@ -29,7 +29,7 @@ module CardConnect
29
29
 
30
30
  # Builds the request payload
31
31
  def payload
32
- payload = "?"
32
+ payload = '?'
33
33
  FIELDS.each do |field|
34
34
  payload += "#{field}=#{send(field)}&"
35
35
  end
@@ -51,14 +51,11 @@ module CardConnect
51
51
  end
52
52
 
53
53
  def validate_date_format
54
- begin
55
- raise if date.length != 4
56
- Date.parse(date, '%m%d')
57
- rescue => e
58
- errors.push("Date format is invalid. Please use MMDD format")
59
- end
54
+ raise if date.length != 4
55
+ Date.parse(date, '%m%d')
56
+ rescue
57
+ errors.push('Date format is invalid. Please use MMDD format')
60
58
  end
61
-
62
59
  end
63
60
  end
64
- end
61
+ end
@@ -3,9 +3,9 @@ module CardConnect
3
3
  class SettlementStatusResponse
4
4
  include Utils
5
5
 
6
- FIELDS = [:merchid, :batchid, :hoststat, :hostbatch, :respproc, :txns]
6
+ FIELDS = [:merchid, :batchid, :hoststat, :hostbatch, :respproc, :txns].freeze
7
7
 
8
- attr_accessor *FIELDS
8
+ attr_accessor(*FIELDS)
9
9
  attr_reader :errors
10
10
 
11
11
  def initialize(response)
@@ -22,7 +22,7 @@ module CardConnect
22
22
  def body
23
23
  body = {}
24
24
  FIELDS.each do |attr|
25
- body.merge!({attr => send(attr)})
25
+ body.merge!(attr => send(attr))
26
26
  end
27
27
  body
28
28
  end
@@ -31,9 +31,8 @@ module CardConnect
31
31
 
32
32
  def parse_transactions
33
33
  return if txns.nil?
34
- txns.each_with_index { |txn, i| self.txns[i] = symbolize_keys(txn) }
34
+ txns.each_with_index { |txn, i| txns[i] = symbolize_keys(txn) }
35
35
  end
36
-
37
36
  end
38
37
  end
39
38
  end