localocracy-remit 0.0.5
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.
- data/LICENSE +20 -0
- data/README.markdown +91 -0
- data/lib/remit.rb +137 -0
- data/lib/remit/common.rb +88 -0
- data/lib/remit/data_types.rb +164 -0
- data/lib/remit/error_codes.rb +118 -0
- data/lib/remit/get_pipeline.rb +189 -0
- data/lib/remit/ipn_request.rb +49 -0
- data/lib/remit/operations/cancel.rb +20 -0
- data/lib/remit/operations/cancel_subscription_and_refund.rb +22 -0
- data/lib/remit/operations/cancel_token.rb +18 -0
- data/lib/remit/operations/discard_results.rb +18 -0
- data/lib/remit/operations/fund_prepaid.rb +31 -0
- data/lib/remit/operations/get_account_activity.rb +60 -0
- data/lib/remit/operations/get_account_balance.rb +29 -0
- data/lib/remit/operations/get_all_credit_instruments.rb +18 -0
- data/lib/remit/operations/get_all_prepaid_instruments.rb +18 -0
- data/lib/remit/operations/get_debt_balance.rb +23 -0
- data/lib/remit/operations/get_outstanding_debt_balance.rb +22 -0
- data/lib/remit/operations/get_payment_instruction.rb +21 -0
- data/lib/remit/operations/get_prepaid_balance.rb +23 -0
- data/lib/remit/operations/get_results.rb +27 -0
- data/lib/remit/operations/get_token_by_caller.rb +19 -0
- data/lib/remit/operations/get_token_usage.rb +18 -0
- data/lib/remit/operations/get_tokens.rb +20 -0
- data/lib/remit/operations/get_total_prepaid_liability.rb +22 -0
- data/lib/remit/operations/get_transaction.rb +42 -0
- data/lib/remit/operations/install_payment_instruction.rb +22 -0
- data/lib/remit/operations/pay.rb +35 -0
- data/lib/remit/operations/refund.rb +37 -0
- data/lib/remit/operations/reserve.rb +31 -0
- data/lib/remit/operations/retry_transaction.rb +18 -0
- data/lib/remit/operations/settle.rb +20 -0
- data/lib/remit/operations/settle_debt.rb +30 -0
- data/lib/remit/operations/subscribe_for_caller_notification.rb +18 -0
- data/lib/remit/operations/unsubscribe_for_caller_notification.rb +17 -0
- data/lib/remit/operations/write_off_debt.rb +28 -0
- data/lib/remit/pipeline_response.rb +52 -0
- data/spec/integrations/get_account_activity_spec.rb +36 -0
- data/spec/integrations/get_tokens_spec.rb +38 -0
- data/spec/integrations/integrations_helper.rb +8 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/units/get_pipeline_spec.rb +165 -0
- data/spec/units/get_results_spec.rb +49 -0
- data/spec/units/ipn_request_spec.rb +32 -0
- data/spec/units/pay_spec.rb +133 -0
- data/spec/units/units_helper.rb +4 -0
- metadata +137 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/units_helper'
|
2
|
+
|
3
|
+
describe "the GetResults API" do
|
4
|
+
describe "a successful response" do
|
5
|
+
it_should_behave_like 'a successful response'
|
6
|
+
|
7
|
+
before do
|
8
|
+
doc = <<-XML
|
9
|
+
<?xml version=\"1.0\"?>
|
10
|
+
<ns3:GetResultsResponse xmlns:ns3=\"http://fps.amazonaws.com/doc/2007-01-08/\">
|
11
|
+
<TransactionResults>
|
12
|
+
<TransactionId>abc123</TransactionId>
|
13
|
+
<Operation>Pay</Operation>
|
14
|
+
<CallerReference>1827</CallerReference>
|
15
|
+
<Status>Success</Status>
|
16
|
+
</TransactionResults>
|
17
|
+
<NumberPending>1</NumberPending>
|
18
|
+
<Status>Success</Status>
|
19
|
+
<RequestId>f89727ba-9ff6-4ca8-87a3-0fd6c9de6b95:0</RequestId>
|
20
|
+
</ns3:GetResultsResponse>
|
21
|
+
XML
|
22
|
+
|
23
|
+
@response = Remit::GetResults::Response.new(doc)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "has one result" do
|
27
|
+
@response.number_pending.should == 1
|
28
|
+
@response.transaction_results.size == "1"
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "the result" do
|
32
|
+
before do
|
33
|
+
@result = @response.transaction_results.first
|
34
|
+
end
|
35
|
+
|
36
|
+
it "references a previous transaction" do
|
37
|
+
@result.transaction_id.should == "abc123"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "references a pay transaction" do
|
41
|
+
@result.operation_type.should == 'Pay'
|
42
|
+
end
|
43
|
+
|
44
|
+
it "reports the transaction's new status" do
|
45
|
+
@result.transaction_status.should == 'Success'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/units_helper'
|
2
|
+
|
3
|
+
describe 'an IPN request' do
|
4
|
+
before(:each) do
|
5
|
+
@request_params = {
|
6
|
+
"action" => "notice",
|
7
|
+
"buyerName" => "Fps Buyer",
|
8
|
+
"callerReference" => "4-8-1-3.5",
|
9
|
+
"controller" => "amazon_fps/ipn",
|
10
|
+
"operation" => "PAY",
|
11
|
+
"paymentMethod" => "CC",
|
12
|
+
"recipientEmail" => "recipient@email.url",
|
13
|
+
"recipientName" => "Fps Business",
|
14
|
+
"signature" => "DA7ZbuQaBDt2/+Mty9XweJyqI1E=",
|
15
|
+
"status" => "SUCCESS",
|
16
|
+
"transactionAmount" => "USD 3.50",
|
17
|
+
"transactionDate" => "1224687134",
|
18
|
+
"transactionId" => "13KIGL9RC25853BGPPOS2VSKBKF2JERR3HO"
|
19
|
+
}
|
20
|
+
@request = Remit::IpnRequest.new(@request_params, 'THISISMYTESTKEY')
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be a valid request' do
|
24
|
+
@request.should be_valid
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should pass through access to given parameters' do
|
28
|
+
@request.status.should == 'SUCCESS'
|
29
|
+
@request.operation.should == 'PAY'
|
30
|
+
@request.transactionId.should == '13KIGL9RC25853BGPPOS2VSKBKF2JERR3HO'
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/units_helper'
|
2
|
+
|
3
|
+
describe "the Pay API" do
|
4
|
+
describe "a successful response" do
|
5
|
+
it_should_behave_like 'a successful response'
|
6
|
+
|
7
|
+
before do
|
8
|
+
doc = <<-XML
|
9
|
+
<ns3:PayResponse xmlns:ns3="http://fps.amazonaws.com/doc/2007-01-08/">
|
10
|
+
<ns3:TransactionResponse>
|
11
|
+
<TransactionId>abc123</TransactionId>
|
12
|
+
<Status>Initiated</Status>
|
13
|
+
</ns3:TransactionResponse>
|
14
|
+
<Status>Success</Status>
|
15
|
+
<RequestId>foo</RequestId>
|
16
|
+
</ns3:PayResponse>
|
17
|
+
XML
|
18
|
+
|
19
|
+
@response = Remit::Pay::Response.new(doc)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "has a transaction response" do
|
23
|
+
@response.transaction_response.should_not be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it "has a transaction id" do
|
27
|
+
@response.transaction_response.transaction_id.should == 'abc123'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "has a transaction status" do
|
31
|
+
@response.transaction_response.status.should == 'Initiated'
|
32
|
+
end
|
33
|
+
|
34
|
+
it "has status shortcuts" do
|
35
|
+
@response.transaction_response.should be_initiated
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "for a failed request" do
|
40
|
+
before do
|
41
|
+
doc = <<-XML
|
42
|
+
<?xml version=\"1.0\"?>
|
43
|
+
<ns3:PayResponse xmlns:ns3=\"http://fps.amazonaws.com/doc/2007-01-08/\">
|
44
|
+
<Status>Failure</Status>
|
45
|
+
<Errors>
|
46
|
+
<Errors>
|
47
|
+
<ErrorType>Business</ErrorType>
|
48
|
+
<IsRetriable>false</IsRetriable>
|
49
|
+
<ErrorCode>InvalidParams</ErrorCode>
|
50
|
+
<ReasonText>callerTokenId can not be empty</ReasonText>
|
51
|
+
</Errors>
|
52
|
+
</Errors>
|
53
|
+
<RequestId>7966a2d9-5ce9-4902-aefc-b01d254c931a:0</RequestId>
|
54
|
+
</ns3:PayResponse>
|
55
|
+
XML
|
56
|
+
|
57
|
+
@response = Remit::Pay::Response.new(doc)
|
58
|
+
@error = @response.errors.first
|
59
|
+
end
|
60
|
+
|
61
|
+
it_should_behave_like 'a failed response'
|
62
|
+
|
63
|
+
describe "with an invalid params error" do
|
64
|
+
it "should be a service error" do
|
65
|
+
@error.should be_kind_of(Remit::ServiceError)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should have an error type of 'Business'" do
|
69
|
+
@error.error_type.should == 'Business'
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should have an error code of 'InvalidParams'" do
|
73
|
+
@error.error_code.should == 'InvalidParams'
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should not be retriable" do
|
77
|
+
@error.is_retriable.should == 'false'
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should have reason text" do
|
81
|
+
@error.reason_text.should == 'callerTokenId can not be empty'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "for a failed request" do
|
87
|
+
before do
|
88
|
+
doc = <<-XML
|
89
|
+
<?xml version=\"1.0\"?>
|
90
|
+
<ns3:PayResponse xmlns:ns3=\"http://fps.amazonaws.com/doc/2007-01-08/\">
|
91
|
+
<Status>Failure</Status>
|
92
|
+
<Errors>
|
93
|
+
<Errors>
|
94
|
+
<ErrorType>Business</ErrorType>
|
95
|
+
<IsRetriable>false</IsRetriable>
|
96
|
+
<ErrorCode>TokenUsageError</ErrorCode>
|
97
|
+
<ReasonText>The token \"45XU7TLBN995ZQA2U1PS1ZCTJXJMJ3H1GH6VZAB82C1BGLK9X3AXUQDA3QDLJVPX\" has violated its usage policy.</ReasonText>
|
98
|
+
</Errors>
|
99
|
+
</Errors>
|
100
|
+
<RequestId>78acff80-b740-4b57-9301-18d0576e6855:0
|
101
|
+
</RequestId>
|
102
|
+
</ns3:PayResponse>
|
103
|
+
XML
|
104
|
+
|
105
|
+
@response = Remit::Pay::Response.new(doc)
|
106
|
+
@error = @response.errors.first
|
107
|
+
end
|
108
|
+
|
109
|
+
it_should_behave_like 'a failed response'
|
110
|
+
|
111
|
+
describe "with a token usage error" do
|
112
|
+
it "should be a service error" do
|
113
|
+
@error.should be_kind_of(Remit::ServiceError)
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should have an error type of 'Business'" do
|
117
|
+
@error.error_type.should == 'Business'
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should have an error code of 'TokenUsageError'" do
|
121
|
+
@error.error_code.should == 'TokenUsageError'
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should not be retriable" do
|
125
|
+
@error.is_retriable.should == 'false'
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should have reason text" do
|
129
|
+
@error.reason_text.should == 'The token "45XU7TLBN995ZQA2U1PS1ZCTJXJMJ3H1GH6VZAB82C1BGLK9X3AXUQDA3QDLJVPX" has violated its usage policy.'
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: localocracy-remit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Tyler Hunt
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-01-11 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: relax
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 17
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
- 7
|
34
|
+
version: 0.0.7
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description:
|
38
|
+
email: tyler@tylerhunt.com
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
extra_rdoc_files:
|
44
|
+
- LICENSE
|
45
|
+
- README.markdown
|
46
|
+
files:
|
47
|
+
- lib/remit.rb
|
48
|
+
- lib/remit/common.rb
|
49
|
+
- lib/remit/data_types.rb
|
50
|
+
- lib/remit/error_codes.rb
|
51
|
+
- lib/remit/get_pipeline.rb
|
52
|
+
- lib/remit/ipn_request.rb
|
53
|
+
- lib/remit/operations/cancel_subscription_and_refund.rb
|
54
|
+
- lib/remit/operations/cancel_token.rb
|
55
|
+
- lib/remit/operations/cancel.rb
|
56
|
+
- lib/remit/operations/discard_results.rb
|
57
|
+
- lib/remit/operations/fund_prepaid.rb
|
58
|
+
- lib/remit/operations/get_account_activity.rb
|
59
|
+
- lib/remit/operations/get_account_balance.rb
|
60
|
+
- lib/remit/operations/get_all_credit_instruments.rb
|
61
|
+
- lib/remit/operations/get_all_prepaid_instruments.rb
|
62
|
+
- lib/remit/operations/get_debt_balance.rb
|
63
|
+
- lib/remit/operations/get_outstanding_debt_balance.rb
|
64
|
+
- lib/remit/operations/get_payment_instruction.rb
|
65
|
+
- lib/remit/operations/get_prepaid_balance.rb
|
66
|
+
- lib/remit/operations/get_results.rb
|
67
|
+
- lib/remit/operations/get_token_by_caller.rb
|
68
|
+
- lib/remit/operations/get_token_usage.rb
|
69
|
+
- lib/remit/operations/get_tokens.rb
|
70
|
+
- lib/remit/operations/get_total_prepaid_liability.rb
|
71
|
+
- lib/remit/operations/get_transaction.rb
|
72
|
+
- lib/remit/operations/install_payment_instruction.rb
|
73
|
+
- lib/remit/operations/pay.rb
|
74
|
+
- lib/remit/operations/refund.rb
|
75
|
+
- lib/remit/operations/reserve.rb
|
76
|
+
- lib/remit/operations/retry_transaction.rb
|
77
|
+
- lib/remit/operations/settle.rb
|
78
|
+
- lib/remit/operations/settle_debt.rb
|
79
|
+
- lib/remit/operations/subscribe_for_caller_notification.rb
|
80
|
+
- lib/remit/operations/unsubscribe_for_caller_notification.rb
|
81
|
+
- lib/remit/operations/write_off_debt.rb
|
82
|
+
- lib/remit/pipeline_response.rb
|
83
|
+
- LICENSE
|
84
|
+
- README.markdown
|
85
|
+
- spec/integrations/get_account_activity_spec.rb
|
86
|
+
- spec/integrations/get_tokens_spec.rb
|
87
|
+
- spec/units/get_pipeline_spec.rb
|
88
|
+
- spec/units/get_results_spec.rb
|
89
|
+
- spec/units/ipn_request_spec.rb
|
90
|
+
- spec/units/pay_spec.rb
|
91
|
+
- spec/integrations/integrations_helper.rb
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
- spec/units/units_helper.rb
|
94
|
+
has_rdoc: true
|
95
|
+
homepage: http://github.com/localocracy/remit
|
96
|
+
licenses: []
|
97
|
+
|
98
|
+
post_install_message:
|
99
|
+
rdoc_options:
|
100
|
+
- --charset=UTF-8
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project: remit
|
124
|
+
rubygems_version: 1.3.7
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: An API for using the Amazon Flexible Payment Service (FPS).
|
128
|
+
test_files:
|
129
|
+
- spec/integrations/get_account_activity_spec.rb
|
130
|
+
- spec/integrations/get_tokens_spec.rb
|
131
|
+
- spec/units/get_pipeline_spec.rb
|
132
|
+
- spec/units/get_results_spec.rb
|
133
|
+
- spec/units/ipn_request_spec.rb
|
134
|
+
- spec/units/pay_spec.rb
|
135
|
+
- spec/integrations/integrations_helper.rb
|
136
|
+
- spec/spec_helper.rb
|
137
|
+
- spec/units/units_helper.rb
|