pagseguro-oficial 2.0.8 → 2.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -4
  3. data/README.md +15 -16
  4. data/examples/abandoned_transactions.rb +1 -1
  5. data/examples/transaction_by_notification_code.rb +55 -1
  6. data/examples/transaction_by_reference.rb +24 -0
  7. data/examples/transactions_by_date.rb +7 -1
  8. data/lib/pagseguro/creditor_fee.rb +23 -0
  9. data/lib/pagseguro/document.rb +11 -0
  10. data/lib/pagseguro/installment.rb +1 -1
  11. data/lib/pagseguro/payment_release.rb +21 -0
  12. data/lib/pagseguro/payment_releases.rb +25 -0
  13. data/lib/pagseguro/payment_request/response.rb +6 -1
  14. data/lib/pagseguro/payment_request.rb +4 -3
  15. data/lib/pagseguro/payment_status.rb +2 -0
  16. data/lib/pagseguro/request.rb +9 -7
  17. data/lib/pagseguro/sender.rb +8 -0
  18. data/lib/pagseguro/transaction/search/search_abandoned.rb +19 -0
  19. data/lib/pagseguro/transaction/search/search_by_date.rb +15 -0
  20. data/lib/pagseguro/transaction/search/search_by_reference.rb +12 -0
  21. data/lib/pagseguro/{report.rb → transaction/search.rb} +8 -11
  22. data/lib/pagseguro/transaction/serializer.rb +39 -4
  23. data/lib/pagseguro/transaction.rb +40 -9
  24. data/lib/pagseguro/version.rb +1 -1
  25. data/lib/pagseguro.rb +16 -7
  26. data/spec/fixtures/transactions/success.xml +24 -2
  27. data/spec/pagseguro/creditor_fee_spec.rb +10 -0
  28. data/spec/pagseguro/document_spec.rb +6 -0
  29. data/spec/pagseguro/installment_spec.rb +3 -2
  30. data/spec/pagseguro/pagseguro_spec.rb +4 -4
  31. data/spec/pagseguro/payment_release_spec.rb +9 -0
  32. data/spec/pagseguro/payment_releases_spec.rb +34 -0
  33. data/spec/pagseguro/payment_request_spec.rb +1 -1
  34. data/spec/pagseguro/payment_status_spec.rb +2 -0
  35. data/spec/pagseguro/request_spec.rb +7 -7
  36. data/spec/pagseguro/sender_spec.rb +1 -0
  37. data/spec/pagseguro/transaction/serializer_spec.rb +16 -1
  38. data/spec/pagseguro/transaction_spec.rb +29 -20
  39. metadata +20 -4
@@ -34,8 +34,8 @@ module PagSeguro
34
34
  # The discount amount.
35
35
  attr_accessor :discount_amount
36
36
 
37
- # The PagSeguro fee amount.
38
- attr_accessor :fee_amount
37
+ # The charged fees.
38
+ attr_reader :creditor_fees
39
39
 
40
40
  # The net amount.
41
41
  attr_accessor :net_amount
@@ -62,21 +62,21 @@ module PagSeguro
62
62
 
63
63
  # Set the transaction errors.
64
64
  attr_reader :errors
65
-
65
+
66
66
  # Find a transaction by its transactionCode
67
67
  # Return a PagSeguro::Transaction instance
68
68
  def self.find_by_code(code)
69
- load_from_response Request.get("transactions/#{code}")
69
+ load_from_response send_request("transactions/#{code}")
70
70
  end
71
71
 
72
72
  # Find a transaction by its notificationCode.
73
73
  # Return a PagSeguro::Transaction instance.
74
74
  def self.find_by_notification_code(code)
75
- load_from_response Request.get("transactions/notifications/#{code}")
75
+ load_from_response send_request("transactions/notifications/#{code}")
76
76
  end
77
77
 
78
78
  # Search transactions within a date range.
79
- # Return a PagSeguro::Report instance.
79
+ # Return a PagSeguro::SearchByDate instance
80
80
  #
81
81
  # Options:
82
82
  #
@@ -91,12 +91,23 @@ module PagSeguro
91
91
  ends_at: Time.now,
92
92
  per_page: 50
93
93
  }.merge(options)
94
+ SearchByDate.new("transactions", options, page)
95
+ end
94
96
 
95
- Report.new(Transaction, "transactions", options, page)
97
+ # Search a transaction by its reference code
98
+ # Return a PagSeguro::SearchByReference instance
99
+ #
100
+ # Options:
101
+ #
102
+ # # +reference+: the transaction reference code
103
+ #
104
+ def self.find_by_reference(reference)
105
+ options = { reference: reference }
106
+ SearchByReference.new("transactions", options)
96
107
  end
97
108
 
98
109
  # Get abandoned transactions.
99
- # Return a PagSeguro::Report instance.
110
+ # Return a PagSeguro::SearchByDate instance
100
111
  #
101
112
  # Options:
102
113
  #
@@ -112,7 +123,7 @@ module PagSeguro
112
123
  per_page: 50
113
124
  }.merge(options)
114
125
 
115
- Report.new(Transaction, "transactions/abandoned", options, page)
126
+ SearchAbandoned.new("transactions/abandoned", options, page)
116
127
  end
117
128
 
118
129
  # Serialize the HTTP response into data.
@@ -124,11 +135,21 @@ module PagSeguro
124
135
  end
125
136
  end
126
137
 
138
+ # Send a get request to v3 API version, with the path given
139
+ def self.send_request(path)
140
+ Request.get(path, 'v3')
141
+ end
142
+
127
143
  # Serialize the XML object.
128
144
  def self.load_from_xml(xml) # :nodoc:
129
145
  new Serializer.new(xml).serialize
130
146
  end
131
147
 
148
+ # Normalize creditor fees object
149
+ def creditor_fees=(creditor_fees)
150
+ @creditor_fees = ensure_type(CreditorFee, creditor_fees)
151
+ end
152
+
132
153
  # Normalize the sender object.
133
154
  def sender=(sender)
134
155
  @sender = ensure_type(Sender, sender)
@@ -139,6 +160,16 @@ module PagSeguro
139
160
  @shipping = ensure_type(Shipping, shipping)
140
161
  end
141
162
 
163
+ # Hold the transaction's payments
164
+ def payment_releases
165
+ @payment_releases ||= PaymentReleases.new
166
+ end
167
+
168
+ # Normalize the transaction's payments list
169
+ def payment_releases=(_payments)
170
+ _payments.each { |payment| payment_releases << payment }
171
+ end
172
+
142
173
  # Hold the transaction's items.
143
174
  def items
144
175
  @items ||= Items.new
@@ -1,3 +1,3 @@
1
1
  module PagSeguro
2
- VERSION = "2.0.8"
2
+ VERSION = "2.1.0"
3
3
  end
data/lib/pagseguro.rb CHANGED
@@ -8,11 +8,15 @@ require "i18n"
8
8
 
9
9
  require "pagseguro/version"
10
10
  require "pagseguro/config"
11
- require "pagseguro/errors"
12
- require "pagseguro/exceptions"
11
+
13
12
  require "pagseguro/extensions/mass_assignment"
14
13
  require "pagseguro/extensions/ensure_type"
14
+
15
+ require "pagseguro/creditor_fee"
16
+ require "pagseguro/errors"
17
+ require "pagseguro/exceptions"
15
18
  require "pagseguro/address"
19
+ require "pagseguro/document"
16
20
  require "pagseguro/shipping"
17
21
  require "pagseguro/phone"
18
22
  require "pagseguro/installment"
@@ -21,17 +25,22 @@ require "pagseguro/installment/serializer"
21
25
  require "pagseguro/item"
22
26
  require "pagseguro/items"
23
27
  require "pagseguro/payment_method"
28
+ require "pagseguro/payment_release"
29
+ require "pagseguro/payment_releases"
24
30
  require "pagseguro/payment_request"
25
31
  require "pagseguro/payment_request/serializer"
26
32
  require "pagseguro/payment_request/response"
27
33
  require "pagseguro/payment_status"
28
34
  require "pagseguro/request"
29
- require "pagseguro/report"
30
35
  require "pagseguro/sender"
31
36
  require "pagseguro/notification"
32
37
  require "pagseguro/transaction"
33
38
  require "pagseguro/transaction/response"
34
39
  require "pagseguro/transaction/serializer"
40
+ require "pagseguro/transaction/search"
41
+ require "pagseguro/transaction/search/search_by_date"
42
+ require "pagseguro/transaction/search/search_by_reference"
43
+ require "pagseguro/transaction/search/search_abandoned"
35
44
 
36
45
  I18n.load_path += Dir[File.expand_path("../../locales/*.yml", __FILE__)]
37
46
 
@@ -57,12 +66,12 @@ module PagSeguro
57
66
  def self.uris
58
67
  @uris ||= {
59
68
  production: {
60
- api: "https://ws.pagseguro.uol.com.br/v2",
61
- site: "https://pagseguro.uol.com.br/v2"
69
+ api: "https://ws.pagseguro.uol.com.br/",
70
+ site: "https://pagseguro.uol.com.br/"
62
71
  },
63
72
  sandbox: {
64
- site: 'https://sandbox.pagseguro.uol.com.br/v2',
65
- api: 'https://ws.sandbox.pagseguro.uol.com.br/v2'
73
+ site: 'https://sandbox.pagseguro.uol.com.br/',
74
+ api: 'https://ws.sandbox.pagseguro.uol.com.br/'
66
75
  }
67
76
  }
68
77
  end
@@ -15,10 +15,26 @@
15
15
  <paymentLink>https://pagseguro.uol.com.br/checkout/imprimeBoleto.jhtml?code=667D39144F9F47059FB6CA6FA0DF8A20</paymentLink>
16
16
  <grossAmount>459.50</grossAmount>
17
17
  <discountAmount>0.00</discountAmount>
18
- <feeAmount>13.73</feeAmount>
18
+ <creditorFees>
19
+ <operationalFeeAmount>0.00</operationalFeeAmount>
20
+ <installmentFeeAmount>0.00</installmentFeeAmount>
21
+ <intermediationRateAmount>0.40</intermediationRateAmount>
22
+ <intermediationFeeAmount>1644.80</intermediationFeeAmount>
23
+ <commissionFeeAmount>1.98</commissionFeeAmount>
24
+ <efrete>1.98</efrete>
25
+ </creditorFees>
19
26
  <netAmount>445.77</netAmount>
20
27
  <extraAmount>0.00</extraAmount>
21
28
  <installmentCount>1</installmentCount>
29
+ <paymentReleases>
30
+ <paymentRelease>
31
+ <installment>1</installment>
32
+ <totalAmount>202.92</totalAmount>
33
+ <releaseAmount>202.92</releaseAmount>
34
+ <status>OPENED</status>
35
+ <releaseDate>2015-03-25T16:14:23-03:00</releaseDate>
36
+ </paymentRelease>
37
+ </paymentReleases>
22
38
  <itemCount>1</itemCount>
23
39
  <items>
24
40
  <item>
@@ -35,6 +51,12 @@
35
51
  <areaCode>11</areaCode>
36
52
  <number>12345678</number>
37
53
  </phone>
54
+ <documents>
55
+ <document>
56
+ <type>CPF</type>
57
+ <value>65647162142</value>
58
+ </document>
59
+ </documents>
38
60
  </sender>
39
61
  <shipping>
40
62
  <address>
@@ -42,10 +64,10 @@
42
64
  <number>1384</number>
43
65
  <complement>5 ANDAR</complement>
44
66
  <district>JARDIM PAULISTANO</district>
67
+ <postalCode>01452002</postalCode>
45
68
  <city>SAO PAULO</city>
46
69
  <state>SP</state>
47
70
  <country>BRA</country>
48
- <postalCode>01452002</postalCode>
49
71
  </address>
50
72
  <type>2</type>
51
73
  <cost>0.00</cost>
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagSeguro::CreditorFee do
4
+ it_assigns_attribute :intermediation_rate_amount
5
+ it_assigns_attribute :intermediation_fee_amount
6
+ it_assigns_attribute :installment_fee_amount
7
+ it_assigns_attribute :operational_fee_amount
8
+ it_assigns_attribute :commission_fee_amount
9
+ it_assigns_attribute :efrete
10
+ end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagSeguro::Document do
4
+ it_assigns_attribute :type
5
+ it_assigns_attribute :value
6
+ end
@@ -10,10 +10,11 @@ describe PagSeguro::Installment do
10
10
  describe ".find" do
11
11
  context "when request succeeds" do
12
12
  let(:request) { double("request") }
13
+ let(:version) { 'v2' }
13
14
 
14
15
  it "finds installments by the given amount" do
15
16
  expect(PagSeguro::Request).to receive(:get)
16
- .with("installments?amount=100.00")
17
+ .with("installments?amount=100.00", version)
17
18
  .and_return(request)
18
19
  expect(PagSeguro::Installment).to receive(:load_from_response)
19
20
  .with(request)
@@ -23,7 +24,7 @@ describe PagSeguro::Installment do
23
24
 
24
25
  it "find installments by amount and credit card brand" do
25
26
  expect(PagSeguro::Request).to receive(:get)
26
- .with("installments?amount=100.00&cardBrand=visa")
27
+ .with("installments?amount=100.00&cardBrand=visa", version)
27
28
  .and_return(request)
28
29
  expect(PagSeguro::Installment).to receive(:load_from_response)
29
30
  .with(request)
@@ -50,13 +50,13 @@ describe PagSeguro do
50
50
  end
51
51
 
52
52
  it "returns production api url when the environment is :production" do
53
- expect(PagSeguro.api_url("/some/path")).to eql("https://ws.pagseguro.uol.com.br/v2/some/path")
53
+ expect(PagSeguro.api_url("v2/some/path")).to eql("https://ws.pagseguro.uol.com.br/v2/some/path")
54
54
  end
55
55
 
56
56
  it "returns sandbox api url when the environment is :sandbox" do
57
57
  PagSeguro.environment = :sandbox
58
58
 
59
- expect(PagSeguro.api_url("/some/path")).to eql("https://ws.sandbox.pagseguro.uol.com.br/v2/some/path")
59
+ expect(PagSeguro.api_url("v2/some/path")).to eql("https://ws.sandbox.pagseguro.uol.com.br/v2/some/path")
60
60
  end
61
61
 
62
62
  end
@@ -71,12 +71,12 @@ describe PagSeguro do
71
71
  end
72
72
 
73
73
  it "returns production site url when the environment is production" do
74
- expect(PagSeguro.site_url("/some/path")).to eql("https://pagseguro.uol.com.br/v2/some/path")
74
+ expect(PagSeguro.site_url("v2/some/path")).to eql("https://pagseguro.uol.com.br/v2/some/path")
75
75
  end
76
76
 
77
77
  it "returns sandbox site url when the environment is :sandbox" do
78
78
  PagSeguro.environment = :sandbox
79
- expect(PagSeguro.site_url("/some/path")).to eql("https://sandbox.pagseguro.uol.com.br/v2/some/path")
79
+ expect(PagSeguro.site_url("v2/some/path")).to eql("https://sandbox.pagseguro.uol.com.br/v2/some/path")
80
80
  end
81
81
  end
82
82
  end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagSeguro::PaymentRelease do
4
+ it_assigns_attribute :installment
5
+ it_assigns_attribute :total_amount
6
+ it_assigns_attribute :release_amount
7
+ it_assigns_attribute :release_date
8
+ it_assigns_attribute :status
9
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagSeguro::PaymentReleases do
4
+ it "implements #each" do
5
+ expect(PagSeguro::PaymentReleases.new).to respond_to(:each)
6
+ end
7
+
8
+ it "includes Enumerable" do
9
+ expect(PagSeguro::PaymentReleases.included_modules).to include(Enumerable)
10
+ end
11
+
12
+ it "sets payment" do
13
+ payment = PagSeguro::PaymentRelease.new
14
+ payments = PagSeguro::PaymentReleases.new
15
+ payments << payment
16
+
17
+ expect(payments.size).to eql(1)
18
+ expect(payments).to include(payment)
19
+ end
20
+
21
+ it "sets payment releases from Hash" do
22
+ payment = PagSeguro::PaymentRelease.new(installment: 1)
23
+
24
+ expect(PagSeguro::PaymentRelease).to(
25
+ receive(:new)
26
+ .with({installment: 1})
27
+ .and_return(payment))
28
+
29
+ payments = PagSeguro::PaymentReleases.new
30
+ payments << {installment: 1}
31
+
32
+ expect(payments).to include(payment)
33
+ end
34
+ end
@@ -81,7 +81,7 @@ describe PagSeguro::PaymentRequest do
81
81
 
82
82
  PagSeguro::Request
83
83
  .should_receive(:post)
84
- .with("checkout", params)
84
+ .with("checkout", "v2", params)
85
85
 
86
86
  payment.register
87
87
  end
@@ -20,5 +20,7 @@ describe PagSeguro::PaymentStatus do
20
20
  it_behaves_like "payment status mapping", 5, :in_dispute
21
21
  it_behaves_like "payment status mapping", 6, :refunded
22
22
  it_behaves_like "payment status mapping", 7, :cancelled
23
+ it_behaves_like "payment status mapping", 8, :chargeback_charged
24
+ it_behaves_like "payment status mapping", 9, :contested
23
25
  end
24
26
  end
@@ -16,7 +16,7 @@ describe PagSeguro::Request do
16
16
  it "includes credentials" do
17
17
  PagSeguro.email = "EMAIL"
18
18
  PagSeguro.token = "TOKEN"
19
- PagSeguro::Request.post("checkout")
19
+ PagSeguro::Request.post("checkout", "v3")
20
20
 
21
21
  expect(FakeWeb.last_request.body).to include("email=EMAIL&token=TOKEN")
22
22
  end
@@ -24,18 +24,18 @@ describe PagSeguro::Request do
24
24
  it "includes custom credentials" do
25
25
  PagSeguro.email = "EMAIL"
26
26
  PagSeguro.token = "TOKEN"
27
- PagSeguro::Request.post("checkout", email: 'foo', token: 'bar')
27
+ PagSeguro::Request.post("checkout", "v3", email: 'foo', token: 'bar')
28
28
 
29
29
  expect(FakeWeb.last_request.body).to include("email=foo&token=bar")
30
30
  end
31
31
 
32
32
  it "includes encoding" do
33
- PagSeguro::Request.post("checkout")
33
+ PagSeguro::Request.post("checkout", "v3")
34
34
  expect(FakeWeb.last_request.body).to include("charset=UTF-8")
35
35
  end
36
36
 
37
37
  it "include request headers" do
38
- PagSeguro::Request.post("checkout")
38
+ PagSeguro::Request.post("checkout", "v3")
39
39
  request = FakeWeb.last_request
40
40
 
41
41
  expect(request["Accept-Charset"]).to eql("UTF-8")
@@ -53,18 +53,18 @@ describe PagSeguro::Request do
53
53
  it "includes credentials" do
54
54
  PagSeguro.email = "EMAIL"
55
55
  PagSeguro.token = "TOKEN"
56
- PagSeguro::Request.get("checkout")
56
+ PagSeguro::Request.get("checkout", "v3")
57
57
 
58
58
  expect(FakeWeb.last_request.path).to include("email=EMAIL&token=TOKEN")
59
59
  end
60
60
 
61
61
  it "includes encoding" do
62
- PagSeguro::Request.get("checkout")
62
+ PagSeguro::Request.get("checkout", "v3")
63
63
  expect(FakeWeb.last_request.path).to include("charset=UTF-8")
64
64
  end
65
65
 
66
66
  it "include request headers" do
67
- PagSeguro::Request.get("checkout")
67
+ PagSeguro::Request.get("checkout", "v3")
68
68
  request = FakeWeb.last_request
69
69
 
70
70
  expect(request["Accept-Charset"]).to eql("UTF-8")
@@ -5,5 +5,6 @@ describe PagSeguro::Sender do
5
5
  it_assigns_attribute :email
6
6
  it_assigns_attribute :cpf
7
7
  it_ensures_type PagSeguro::Phone, :phone
8
+ it_ensures_type PagSeguro::Document, :document
8
9
  end
9
10
 
@@ -18,7 +18,6 @@ describe PagSeguro::Transaction::Serializer do
18
18
  it { expect(data).to include(payment_link: "https://pagseguro.uol.com.br/checkout/imprimeBoleto.jhtml?code=667D39144F9F47059FB6CA6FA0DF8A20") }
19
19
  it { expect(data).to include(gross_amount: BigDecimal("459.50")) }
20
20
  it { expect(data).to include(discount_amount: BigDecimal("0.00")) }
21
- it { expect(data).to include(fee_amount: BigDecimal("13.73")) }
22
21
  it { expect(data).to include(net_amount: BigDecimal("445.77")) }
23
22
  it { expect(data).to include(extra_amount: BigDecimal("0.00")) }
24
23
  it { expect(data).to include(installments: 1) }
@@ -26,6 +25,20 @@ describe PagSeguro::Transaction::Serializer do
26
25
  it { expect(data.keys).not_to include(:cancellation_source) }
27
26
  it { expect(data.keys).not_to include(:escrow_end_date) }
28
27
 
28
+ it { expect(data[:creditor_fees]).to include(intermediation_rate_amount: BigDecimal("0.40")) }
29
+ it { expect(data[:creditor_fees]).to include(intermediation_fee_amount: BigDecimal("1644.80")) }
30
+ it { expect(data[:creditor_fees]).to include(installment_fee_amount: BigDecimal("0.00")) }
31
+ it { expect(data[:creditor_fees]).to include(operational_fee_amount: BigDecimal("0.00")) }
32
+ it { expect(data[:creditor_fees]).to include(commission_fee_amount: BigDecimal("1.98")) }
33
+ it { expect(data[:creditor_fees]).to include(efrete: BigDecimal("1.98")) }
34
+
35
+ it { expect(data[:payment_releases].size).to eq(1) }
36
+ it { expect(data[:payment_releases].first).to include(installment: "1") }
37
+ it { expect(data[:payment_releases].first).to include(total_amount: BigDecimal("202.92")) }
38
+ it { expect(data[:payment_releases].first).to include(release_amount: BigDecimal("202.92")) }
39
+ it { expect(data[:payment_releases].first).to include(status: "OPENED") }
40
+ it { expect(data[:payment_releases].first).to include(release_date: Time.parse("2015-03-25T16:14:23-03:00")) }
41
+
29
42
  it { expect(data[:items].size).to eq(1) }
30
43
  it { expect(data[:items].first).to include(id: "1234") }
31
44
  it { expect(data[:items].first).to include(description: "Some product") }
@@ -36,6 +49,8 @@ describe PagSeguro::Transaction::Serializer do
36
49
  it { expect(data[:sender]).to include(email: "john@example.com") }
37
50
  it { expect(data[:sender][:phone]).to include(area_code: "11") }
38
51
  it { expect(data[:sender][:phone]).to include(number: "12345678") }
52
+ it { expect(data[:sender][:document]).to include(type: "CPF") }
53
+ it { expect(data[:sender][:document]).to include(value: "65647162142") }
39
54
 
40
55
  it { expect(data[:shipping]).to include(type_id: "2") }
41
56
 
@@ -7,7 +7,7 @@ describe PagSeguro::Transaction do
7
7
 
8
8
  PagSeguro::Request
9
9
  .should_receive(:get)
10
- .with("transactions/notifications/CODE")
10
+ .with("transactions/notifications/CODE", "v3")
11
11
  .and_return(double.as_null_object)
12
12
 
13
13
  PagSeguro::Transaction.find_by_notification_code("CODE")
@@ -24,31 +24,26 @@ describe PagSeguro::Transaction do
24
24
  end
25
25
 
26
26
  describe ".find_by_date" do
27
- it "initializes report with default options" do
27
+ it "initializes search with default options" do
28
28
  now = Time.now
29
29
  Time.stub now: now
30
30
 
31
- PagSeguro::Report
31
+ PagSeguro::SearchByDate
32
32
  .should_receive(:new)
33
- .with(
34
- PagSeguro::Transaction,
35
- "transactions",
36
- hash_including(per_page: 50, starts_at: now - 86400, ends_at: now),
37
- 0
38
- )
33
+ .with("transactions",
34
+ hash_including(starts_at: now - 86400, ends_at: now, per_page: 50), 0)
39
35
 
40
36
  PagSeguro::Transaction.find_by_date
41
37
  end
42
38
 
43
- it "initializes report with given options" do
39
+ it "initializes search with given options" do
44
40
  starts_at = Time.now - 3600
45
41
  ends_at = starts_at + 180
46
- page = 1
42
+ page = 0
47
43
 
48
- PagSeguro::Report
44
+ PagSeguro::SearchByDate
49
45
  .should_receive(:new)
50
46
  .with(
51
- PagSeguro::Transaction,
52
47
  "transactions",
53
48
  hash_including(per_page: 10, starts_at: starts_at, ends_at: ends_at),
54
49
  page
@@ -61,15 +56,30 @@ describe PagSeguro::Transaction do
61
56
  end
62
57
  end
63
58
 
59
+ describe ".find_by_reference" do
60
+ it 'initializes search with given reference code' do
61
+ now = Time.now
62
+ Time.stub now: now
63
+
64
+ PagSeguro::SearchByReference
65
+ .should_receive(:new)
66
+ .with(
67
+ "transactions",
68
+ hash_including(reference: 'ref1234'),
69
+ )
70
+
71
+ PagSeguro::Transaction.find_by_reference('ref1234')
72
+ end
73
+ end
74
+
64
75
  describe ".find_abandoned" do
65
- it "initializes report with default options" do
76
+ it "initializes search with default options" do
66
77
  now = Time.now
67
78
  Time.stub now: now
68
79
 
69
- PagSeguro::Report
80
+ PagSeguro::SearchAbandoned
70
81
  .should_receive(:new)
71
82
  .with(
72
- PagSeguro::Transaction,
73
83
  "transactions/abandoned",
74
84
  hash_including(per_page: 50, starts_at: now - 86400, ends_at: now - 900),
75
85
  0
@@ -78,22 +88,21 @@ describe PagSeguro::Transaction do
78
88
  PagSeguro::Transaction.find_abandoned
79
89
  end
80
90
 
81
- it "initializes report with given options" do
91
+ it "initializes search with given options" do
82
92
  starts_at = Time.now - 3600
83
93
  ends_at = starts_at + 180
84
94
  page = 1
85
95
 
86
- PagSeguro::Report
96
+ PagSeguro::SearchAbandoned
87
97
  .should_receive(:new)
88
98
  .with(
89
- PagSeguro::Transaction,
90
99
  "transactions/abandoned",
91
100
  hash_including(per_page: 10, starts_at: starts_at, ends_at: ends_at),
92
101
  page
93
102
  )
94
103
 
95
104
  PagSeguro::Transaction.find_abandoned(
96
- {per_page: 10, starts_at: starts_at, ends_at: ends_at},
105
+ { per_page: 10, starts_at: starts_at, ends_at: ends_at },
97
106
  page
98
107
  )
99
108
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagseguro-oficial
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-12 00:00:00.000000000 Z
11
+ date: 2015-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aitch
@@ -185,11 +185,14 @@ files:
185
185
  - examples/invalid_transaction_by_notification_code.rb
186
186
  - examples/payment_request.rb
187
187
  - examples/transaction_by_notification_code.rb
188
+ - examples/transaction_by_reference.rb
188
189
  - examples/transactions_by_date.rb
189
190
  - lib/pagseguro-oficial.rb
190
191
  - lib/pagseguro.rb
191
192
  - lib/pagseguro/address.rb
192
193
  - lib/pagseguro/config.rb
194
+ - lib/pagseguro/creditor_fee.rb
195
+ - lib/pagseguro/document.rb
193
196
  - lib/pagseguro/errors.rb
194
197
  - lib/pagseguro/exceptions.rb
195
198
  - lib/pagseguro/extensions/ensure_type.rb
@@ -201,17 +204,22 @@ files:
201
204
  - lib/pagseguro/items.rb
202
205
  - lib/pagseguro/notification.rb
203
206
  - lib/pagseguro/payment_method.rb
207
+ - lib/pagseguro/payment_release.rb
208
+ - lib/pagseguro/payment_releases.rb
204
209
  - lib/pagseguro/payment_request.rb
205
210
  - lib/pagseguro/payment_request/response.rb
206
211
  - lib/pagseguro/payment_request/serializer.rb
207
212
  - lib/pagseguro/payment_status.rb
208
213
  - lib/pagseguro/phone.rb
209
- - lib/pagseguro/report.rb
210
214
  - lib/pagseguro/request.rb
211
215
  - lib/pagseguro/sender.rb
212
216
  - lib/pagseguro/shipping.rb
213
217
  - lib/pagseguro/transaction.rb
214
218
  - lib/pagseguro/transaction/response.rb
219
+ - lib/pagseguro/transaction/search.rb
220
+ - lib/pagseguro/transaction/search/search_abandoned.rb
221
+ - lib/pagseguro/transaction/search/search_by_date.rb
222
+ - lib/pagseguro/transaction/search/search_by_reference.rb
215
223
  - lib/pagseguro/transaction/serializer.rb
216
224
  - lib/pagseguro/version.rb
217
225
  - locales/pt-BR.yml
@@ -225,6 +233,8 @@ files:
225
233
  - spec/fixtures/transactions/success.xml
226
234
  - spec/pagseguro/address_spec.rb
227
235
  - spec/pagseguro/config_spec.rb
236
+ - spec/pagseguro/creditor_fee_spec.rb
237
+ - spec/pagseguro/document_spec.rb
228
238
  - spec/pagseguro/errors_spec.rb
229
239
  - spec/pagseguro/installment/serializer_spec.rb
230
240
  - spec/pagseguro/installment_spec.rb
@@ -233,6 +243,8 @@ files:
233
243
  - spec/pagseguro/notification_spec.rb
234
244
  - spec/pagseguro/pagseguro_spec.rb
235
245
  - spec/pagseguro/payment_method_spec.rb
246
+ - spec/pagseguro/payment_release_spec.rb
247
+ - spec/pagseguro/payment_releases_spec.rb
236
248
  - spec/pagseguro/payment_request/response_spec.rb
237
249
  - spec/pagseguro/payment_request/serializer_spec.rb
238
250
  - spec/pagseguro/payment_request_spec.rb
@@ -267,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
279
  version: '0'
268
280
  requirements: []
269
281
  rubyforge_project:
270
- rubygems_version: 2.4.3
282
+ rubygems_version: 2.2.2
271
283
  signing_key:
272
284
  specification_version: 4
273
285
  summary: Biblioteca oficial de integração PagSeguro em Ruby
@@ -281,6 +293,8 @@ test_files:
281
293
  - spec/fixtures/transactions/success.xml
282
294
  - spec/pagseguro/address_spec.rb
283
295
  - spec/pagseguro/config_spec.rb
296
+ - spec/pagseguro/creditor_fee_spec.rb
297
+ - spec/pagseguro/document_spec.rb
284
298
  - spec/pagseguro/errors_spec.rb
285
299
  - spec/pagseguro/installment/serializer_spec.rb
286
300
  - spec/pagseguro/installment_spec.rb
@@ -289,6 +303,8 @@ test_files:
289
303
  - spec/pagseguro/notification_spec.rb
290
304
  - spec/pagseguro/pagseguro_spec.rb
291
305
  - spec/pagseguro/payment_method_spec.rb
306
+ - spec/pagseguro/payment_release_spec.rb
307
+ - spec/pagseguro/payment_releases_spec.rb
292
308
  - spec/pagseguro/payment_request/response_spec.rb
293
309
  - spec/pagseguro/payment_request/serializer_spec.rb
294
310
  - spec/pagseguro/payment_request_spec.rb