braintree 2.81.0 → 2.82.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.
- checksums.yaml +4 -4
- data/lib/braintree/dispute.rb +2 -2
- data/lib/braintree/dispute/evidence.rb +11 -6
- data/lib/braintree/dispute_gateway.rb +19 -5
- data/lib/braintree/version.rb +1 -1
- data/lib/ssl/api_braintreegateway_com.ca.crt +50 -0
- data/spec/integration/braintree/dispute_spec.rb +14 -0
- data/spec/unit/braintree/dispute_spec.rb +26 -0
- metadata +3 -4
- data/spec/httpsd.pid +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: de37c6678e279362737c8c278d58ebef4935302a
|
|
4
|
+
data.tar.gz: 1ceaa6ef70f84c0d76bd200efb95b3221ada0521
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 33620a7bc3f8868a68af85b47761d51de73185d4586ee7a250c99cf503230327bfaafcc8edfe4c621c8df6dc6f4f0667831b5fd76fcacae3078e51111b4dc67e
|
|
7
|
+
data.tar.gz: 68934f2a0e2f6a02cc1dc5a8768dd664f1e0f3522cb7e8ee6ed7855a65f012ac371a72e723b325ec8813dbd7c14041271f801a6acd8455b3c2b391de62b29f17
|
data/lib/braintree/dispute.rb
CHANGED
|
@@ -79,8 +79,8 @@ module Braintree
|
|
|
79
79
|
Configuration.gateway.dispute.add_file_evidence(dispute_id, document_upload_id)
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
-
def self.add_text_evidence(dispute_id,
|
|
83
|
-
Configuration.gateway.dispute.add_text_evidence(dispute_id,
|
|
82
|
+
def self.add_text_evidence(dispute_id, content_or_request)
|
|
83
|
+
Configuration.gateway.dispute.add_text_evidence(dispute_id, content_or_request)
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def self.finalize(dispute_id)
|
|
@@ -3,14 +3,19 @@ module Braintree
|
|
|
3
3
|
class Evidence # :nodoc:
|
|
4
4
|
include BaseModule
|
|
5
5
|
|
|
6
|
-
attr_reader :comment
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
attr_reader :comment,
|
|
7
|
+
:created_at,
|
|
8
|
+
:id,
|
|
9
|
+
:sent_to_processor_at,
|
|
10
|
+
:url,
|
|
11
|
+
:tag,
|
|
12
|
+
:sequence_number
|
|
11
13
|
|
|
12
14
|
def initialize(attributes)
|
|
13
|
-
|
|
15
|
+
unless attributes.nil?
|
|
16
|
+
@tag = attributes.delete(:category)
|
|
17
|
+
set_instance_variables_from_hash attributes
|
|
18
|
+
end
|
|
14
19
|
@sent_to_processor_at = Date.parse(sent_to_processor_at) unless sent_to_processor_at.nil?
|
|
15
20
|
end
|
|
16
21
|
end
|
|
@@ -40,13 +40,27 @@ module Braintree
|
|
|
40
40
|
raise NotFoundError, "dispute with id #{dispute_id} not found"
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
def add_text_evidence(dispute_id,
|
|
43
|
+
def add_text_evidence(dispute_id, content_or_request)
|
|
44
44
|
raise ArgumentError, "dispute_id contains invalid characters" unless dispute_id.to_s =~ /\A[\w-]+\z/
|
|
45
45
|
raise ArgumentError, "dispute_id cannot be blank" if dispute_id.nil? || dispute_id.to_s.strip == ""
|
|
46
|
-
raise ArgumentError, "
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
raise ArgumentError, "content_or_request cannot be blank" if content_or_request.nil?
|
|
47
|
+
|
|
48
|
+
request = content_or_request.is_a?(String) ? { content: content_or_request } : content_or_request
|
|
49
|
+
|
|
50
|
+
raise ArgumentError, "content cannot be blank" if request[:content].nil? || request[:content].to_s.strip == ""
|
|
51
|
+
raise ArgumentError, "request can only contain the keys [:content, :tag, :sequence_number]" if (request.keys - [:content, :tag, :sequence_number]).any?
|
|
52
|
+
raise ArgumentError, "sequence_number must be an integer" if request[:sequence_number] && request[:sequence_number].to_s.match(/\D/)
|
|
53
|
+
raise ArgumentError, "tag must be a string" if request[:tag] && !request[:tag].is_a?(String)
|
|
54
|
+
|
|
55
|
+
params_for_http_post = {
|
|
56
|
+
evidence: {
|
|
57
|
+
comments: request[:content]
|
|
58
|
+
}.tap do |evidence_params|
|
|
59
|
+
evidence_params[:category] = request[:tag] if request[:tag]
|
|
60
|
+
evidence_params[:sequence_number] = request[:sequence_number] if request[:sequence_number]
|
|
61
|
+
end
|
|
62
|
+
}
|
|
63
|
+
response = @config.http.post("#{@config.base_merchant_path}/disputes/#{dispute_id}/evidence", params_for_http_post)
|
|
50
64
|
|
|
51
65
|
if response[:evidence]
|
|
52
66
|
SuccessfulResult.new(:evidence => Dispute::Evidence.new(response[:evidence]))
|
data/lib/braintree/version.rb
CHANGED
|
@@ -189,3 +189,53 @@ PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
|
|
189
189
|
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
|
190
190
|
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
|
191
191
|
-----END CERTIFICATE-----
|
|
192
|
+
-----BEGIN CERTIFICATE-----
|
|
193
|
+
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
|
|
194
|
+
vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
|
195
|
+
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
|
|
196
|
+
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
|
|
197
|
+
ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
|
|
198
|
+
Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
|
|
199
|
+
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
|
|
200
|
+
IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
|
|
201
|
+
IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
|
|
202
|
+
bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
|
203
|
+
AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
|
|
204
|
+
9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
|
|
205
|
+
H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
|
|
206
|
+
LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
|
|
207
|
+
/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
|
|
208
|
+
rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
|
|
209
|
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
|
|
210
|
+
WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
|
|
211
|
+
exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
|
212
|
+
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
|
|
213
|
+
sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
|
|
214
|
+
seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
|
|
215
|
+
4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
|
|
216
|
+
BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
|
|
217
|
+
lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
|
|
218
|
+
7M2CYfE45k+XmCpajQ==
|
|
219
|
+
-----END CERTIFICATE-----
|
|
220
|
+
-----BEGIN CERTIFICATE-----
|
|
221
|
+
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
|
222
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
223
|
+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
|
224
|
+
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
|
225
|
+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
|
226
|
+
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
|
227
|
+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
|
228
|
+
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
|
229
|
+
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
|
230
|
+
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
|
231
|
+
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
|
232
|
+
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
|
233
|
+
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
|
234
|
+
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
|
235
|
+
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
|
236
|
+
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
|
237
|
+
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
|
238
|
+
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
|
239
|
+
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
|
240
|
+
MrY=
|
|
241
|
+
-----END CERTIFICATE-----
|
|
@@ -99,6 +99,8 @@ describe Braintree::Dispute do
|
|
|
99
99
|
result.evidence.id.should =~ /^\w{16,}$/
|
|
100
100
|
result.evidence.sent_to_processor_at.should == nil
|
|
101
101
|
result.evidence.url.should == nil
|
|
102
|
+
result.evidence.tag.should == nil
|
|
103
|
+
result.evidence.sequence_number.should == nil
|
|
102
104
|
end
|
|
103
105
|
|
|
104
106
|
it "returns a NotFoundError if the dispute doesn't exist" do
|
|
@@ -124,6 +126,18 @@ describe Braintree::Dispute do
|
|
|
124
126
|
expected_evidence.should_not == nil
|
|
125
127
|
expected_evidence.comment.should == "text evidence"
|
|
126
128
|
end
|
|
129
|
+
|
|
130
|
+
it "creates text evidence for the dispute with optional parameters" do
|
|
131
|
+
result = Braintree::Dispute.add_text_evidence(dispute.id, { content: "123456789", tag: "REFUND_ID", sequence_number: 7 })
|
|
132
|
+
|
|
133
|
+
result.success?.should == true
|
|
134
|
+
result.evidence.comment.should == "123456789"
|
|
135
|
+
result.evidence.created_at.between?(Time.now - 10, Time.now).should == true
|
|
136
|
+
result.evidence.id.should =~ /^\w{16,}$/
|
|
137
|
+
result.evidence.sent_to_processor_at.should == nil
|
|
138
|
+
result.evidence.tag.should == "REFUND_ID"
|
|
139
|
+
result.evidence.sequence_number.should == 7
|
|
140
|
+
end
|
|
127
141
|
end
|
|
128
142
|
|
|
129
143
|
describe "self.finalize" do
|
|
@@ -170,6 +170,32 @@ describe Braintree::Dispute do
|
|
|
170
170
|
Braintree::Dispute.add_text_evidence("dispute_id", nil)
|
|
171
171
|
end.to raise_error(ArgumentError)
|
|
172
172
|
end
|
|
173
|
+
|
|
174
|
+
describe "with optional params" do
|
|
175
|
+
it "does not raise an exception if the optional parameters are valid" do
|
|
176
|
+
expect do
|
|
177
|
+
Braintree::Dispute.add_text_evidence("dispute_id", nil, { tag: "", sequence_number: 3 })
|
|
178
|
+
end.to raise_error
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
it "raises an exception if the optional params contain invalid keys" do
|
|
182
|
+
expect do
|
|
183
|
+
Braintree::Dispute.add_text_evidence("dispute_id", nil, { random_param: "" })
|
|
184
|
+
end.to raise_error(ArgumentError)
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
it "raises an exception if sequence_number is provided and not an integer" do
|
|
188
|
+
expect do
|
|
189
|
+
Braintree::Dispute.add_text_evidence("dispute_id", nil, { sequence_number: "abc" })
|
|
190
|
+
end.to raise_error(ArgumentError)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it "raises an exception if the param tag is not a string" do
|
|
194
|
+
expect do
|
|
195
|
+
Braintree::Dispute.add_text_evidence("dispute_id", nil, { tag: 3 })
|
|
196
|
+
end.to raise_error(ArgumentError)
|
|
197
|
+
end
|
|
198
|
+
end
|
|
173
199
|
end
|
|
174
200
|
|
|
175
201
|
describe "self.remove_evidence" do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: braintree
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.82.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Braintree
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-01-
|
|
11
|
+
date: 2018-01-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: builder
|
|
@@ -182,7 +182,6 @@ files:
|
|
|
182
182
|
- spec/fixtures/files/gif_extension_bt_logo.gif
|
|
183
183
|
- spec/fixtures/files/malformed_pdf.pdf
|
|
184
184
|
- spec/hacks/tcp_socket.rb
|
|
185
|
-
- spec/httpsd.pid
|
|
186
185
|
- spec/integration/braintree/add_on_spec.rb
|
|
187
186
|
- spec/integration/braintree/address_spec.rb
|
|
188
187
|
- spec/integration/braintree/advanced_search_spec.rb
|
|
@@ -296,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
296
295
|
version: '0'
|
|
297
296
|
requirements: []
|
|
298
297
|
rubyforge_project: braintree
|
|
299
|
-
rubygems_version: 2.
|
|
298
|
+
rubygems_version: 2.6.14
|
|
300
299
|
signing_key:
|
|
301
300
|
specification_version: 4
|
|
302
301
|
summary: Braintree Gateway Ruby Client Library
|
data/spec/httpsd.pid
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
32587
|