paytrace 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54df13f77d55b0b19c7215434197ddd5c1fd9cf4
4
- data.tar.gz: 7c877be2ac1d13c436b509d3d2b287a6ef5f43c3
3
+ metadata.gz: 80b786c68434d78a1faac3958f4d442c7892e71c
4
+ data.tar.gz: b2d58c4ee9923fd55f8baa0f9ca3168969674bb2
5
5
  SHA512:
6
- metadata.gz: d71d0cd704218be550c7cbd2c79b3470c2e4231d7c0ed6a2d60c2758db4f683d20b43d8a93a3507c7eee0663b1de07a38ce9d81e27f56da8d168ccdd7e5562dd
7
- data.tar.gz: 5847017cf082d6e7f78379fbe6f9853a918ddcba76a5a31df9f180afd7797903473a186608c1857cff5b5e7d40b9282cc959e95aea5054e68c9e71b61f3a02af
6
+ metadata.gz: 676881032b054db073a42c478d570114dcd002cf7b71d2fb36b3285919f1ca2f6c89920e9d7c1ef4424b1189aad9658c6706c7545532ed5e296d832ac8ba0a4a
7
+ data.tar.gz: f3fc461d8a087c615fe21f952b66c4346614a7b1b6c09d4cf27df23bda8784648b0b86d45b2deaa0f41e1dc97fda4851e614da6b24b5ad8662cde2c9a3965432
@@ -2,15 +2,32 @@ require 'paytrace'
2
2
 
3
3
  module PayTrace
4
4
  class RecurringTransaction
5
- attr :id
5
+ attr :id, :amount, :customer_id, :next, :total_count, :current_count, :repeat, :description
6
+
6
7
  CREATE_METHOD = "CreateRecur"
7
8
  DELETE_METHOD = "DeleteRecur"
8
9
  UPDATE_METHOD = "UpdateRecur"
9
10
  EXPORT_APPROVED_METHOD = "ExportCustomerRecur"
10
11
  EXPORT_SCHEDULED_METHOD = "ExportRecur"
11
12
 
13
+ def initialize(raw_response)
14
+ response_map = raw_response.split('+').map {|pair| pair.split('=')}.to_h
15
+ @id = response_map["RECURID"].to_i
16
+ @amount = response_map["AMOUNT"].to_f
17
+ @customer_id = response_map["CUSTID"]
18
+ @next = response_map["NEXT"]
19
+ @total_count = response_map["TOTALCOUNT"].to_i
20
+ @current_count = response_map["CURRENTCOUNT"].to_i
21
+ @repeat = response_map["REPEAT"].to_i
22
+ @description = response_map["DESCRIPTION"]
23
+ end
24
+
25
+ def inspect
26
+ "<RecurringTransaction:#{@id},customer id:#{@customer_id},amount: #{@amount},next: #{@next}>"
27
+ end
28
+
12
29
  def self.export_scheduled(params = {})
13
- set_request_data(EXPORT_SCHEDULED_METHOD, params)
30
+ parse_response(set_request_data(EXPORT_SCHEDULED_METHOD, params))
14
31
  end
15
32
 
16
33
  def self.export_approved(params = {})
@@ -18,7 +35,7 @@ module PayTrace
18
35
  end
19
36
 
20
37
  def self.create(params = {})
21
- set_request_data(CREATE_METHOD, params)
38
+ parse_response(set_request_data(CREATE_METHOD, params))
22
39
  end
23
40
 
24
41
  def self.delete(params = {})
@@ -35,13 +52,18 @@ module PayTrace
35
52
  end
36
53
 
37
54
  def self.update(params = {})
38
- set_request_data(UPDATE_METHOD, params)
55
+ parse_response(set_request_data(UPDATE_METHOD, params))
39
56
  end
40
57
 
41
58
  def self.parse_response(response)
42
59
  unless response.has_errors?
43
60
  values = response.values
44
- values["RECURID"]
61
+
62
+ if values.has_key?("RECURRINGPAYMENT")
63
+ new(values["RECURRINGPAYMENT"])
64
+ else
65
+ values["RECURID"]
66
+ end
45
67
  end
46
68
  end
47
69
 
@@ -61,7 +83,7 @@ module PayTrace
61
83
  request.set_param(:recur_type, params[:recur_type])
62
84
 
63
85
  gateway = PayTrace::API::Gateway.new
64
- parse_response(gateway.send_request(request))
86
+ gateway.send_request(request)
65
87
  end
66
88
  end
67
89
  end
@@ -1,3 +1,3 @@
1
1
  module PayTrace
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -129,13 +129,15 @@ describe PayTrace::RecurringTransaction do
129
129
  describe "export scheduled recurrences" do
130
130
  before do
131
131
  PayTrace::API::Gateway.debug = true
132
- PayTrace::API::Gateway.next_response = "RESPONSE~ok|RECURID~12345|"
132
+ PayTrace::API::Gateway.next_response = "RECURRINGPAYMENT~RECURID=72553+AMOUNT=9.99+CUSTID=john_doe+NEXT=4/22/2016+TOTALCOUNT=999+CURRENTCOUNT=0+REPEAT=0+DESCRIPTION=Recurring transaction+"
133
133
  end
134
134
 
135
135
  it "works" do
136
- PayTrace::RecurringTransaction.export_scheduled({customer_id: "john_doe"})
136
+ exported = PayTrace::RecurringTransaction.export_scheduled({customer_id: "john_doe"})
137
137
  PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::EXPORT_SCHEDULED_METHOD) +
138
138
  "CUSTID~john_doe|"
139
+
140
+ exported.must_be_instance_of PayTrace::RecurringTransaction
139
141
  end
140
142
  end
141
143
  end
@@ -108,7 +108,10 @@ end
108
108
 
109
109
  begin
110
110
  log "Exporting recurring transaction..."
111
- trace { exported = PayTrace::RecurringTransaction.export_scheduled({customer_id: "john_doe"}) }
111
+ trace do
112
+ exported = PayTrace::RecurringTransaction.export_scheduled({customer_id: "john_doe"})
113
+ log "Exported transaction:\n#{exported.to_s}"
114
+ end
112
115
  rescue
113
116
  log "Export failed..."
114
117
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paytrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trevor Redfern