cardconnect 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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