tylerhunt-remit 0.0.1 → 0.0.4
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 +1 -1
- data/README.markdown +91 -0
- data/lib/remit.rb +51 -41
- data/lib/remit/common.rb +16 -16
- data/lib/remit/data_types.rb +59 -2
- data/lib/remit/error_codes.rb +118 -0
- data/lib/remit/get_pipeline.rb +65 -7
- data/lib/remit/ipn_request.rb +49 -0
- data/lib/remit/{cancel_token.rb → operations/cancel_token.rb} +1 -1
- data/lib/remit/{discard_results.rb → operations/discard_results.rb} +1 -1
- data/lib/remit/{fund_prepaid.rb → operations/fund_prepaid.rb} +6 -6
- data/lib/remit/{get_account_activity.rb → operations/get_account_activity.rb} +1 -1
- data/lib/remit/{get_account_balance.rb → operations/get_account_balance.rb} +0 -0
- data/lib/remit/{get_all_credit_instruments.rb → operations/get_all_credit_instruments.rb} +0 -0
- data/lib/remit/{get_all_prepaid_instruments.rb → operations/get_all_prepaid_instruments.rb} +0 -0
- data/lib/remit/{get_debt_balance.rb → operations/get_debt_balance.rb} +1 -1
- data/lib/remit/{get_outstanding_debt_balance.rb → operations/get_outstanding_debt_balance.rb} +0 -0
- data/lib/remit/{get_payment_instruction.rb → operations/get_payment_instruction.rb} +1 -1
- data/lib/remit/{get_prepaid_balance.rb → operations/get_prepaid_balance.rb} +1 -1
- data/lib/remit/{get_results.rb → operations/get_results.rb} +4 -3
- data/lib/remit/{get_token_by_caller.rb → operations/get_token_by_caller.rb} +0 -0
- data/lib/remit/{get_token_usage.rb → operations/get_token_usage.rb} +1 -1
- data/lib/remit/{get_tokens.rb → operations/get_tokens.rb} +0 -0
- data/lib/remit/{get_total_prepaid_liability.rb → operations/get_total_prepaid_liability.rb} +0 -0
- data/lib/remit/{get_transaction.rb → operations/get_transaction.rb} +1 -1
- data/lib/remit/{install_payment_instruction.rb → operations/install_payment_instruction.rb} +3 -3
- data/lib/remit/operations/pay.rb +35 -0
- data/lib/remit/{refund.rb → operations/refund.rb} +6 -8
- data/lib/remit/{reserve.rb → operations/reserve.rb} +6 -6
- data/lib/remit/{retry_transaction.rb → operations/retry_transaction.rb} +1 -1
- data/lib/remit/{settle.rb → operations/settle.rb} +2 -2
- data/lib/remit/{settle_debt.rb → operations/settle_debt.rb} +6 -6
- data/lib/remit/{subscribe_for_caller_notification.rb → operations/subscribe_for_caller_notification.rb} +2 -2
- data/lib/remit/{unsubscribe_for_caller_notification.rb → operations/unsubscribe_for_caller_notification.rb} +1 -1
- data/lib/remit/{write_off_debt.rb → operations/write_off_debt.rb} +4 -4
- data/lib/remit/pipeline_response.rb +52 -0
- data/spec/{get_account_activity_spec.rb → integrations/get_account_activity_spec.rb} +4 -4
- data/spec/{get_tokens_spec.rb → integrations/get_tokens_spec.rb} +3 -3
- data/spec/integrations/integrations_helper.rb +8 -0
- data/spec/spec_helper.rb +20 -10
- data/spec/{get_pipeline_spec.rb → units/get_pipeline_spec.rb} +83 -24
- 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 +49 -45
- data/README +0 -38
- data/lib/remit/pay.rb +0 -34
@@ -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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tylerhunt-remit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Hunt
|
@@ -9,17 +9,18 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-04-27 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: relax
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
20
|
-
- -
|
21
|
+
- - ~>
|
21
22
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.0.
|
23
|
+
version: 0.0.7
|
23
24
|
version:
|
24
25
|
description:
|
25
26
|
email: tyler@tylerhunt.com
|
@@ -28,52 +29,50 @@ executables: []
|
|
28
29
|
extensions: []
|
29
30
|
|
30
31
|
extra_rdoc_files:
|
31
|
-
- README
|
32
32
|
- LICENSE
|
33
|
+
- README.markdown
|
33
34
|
files:
|
34
|
-
- lib/remit
|
35
|
-
- lib/remit/cancel_token.rb
|
35
|
+
- lib/remit.rb
|
36
36
|
- lib/remit/common.rb
|
37
37
|
- lib/remit/data_types.rb
|
38
|
-
- lib/remit/
|
39
|
-
- lib/remit/fund_prepaid.rb
|
40
|
-
- lib/remit/get_account_activity.rb
|
41
|
-
- lib/remit/get_account_balance.rb
|
42
|
-
- lib/remit/get_all_credit_instruments.rb
|
43
|
-
- lib/remit/get_all_prepaid_instruments.rb
|
44
|
-
- lib/remit/get_debt_balance.rb
|
45
|
-
- lib/remit/get_outstanding_debt_balance.rb
|
46
|
-
- lib/remit/get_payment_instruction.rb
|
38
|
+
- lib/remit/error_codes.rb
|
47
39
|
- lib/remit/get_pipeline.rb
|
48
|
-
- lib/remit/
|
49
|
-
- lib/remit/
|
50
|
-
- lib/remit/
|
51
|
-
- lib/remit/
|
52
|
-
- lib/remit/
|
53
|
-
- lib/remit/
|
54
|
-
- lib/remit/
|
55
|
-
- lib/remit/
|
56
|
-
- lib/remit/
|
57
|
-
- lib/remit/
|
58
|
-
- lib/remit/
|
59
|
-
- lib/remit/
|
60
|
-
- lib/remit/
|
61
|
-
- lib/remit/
|
62
|
-
- lib/remit/
|
63
|
-
- lib/remit/
|
64
|
-
- lib/remit/
|
65
|
-
- lib/remit.rb
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
40
|
+
- lib/remit/ipn_request.rb
|
41
|
+
- lib/remit/operations/cancel_token.rb
|
42
|
+
- lib/remit/operations/discard_results.rb
|
43
|
+
- lib/remit/operations/fund_prepaid.rb
|
44
|
+
- lib/remit/operations/get_account_activity.rb
|
45
|
+
- lib/remit/operations/get_account_balance.rb
|
46
|
+
- lib/remit/operations/get_all_credit_instruments.rb
|
47
|
+
- lib/remit/operations/get_all_prepaid_instruments.rb
|
48
|
+
- lib/remit/operations/get_debt_balance.rb
|
49
|
+
- lib/remit/operations/get_outstanding_debt_balance.rb
|
50
|
+
- lib/remit/operations/get_payment_instruction.rb
|
51
|
+
- lib/remit/operations/get_prepaid_balance.rb
|
52
|
+
- lib/remit/operations/get_results.rb
|
53
|
+
- lib/remit/operations/get_token_by_caller.rb
|
54
|
+
- lib/remit/operations/get_token_usage.rb
|
55
|
+
- lib/remit/operations/get_tokens.rb
|
56
|
+
- lib/remit/operations/get_total_prepaid_liability.rb
|
57
|
+
- lib/remit/operations/get_transaction.rb
|
58
|
+
- lib/remit/operations/install_payment_instruction.rb
|
59
|
+
- lib/remit/operations/pay.rb
|
60
|
+
- lib/remit/operations/refund.rb
|
61
|
+
- lib/remit/operations/reserve.rb
|
62
|
+
- lib/remit/operations/retry_transaction.rb
|
63
|
+
- lib/remit/operations/settle.rb
|
64
|
+
- lib/remit/operations/settle_debt.rb
|
65
|
+
- lib/remit/operations/subscribe_for_caller_notification.rb
|
66
|
+
- lib/remit/operations/unsubscribe_for_caller_notification.rb
|
67
|
+
- lib/remit/operations/write_off_debt.rb
|
68
|
+
- lib/remit/pipeline_response.rb
|
71
69
|
- LICENSE
|
70
|
+
- README.markdown
|
72
71
|
has_rdoc: true
|
73
|
-
homepage: http://
|
72
|
+
homepage: http://github.com/tylerhunt/remit
|
74
73
|
post_install_message:
|
75
|
-
rdoc_options:
|
76
|
-
|
74
|
+
rdoc_options:
|
75
|
+
- --charset=UTF-8
|
77
76
|
require_paths:
|
78
77
|
- lib
|
79
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -96,7 +95,12 @@ signing_key:
|
|
96
95
|
specification_version: 2
|
97
96
|
summary: An API for using the Amazon Flexible Payment Service (FPS).
|
98
97
|
test_files:
|
99
|
-
- spec/get_account_activity_spec.rb
|
100
|
-
- spec/
|
101
|
-
- spec/
|
98
|
+
- spec/integrations/get_account_activity_spec.rb
|
99
|
+
- spec/integrations/get_tokens_spec.rb
|
100
|
+
- spec/units/get_pipeline_spec.rb
|
101
|
+
- spec/units/get_results_spec.rb
|
102
|
+
- spec/units/ipn_request_spec.rb
|
103
|
+
- spec/units/pay_spec.rb
|
104
|
+
- spec/integrations/integrations_helper.rb
|
102
105
|
- spec/spec_helper.rb
|
106
|
+
- spec/units/units_helper.rb
|
data/README
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
Remit
|
2
|
-
=====
|
3
|
-
|
4
|
-
This API provides access to the Amazon Flexible Payment Service (FPS). After
|
5
|
-
trying to get the SOAP version of the API written, I began working on this REST
|
6
|
-
version to provide a cohesive means of access to all of the functionality of
|
7
|
-
the FPS without having to get dirty dealing with SOAP requests.
|
8
|
-
|
9
|
-
I hope you enjoy using it as much as I've enjoyed writing it. I'm interested to
|
10
|
-
hear what sort of uses you find for it. If you find any bugs, let me know (or
|
11
|
-
better yet, submit a patch).
|
12
|
-
|
13
|
-
|
14
|
-
Sandbox
|
15
|
-
-------
|
16
|
-
Amazon provides a testing environment for the FPS called a sandbox. You may
|
17
|
-
(and should) use the sandbox while testing your application. It can be enabled
|
18
|
-
by passing a value of true to the last argument of the API constructor.
|
19
|
-
|
20
|
-
|
21
|
-
Example
|
22
|
-
-------
|
23
|
-
The following example shows how to load up the API, initialize the service, and
|
24
|
-
make a simple call to get the tokens stored on the account:
|
25
|
-
|
26
|
-
require 'remit'
|
27
|
-
|
28
|
-
ACCESS_KEY = '<your AWS access key>'
|
29
|
-
SECRET_KEY = '<your AWS secret key>'
|
30
|
-
|
31
|
-
# connect using the API's sandbox mode
|
32
|
-
remit = Remit::API.new(ACCESS_KEY, SECRET_KEY, true)
|
33
|
-
|
34
|
-
response = remit.get_tokens
|
35
|
-
puts response.tokens.first.token_id
|
36
|
-
|
37
|
-
|
38
|
-
Copyright (c) 2007-2008 Tyler Hunt, released under the MIT license
|
data/lib/remit/pay.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module Pay
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :Pay
|
7
|
-
parameter :caller_description
|
8
|
-
parameter :caller_reference
|
9
|
-
parameter :caller_token_id
|
10
|
-
parameter :charge_fee_to
|
11
|
-
parameter :meta_data
|
12
|
-
parameter :recipient_description
|
13
|
-
parameter :recipient_reference
|
14
|
-
parameter :recipient_token_id
|
15
|
-
parameter :sender_description
|
16
|
-
parameter :sender_reference
|
17
|
-
parameter :sender_token_id
|
18
|
-
parameter :transaction_amount, :type => Remit::RequestTypes::Amount
|
19
|
-
parameter :transaction_date
|
20
|
-
end
|
21
|
-
|
22
|
-
class Response < Remit::Response
|
23
|
-
# FIXME: Due to an issue with Hpricot, Relax-0.0.4, and namespaces, the
|
24
|
-
# transaction_response parameter is not parsed correctly and will always
|
25
|
-
# be nil (http://groups.google.com/group/remit/t/1e0af072200d1bb3).
|
26
|
-
# The suggested course of action is to operate on the raw XML.
|
27
|
-
parameter :transaction_response, :type => TransactionResponse
|
28
|
-
end
|
29
|
-
|
30
|
-
def pay(request = Request.new)
|
31
|
-
call(request, Response)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|